DRBD (vytvoření nového pole)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání

Aby bylo možné sestavit DRBD pole, musí být splněny následující podmínky:

Funkční TCP připojení

Nové DRBD pole se vytváří podobně, jako když sestavujeme softwarový RAID 1 (mirror), ovšem s tím rozdílem, že do RAID 1 nebudeme sestavovat dvě lokální zařízení, ale vždy jedno lokální (local) zařízení a jedno zařízení na vzdáleném stroji (remote). Oba stroje tedy spolu musí být schopny komunikovat přes TCP připojení!

Podpora DRBD v jádře

Linuxový kernel na obou strojích musí mít k dispozici modul drbd.

Jestli váš aktuální kernel tuto podporu má lze zjistit pomocí modprobe…

Poznámka
root@local:~# modprobe -l | grep drbd
kernel/drivers/block/drbd/drbd.ko

Pokud se objeví podobný výpis jako výše, je vše ok. Pokud ne, tak je ještě velmi malá pravděpodobnost, že máte modul drbd do jádra zadrátován na pevno. Ale spíš asi ne, takže si musíte nainstalovat na oba stroje jádro, kterou tuto podporu má. U debianu mám za to, že je drbd podporované u všech aktuálních verzí distribučního jádra.

Upozornění Mít podporu v jádře však nestačí. U nástrojů pro správu DRBD pole (drbd-tool) totiž záleží na verzi, a může se stát že distribuční verze těchto nástrojů neodpovídá verzi vaší verzi drbd modulu, který je jádře - Viz stránky na drbd.org.

Aktuální verze DRBD v jádře (linux-3.1.0-rc6) je 8.3.11, ovšem oficiální repository Debianu má momentálně k dispozici pouze balíček drbd8-utils verze 8.3.9 V takovém případě vám nezbyde, než si tento balíček zkompilovat sami.

Zdrojáky lze získat na adrese http://oss.linbit.com/drbd/ Naštěstí jde o docela dobře debianizovaný zdrojový kód, takže by s jeho sestavením neměl být problém. Pokud si na to ale netroufáte, máte možnost použít naši Repository pro Debian amd64.

Na každém ze strojů volný logický oddíl o identické velikosti

DRBD pole vyžaduje, stejně jako linuxový SW RAID aby na každém ze strojů byl vytvořen logický oddíl, který má stejnou velikost, jako ten na vzdáleném stroji. Ideální je, sestavit DRBD z logických oddílů vytvořených v rámci LVM i když lze pochopitelně použít i rovnou celá fyzická bloková zařízení.

Poznámka Z hlediska přístupových rychlostí bude u DRBD zařízení vždy limitující (zvláště při počáteční synchronizaci pole) rychlost síťového připojení mezi lokálním a vzdáleným strojem. Jelikož DRBD pracuje vždy pouze se dvěma "disky", není možné sestavit DRBD pole z více než 2 strojů.[1] lze vyřešit připojení mezi těmito stroji (je-li na každém z nich k dispozici volné fyzické síťové zařízení) samostatným UTP kabelem (tzv. "bonding")


Identický konfigurační soubor

Máme-li na každém ze strojů připraven logický oddíl, je na čase vytvořit pro zařízení příslušný konfigurační soubor, na jehož základě pak dojde k sestavení DRBD pole.

Tento konfigurační soubor musí mít na obou strojích shodný obsah!

