Professional Documents
Culture Documents
DRBD
Predstavenie, inštalácia a základná konfiguracia
Martin Kravec
Prakticky je systém využiteľný najmä v prípade keď potrebujeme zabezpečiť dostupnosť dát pri
hardwarovej chybe servru, ktorá presahuje výpadok disku (na ktorý by stačil raid-1) …napríklad
vyhorenie zdroja, poškodenie základnej dosky. Zrkadlené servry vďaka využitiu siete nemusia byť ani v
jednej miestnosti, takže system je odolný aj voči katastrofám ako napríklad požiar.
2. Predstavenie
DRBD funguje na princípe dvoch zariadení (nódov), pričom jeden (Primárny) je pripojený k systému
(mount) a s jeho obsahom sa dá normálne pracovať zatiaľ čo druhý (Sekundárny) je odpojený, nedá sa
pripojiť a je využívaný len na kopírovanie dát z primárneho disku. V prípade výpadku sa po vypršaní
timeoutu nastaví neprístupný nód do stavu Unknown a až vtedy je možné zmeniť sekundárny na
primárny a pripojiť ho k systému. Takto zabezpečíme že na záložnom servri budeme mať vždy najnovšie
dáta.
Keďže zmenu stavu nódov zo sekundárneho na primárny a ich pripájanie k systému nechceme robiť
ručne (keďže reačná doba je obvykle v rozpätí hodín) využijeme nástroj Pacemaker. Ten nám umožnuje
automatizovať spúštanie a vypínanie služieb, pripájanie diskov, presun zdieľanej IP adresy na primárny
nód a veľa iného na základe definovaných pravidiel. Pre jednoduchšiu konfiguráciu pravidiel použijeme
GUI, pretože hlavné nastavenia sú v XML súbore a teda trochu neprehľadné.
Obrázok 1 – Všetky operácie prebiehajú na iza, dáta sa replikujú na izb. V prípade výpadku izb
spustí potrebné služby a prevezme virtuálnu IP adresu (Zdroj: MySQL clustery)
V reálnom čase. Replikácia dát prebieha priebežne, popri tom ako aplikácia modifikuje súbory.
Transparentne. Aplikácia ukladajúca dáta na zrkadlenom zariadení si toho nieje vedomá.
Zariadenie sa pre ňu javí ako lokálny súborový systém.
Synchrónne. Pri synch synchrónnom prenose je aplikácii oznámené úspešné uloženie až vo chvíli
keď sú dáta uložené na primárnom servri a skopírované cez sieť na sekundárny disk.
Asynchrónne. Pri asynchrónnom prenose je úspešné uloženie potvrdené už vo chvíli zápisu na
Primárny disk. Asynchrónne prenosy sú síce rýchlejšie ale menej bezpečné.
3. Inštalácia
3.1. Čo potrebujeme
Inštalácia bude pozostávať z 2 servrov, iza a izb. Tieto servry sú nainštalované na OS Debian, a
virtualizované pomocou VirtualBoxu. Servry majú 2 sieťové karty, prvá poskytuje pripojenie na internet
(NAT), druhou sú navzájom prepojené.
VirtualBox (3.2.10)
Debian GNU/Linux 5.0
Pacemaker (1.0.9)
DRBD
Heartbeat-gui (+Pacemaker-mgmt), DRBD Management Console
3.2. Postup
8. 7.2010 boli všetky balíky potrebné pre inštaláciu (corosync, pacemaker, drbd8) sprístupnené
z oficiálneho debian-backports repozitára. Pridáme ho teda do sources.list
deb http://www.backports.org/debian lenny-backports main contrib non-free
apt-get install debian-backports-keyring
Následne obnovíme zdroje balíčkov a nainštalujeme všetko potrebné pre náš cluster. Niektoré
balíčky sú inštalované ako závislosti.
apt-get update
apt-get install drbd8-source/lenny-backports drbd8-utils/lenny-backports
pacemaker/lenny-backports
module-assistant auto-install drbd8
3.3. Problémy
Corosync sa pri spustení snažil využiť proces rsyslogd, ten ale ešte nebol spustený čo sposobilo pád
corosyncu. Problém vyriešilo nastavenie logovania do súboru.
4. Konfigurácia:
4.1. Corosync
Corosync je protokol ktorý zabezpečuje komunikáciu medzi jednotlivými nódmi. Je využívaný programom
Pacemaker a inštalovaný ako jeho závislosť. Hlavné konfiguračné súbory nájdeme v /etc/corosync/.
Pomocou corosync-keygen je potrebné vygenerovať súbor authkey a upraviť corosync.conf podľa
aktuálnych nastavení siete. Tieto súbory potom skopírujeme na druhý nód.
4.2. Pacemaker
Pacemaker je program, ktorým dokážeme na základe definovaných priorít automaticky prevádzať rôzne
operácie. V našom prípade ho budeme potrebovať pre automatické nastavenie virtuálnej IP adresy a
pripojenie DRBD disku na izb v prípade že detekujeme nedostupnosť iza a naopak.
Na konfiguráciu a management sa využíva viacero nástrojov (crmadmin, cibadmin, crm_mon..).
Najdôležitejší súbor je cib.xml, kde sa nachádza konfigurácia pravidiel pre jednotlivé nódy.
Keďže xml súbory sú neprehľadné na ručnú editáciu môžme použiť grafické nástroje
Nastavíme jeden z nódov ako primárny. Prvýkrát musíme túto operáciu potvdiť kôli prepísaniu
dát na cieľovom disku. Týmto zároveň spustíme synchronizáciu nódov. Sekundárny disk bude
prepísaný.
drbdadm -- --overwrite-data-of-peer primary r0
Je treba si dávať pozor a nikdy nepracovať s nižšie položeným zariadením (napr. sda5)
Obrázok 3 - Drbd vytvára ďalšiu vrstvu medzi filesystémom a vlastným úložiskom dát. Pri
zápise na disk tieto dáta kopíruje na záložný server (Zdroj: DRBD)
5. Správa
5.1. DRBD
Správu DRBD je najjednoduchšie robiť pomocou príkazového riadku, kde nám na to slúžia tieto príkazy
5.2. Pacemaker
Väčšina úkonov sa dá prevádzať pomocou gui-nástrojov. Pri konfigurácii som skúšal najznámejšie
Oba program vytvárajú konfiguračný súbor cib.xml, ktorý má štruktúru podobnú nasledujúcej
<cib>
<configuration>
<crm_config>
<cluster_property_set id="cib-bootstrap-options">
<attributes/>
</cluster_property_set>
</crm_config>
<nodes>
<node uname="alice" type="normal"
id="f11899c3-ed6e-4e63-abae-b9af90c62283"/>
<node uname="bob" type="normal"
id="663bae4d-44a0-407f-ac14-389150407159"/>
</nodes>
<resources/>
<constraints/>
</configuration>
</cib>