Hlavní navigace

High Availability a Linux (3)

Věroš Kaplan

V dnešním dílu seriálu o High Availability clusterech si ozřejmíme, kterak zajistit replikaci dat na discích obou spárovaných strojů.

Sdílený filesystém

Pro většinu služeb je potřeba použít nějaký způsob sdílení dat. Typickým příkladem je mailserver a uživatelské mailboxy: v klidovém stavu potřebujeme, aby na obou počítačích byl aktuální stav mailboxů. Jen tak je možné zajistit, že v případě výpadku neztratíme žádnou informaci.

Potřebujeme tedy při konfiguraci clusteru způsobit stav, kdy se v klidovém stavu obsah filesystému na jednom počítači replikuje (česky: propisuje :-) na druhý počítač. Při havárii začne přeživší počítač využívat svoji kopii disku, čímž je zajištěno, že pracuje s poslední zdravou verzí dat. Při oživení havarovaného počítače je potřeba opět sesynchronizovat oba disky.

CODA

Pro replikování disků mohou být výhodné síťové filesystémy, které jsou distribuované a odolné proti výpadkům, například CODA. Vzhledem k tomu, že se mi ji po několika dnech experimentování včetně čtení manuálů nepovedlo uspokojivě rozchodit, nepoužil jsem ji. Předpokládám ale, že CODA by mohla být dobré řešení, nejspíš jsem jí nevěnoval dostatek času. (Možná časem…)

SW-RAID + NBD

Pavel Machek do jádra Linuxu implementoval Network Block Device. Jde o blokové zařízení, které umožňuje přistupovat přes síť k jinému blokové zařízenímu. Jeden z prvních pokusů o sdílení disku jsem prováděl právě se softwarovým RAIDem (RAID1) a NBD, tato varianta je doporučovaná i na stránkách projektu HA Linux. SW-RAIDu však při startu dělalo problémy se spojit dohromady s druhým diskem na vzdáleném počítači. Poté, co jsem našel projekt drbd, který implementuje všechny potřebné vlastnosti a je určen přímo pro heartbeat, experimentů s SW-RAIDem i NBD jsem zanechal.

Nechcete-li používat různé exotické jaderné moduly, je SW-RAID a NBD jednoduchá a možná i funkční varianta.

drbd

DRBD je patch do jádra od Philipa Reisnera. Jde o jakousi variaci na síťový RAID-1.

Po kompilaci a instalaci DRBD (make; make install) bude vytvořen nový modul do jádra drbd.o, konfigurační soubory /etc/drbd.conf, skript pro heartbeat/etc/ha­.d/resource.d/da­tadisk, obecný startovací skript /etc/init.d/drbd, program pro manipulaci se zařízeními /sbin/drbdsetup a trochu dokumentace. Po vložení modulu drbd do jádra vznikne blokové zařízení /dev/nb0. Modifikací konfiguračního souboru toto zařízení namapujeme na jiné blokové zařízení, např. /dev/hdc1 a spárujeme jej se zařízením na druhém počítači. Zařízení se budou chvíli synchronizovat (postup synchronizace, stejně jako celkový stav zařízení, můžeme sledovat v souboru /proc/drbd).

Po synchronizaci obou nositelských zařízení je pár zařízení /dev/nbX připraven k použití. Vždy jedno ze zařízení může být primární, kdy je možné jej používat pro zápis i pro čtení, druhé zařízení je možné použít pouze pro čtení. Všechny změny na primárním zařízení se přitom okamžitě posílají na zařízení sekundární, kde se provádějí. Chceme-li použít sekundární zařízení pro zápis, musí se nejprve primární zařízení přestat využívat (umountovat), pak prohlásit za sekundární a stávající sekundární zařízení prohlásit za primární. Všechny změny stavu Primární/Sekundární probíhají automaticky (automagicky?) v ovladači. Uživatel musí pouze zajistit, aby se nepokoušel namountovat zařízení na obou počítačích pro zápis. Kromě stavů Primární/Sekundární existuje i třetí stav, kdy zařízení nemá připojeno svoje „dvojče“. Pro přechod z tohoto stavu do primárního je potřeba provést replikaci dat – ovladač při korektním rozpojení umí poznat, která data se změnila a provést pouze rychlou replikaci, při nekorektním rozbití je potřeba počkat na synchronizaci celého pole.

