Klastrovanie

DRBD

Distributed Replicated Block Device (DRBD) - disrribuované zariadenie s replikovanými blokmi je zariadenie, ktoré zrkadlí svoje bloky navzájom medzi viacerými stanicami. Replikácia je pritom neviditeľná pre ostatné aplikácie v systéme. Zrkadlený môže byť ktorýkoľvek blok pevných diskov, diskových oddielov, diskových polí RAID, logických zväzkov, atď.

Ak chceme systém drbd začať používať, najskôr musíme nainštalovať potrebné balíky. Do príkazového riadka zadáme:

sudo apt-get install drbd8-utils
[Note]

Ak používate virtuálne jadro virtual kernel ako súčasť virtuálneho počítača, je potrebné modul drbd ručne skompilovať. Jednoduchší spôsob je nainštalovanie balíka linux-server do virtuálneho počítača.

V tejto časti si povieme ako drbd nastaviť tak, aby medzi dvoma stanicami replikoval samostatný diskový oddiel so súborovým systémom ext3 pripojený k /srv. Veľkosť diskového oddielu nie je podstatná, ale na oboch počítačoch musí byť rovnaká.

Konfigurácia

Dve stanice sa v našom príklade budú volať drbd01 a drbd02. Je potrebné, aby bol nastavený preklad adries prostredníctvom DNS alebo na oboch staniciach prostredníctvom súboru /etc/hosts. Viac informácií sa nachádza v kapitole Služba prekladu doménových mien (DNS).

  • Systém drbd najskôr nastavíme na prvej stanici úpravou súboru /etc/drbd.conf:

    global { usage-count no; }
    common { syncer { rate 100M; } }
    resource r0 {
    protocol C;
    startup {
    wfc-timeout 15;
    degr-wfc-timeout 60;
    }
    net {
    cram-hmac-alg sha1;
    shared-secret "secret";
    }
    on drbd01 {
    device /dev/drbd0;
    disk /dev/sdb1;
    address 192.168.0.1:7788;
    meta-disk internal;
    }
    on drbd02 {
    device /dev/drbd0;
    disk /dev/sdb1;
    address 192.168.0.2:7788;
    meta-disk internal;
    }
    }
    [Note]

    Súbor /etc/drbd.conf umožňuje nastaviť oveľa viac možností, ale pre náš prípad nám vyhovujú predvolené hodnoty.

  • Teraz skopírujeme súbor /etc/drbd.conf na druhú stanicu:

    scp /etc/drbd.conf drbd02:~
    
  • Na stanici drbd02 súbor premiestnime do priečinka /etc:

    sudo mv drbd.conf /etc/
    
  • Teraz na oboch staniciach spustíme drbd démon:

    sudo /etc/init.d/drbd start
    
  • Potom použijeme nástroj drbdadm, ktorým inicializujeme metaúložisko. Na každej stanici spustíme:

    sudo drbdadm create-md r0
    
  • Na stanici drbd01 alebo na tej, ktorá má byť hlavá, zadáme:

    sudo drbdadm -- --overwrite-data-of-peer primary all
    
  • Po spustení predchádzajúceho príkazu sa začnú dáta synchronizovať s druhou stanicou. Ak chceme vidieť do akej miery je úloha hotová, na stanici drbd02 zadáme:

    watch -n1 cat /proc/drbd
    

    Výpis prerušíme stlačením kombinácie kláves Ctrl+c.

  • Nakoniec vytvoríme súborový systém na /dev/drbd0 a pripojíme ho:

    sudo mkfs.ext3 /dev/drbd0
    sudo mount /dev/drbd0 /srv
    

Testovanie

Ak chceme zistiť, či sa dáta synchronizujú medzi dvoma stanicami, na stanici drbd01 skopírujeme nejaké súbory do priečinka /srv:

sudo cp -r /etc/default /srv

Potom odpojíme priečinok /srv:

sudo umount /srv

Nastavíme primárny server do úlohy sekundárneho:

sudo drbdadm secondary r0

Teraz sekundárny server povýšime do úlohy primárneho:

sudo drbdadm primary r0

Nakoniec pripojíme diskový oddiel:

sudo mount /dev/drbd0 /srv

Po použití príkazu ls uvidíme súbor /srv/default, ktorý sme nakopírovali na drbd01 (predtým bol primárny).

Zdroje