Má-li být DRBD zařízení víc, je třeba pamatovat na to, aby nedošlo ke konfliktu…

  1. …ve jménu DRBD polí
  2. …v nastavení diskových zařízení (tj. aby dvě pole nepoužívaly stejné lokální zařízení
  3. …v nastavení portu - každé DRBD pole musí mít vyhrazeno své číslo TCP portu

U Debianu se výchozím úložištěm pro tyto konfigurační soubory adresář /etc/drbd.d

Aktivní a neaktivní nod…

MASTER - SLAVE

Data jsou vždy dostupná pouze v rámci aktivního nodu (MASTER). Neaktivní nod (SLAVE) připojit nelze. Je to proto, že z principu většina lokálních souborových systémů neumožňuje vícenásobné připojení.

drbd.svg
Poznámka
resource images {
    meta-disk internal;
    device /dev/drbd4;
    syncer {
        verify-alg sha1;
        rate 40M;
        }
    floating ipv4 10.0.0.10:7790 {
        disk      /dev/mapper/data-images;
    }
    floating ipv4 10.0.0.20:7790 {
        disk      /dev/mapper/data-images;
    }
}

Z ukázkového konfiguračního souboru je zřejmé, že DRBD pole bude sestaveno nad LVM diskovými oddíly a v systému je pravděpodobně vytvořeno více než jedno DRBD pole. Tzn. že je třeba dát pozor, aby v nastavení volby floating nedošlo ke kolizi portu s portem jiného DRBD pole či jiné síťové služby.


MASTER - MASTER

Obchází výše uvedené omezení, a to tak, že se DRBD pole nastaví do režimu primary-primary. Podmínkou však je nainstalovaný clusterový souborový systém ( GFS2 nebo OCFS2 ). Tyto souborové systémy jsou však velmi citlivé na veškeré výpadky při síťové replikaci. Proto je v takovém případě nezbytně nutné zajistit maximálně spolehlivé připojené (Viz poznámka níže).

drbd+ocfs2.svg
Poznámka
resource storage {
    meta-disk internal;
    device /dev/drbd1;
    startup {
        become-primary-on both;
        }
    syncer {
        verify-alg sha1;
        rate 90M;
        }
    net {
        #Následující volba musí být zakomentována
        allow-two-primaries;
        data-integrity-alg md5;
        after-sb-0pri discard-zero-changes;
        after-sb-1pri discard-secondary;
        after-sb-2pri disconnect;
        #rr-conflict disconnect;
        timeout 60;
        }
    floating ipv4 10.0.0.10:7789 {
        disk      /dev/mapper/data-storage;
    }
    floating ipv4 10.0.0.20:7789 {
        disk      /dev/mapper/data-storage;
    }
}
startup
Povoluje, aby mohly být oba nody DRBD pole ve stavu Primary
net
Nastavuje pravidla, která se mají aplikovat v případě, že mezi nody dojde k nekonzistenci. V případě že se mají tato pravidla aplikovat u kteréhokoliv z DRBD polí, lze přesunout tuto konfigurační položku do globálního konfiguračného souboru /etc/drbd.d/global_common.conf.

Z ukázkového konfiguračního souboru je zřejmé, že DRBD pole storage bude sestaveno nad LVM diskovými oddíly. Oproti předchozímu konfiguračnímu souboru obsahuje navíc konfigurační volby startup a net ve kterých je nastaveno jak se má DRBD zachovat v případě, že mezi nody dojde k nekonzistenci.

Upozornění Konfigurační soubor /etc/drbd.d/global_common.conf má v konfigurační položce handlers, ke stavům v nichž se může DRBD pole ocitnout, příkazy a skripty, jimiž se systém automaticky pokusí situaci vyřešit v případě že nastanou.

Toto chování však nemusí být vždy žádoucí, proto je lepší v případě že je v systému nastaveno více DRBD polí řádky, které řeší nekonzistenci DRBD pole restartem nodu, zakomentovat. Je jasné, že případné nekonzistence se pak musí řešit manuálně.


Sestavení

Inicializace DRBD pole

Počáteční synchronizace

Souborový systém

Sestavením DRBD pole získáte raw zařízení, které je nutné naformátovat stejně jako normální diskový oddíl. Pokud plánujete používat DRBD v režimu MASTER-SLAVE, tak můžete použít libovolný váš oblíbený fs. Pokud ale chcete používat DRBD v režimu PRIMARY-PRIMARY, musíte použít clusterový souborový systém. Obvykle se používá buď GFS2 nebo OCFS2[2].


  1. Síťové diskové pole složené z více síťových zařízení by mělo být možné sestavit ze zařízení publikovaných buď přes NBD, AoE nebo iSCSI. Lepším řešením, než tyto protokoly, založené na TCP protokolu by mohlo být řešení postavené nad FCoE, což je protokol co používá Fibre Channel. Funguje na úrovni ethernetu a má tím pádem i menší nároky na režii.
  2. Nám se nejvíc osvědčil OCFS2.