Celý ovladač je chystán pro využití démonem heartbeat, proto je do něho jednoduše integrovatelný.

Možnost stažení balíčku DRBD je na stránkách projektu http://www.drbd­.org/, pro velký rozsah a (domnívám se) malou informační hodnotu konfiguraci nebudu popisovat zde. V případě zájmu ji mohu popsat jako další článek.

Poznámky: modul drbd provozuji dost dlouhou dobu i na SMP stroji, takže by mohl být SMP safe. Naopak, bez úprav se nesnese s NBD, protože používá stejné major číslo zařízení. Když jsem DRBD instaloval, ještě neexistovala samostatná stránka projektu a pro jádra 2.4 se zdrojové kódy stahovaly z CVS. Jak je to dnes, nevím.

SCSI či FibreChannel

Máme-li dost peněz či zkušenosti, můžeme místo „partyzánských“ metod sdílení disku použít „civilizovanou“ sběrnici, která je na sdílená zařízení stavěná. Bohužel s ní zatím nemám praktické zkušenosti. (Nějaký sponzor? :-)

Replikace vlastními prostředky

Některé programy umožňují replikaci vlastními prostředky, například. OpenLDAP server. Budeme-li chtít nasadit vysoce dostupný LDAP server, je pravděpodobně nejjednodušší variantou použít heartbeat pro IP takeover, slapd a slurpd pro poskytování a replikaci dat.

3…2…1…zážeh!

Máme-li nachystáno všechno, co potřebujeme ke startu prvního clusteru, můžeme jej zkusit zapnout. Na obou počítačích spustíme démona heartbeat běžným způsobem

# /etc/init.d/heartbeat start

a budeme pozorovat, co se děje. Démon nevypisuje startované služby na standardní výstup, jeho stav a případné chyby je možné dohledat v logovacích souborech.

Testování

Pokud na obou počítačích nastartovaly správné služby, můžeme zkusit pro jeden z počítačů simulovat vypnutí. Měkkým způsobem vypnutí je pouhé vypnutí démona heartbeat

# /etc/init.d/heartbeat stop

V krátké době by počítač, který zůstal „naživu“ měl převzít služby svého „mrtvého“ kolegy. Stalo-li se tak, můžeme vyzkoušet opětovné zapnutí „mrtvého“ počítače. Služby by opět měly přemigrovat na původní počítače. Funguje-li i opětné nahození, můžeme se pokusit shodit druhý počítač a pak i tvrdé vypnutí pomocí síťového vypínače. Občas může být záludné i současné nahození obou počítačů najednou, je proto vhodné vyzkoušet i to, jak se bude cluster chovat po výpadku elektřiny a jejím obnovení.

Poté, co jsme odladili veškerou myslitelnou konfiguraci, můžeme se jenom radovat, jak jsme šikovní, a jít žádat svého zaměstnavatele o zvýšení platu (osobám samostatně výdělečně činným se omlouvám).

Našli jste v článku chybu?

7. 1. 2004 17:07

Veros Kaplan (neregistrovaný)

Že jsem tak smělý, z čeho pramení Vaše tvrzení, že neumím dát dohromady Linuxový HA Cluster? Pokud budete někdy v Brně, ozvěte se soukromě a ukážu Vám ho naživo včetně vypnutí a zapnutí jednotlivých strojů.

Ten článek byl psán s úmzslem, abyste se to z něho mohl naučit i vy... :-)

Ad 4 pokračování: taky z toho nejsem nadšený :-(, ale to je prostě webový časopis ...





7. 1. 2004 9:32

antonio (neregistrovaný)

velmi vhodny nastroj na testovanie takychto veci je
vmware. uz aj vmware workstation ti podporuje
zdielany scsi disk.
urobis si kolko xces interkonektovych sietoviek, zdielanych diskov, atd bez toho aby ta
to cokolvek stalo.

ja som takto rozchodil oracle rac 9i na
raw devicoch z dvoch vmwarovskych masin.








Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Vitalia.cz: I církev dnes vyrábí potraviny

I církev dnes vyrábí potraviny

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Podnikatel.cz: Snížení DPH na 15 % se netýká všech

Snížení DPH na 15 % se netýká všech

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy