HA cluster

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání
cluster
je seskupení dvou a více fyzických počítačů (nodů), které navenek může vystupovat jako jeden subjekt.
nod
Je fyzický stroj (server, PC,..), vybavený pevnými disky (HDD) a alespoň jednou síťovou kartou, na kterém běží CRM.

Typy clusterů

Výpočetní cluster

Výpočetní cluster ( angl. HPC - High-performance Computing) využívá výpočetního výkonu jednotlivých nodů, tvořených obvykle stroji nižší cenové kategorie, pro zpracování dílčích matematických operací. Celkový výkon je pak mnohonásobně vyšší než by bylo vůbec možné dosáhnout u jediného fyzického stroje.

Diskový cluster

Neboli také Storage cluster vytváří jeden virtuální diskový prostor jeho rozložením mezi fyzické disky nodů. Využít pro tento účel lze buď speciálních clusterových souborových systémů ( OCFS2, GFS2, Lustre, CEPH,...), které jsou schopny řešit rozložení zátěže a redundanci dat mezi nody, nebo clusterové verze LVM (cluster).

Poznámka Některé clusterové souborové systémy, jako např. CEPH už při svém návrhu počítají s výpadky nodů, proto ukládají tzv. roztroušená data i s informacemi, které umožňují v případě potřeby dopočítat chybějící bloky dat.

Škálovatelné clustery

Jsou spojením nodů, poskytujících podle potřeby paralelně stejný typ služby. V případě potřeby lze tak rozložit zátěž mezi více strojů, bez toho že by došlo k přetížení jednoho z nodů. Tato funkcionalita se angl označuje jako load ballancing. Jelikož lze takto celkový výkon clusteru podle potřeby navyšovat nebo snižovat, označuje se také tento typ clusteru jako škálovatelné (angl. scallable)

HA cluster

Z hlediska funkce může HA cluster implementovat všechny již zmíněné typy clusterů. Liší se především v tom, že tento typ clusteru je schopen přežít kompletní selhání nodu. Angl. zkratka HA znamená vysoce dostupný (high availability), ale také se tento typ clusteru označuje jako Failover Cluster.

Schopnost přežití spuštěných služeb je zajištěna jednak tím, že jsou..

  • Data uloženy redundantně (podobně jako u diskového clusteru)
  • Nody vzájemně informovány o spuštěných službách, takže v případě selhání nodu může být služba spuštěna jinde (podobně jako u škálovatelných clusterů).
  • Nody - jejich operační systém a hardware - navrženy tak, aby byly schopny přečkat i výpadek některého z lokálních disků, aniž by musely být odstaveny. U klasických výpočetních clusterů žádná data lokálně uložena nejsou, takže výpadek celého nodu není nijak kritický.

O vzájemnou komunikaci mezi nody se stará CRM (Cluster Resource Manager), který řeší spouštění a zastavování služeb na jednotlivých nodech, tak aby byly vždy k dispozici. Komerční implementací CRM je např. [ LanderCluster], který může bežet jak na unixové platformně, tak na systémech MS Windows.

Open source implementací CRM, které bude věnován zbytek tohoto manuálu je [Pacemaker], který vyšel z původního projektu [Linux-HA], jehož výsledkem byl HA cluster o dvou nodech - [Heartbeat].

Poznámka Jako typ clusteru je označován také Grid. Ten však pouze připomíná výpočetní a datový cluster svou funkcionalitou. Liší se tím, že jí není dosaženo paralelizací procesů, nýbrž jejich distribucí. Gridová aplikace rozděluje zpracování úkolů mezi jednotlivé výpočetní jednotky, kterými nemusí být pouze fyzické servery, ale i celé clustery. Příkladem praktické implementace gridu může být internetová síť. Grid svým rozsahem je však již spíše typem infrastruktury, která přestává být záležitostí jedné organizace či společnosti.

Níže uvedené schéma zobrazuje náš HA cluster, postavený na dvou identických strojích, který lze do budoucna ev. rozšířit o další nody...

NOD 1                            NOD 2
/====\ /====\ /====\ /====\  |  /====\ /====\ /====\ /====\
| HDD || HDD || HDD || HDD | | | HDD || HDD || HDD || HDD |
\====/ \====/ \====/ \====/  |  \====/ \====/ \====/ \====/
/±±±±±±±±±±±\ /±±±±±±±±±±±±\ | /±±±±±±±±±±±\ /±±±±±±±±±±±±\
|   RAID1   ||    RAID1    | | |   RAID1   ||    RAID1    |
\±±±±±±±±±±±/ \±±±±±±±±±±±±/ | \±±±±±±±±±±±/ \±±±±±±±±±±±±/
/――――――――――――――――――――――――――\ | /――――――――――――――――――――――――――\
|          LVM VG          | | |         LVM VG           |
\――――――――――――――――――――――――――/ | \――――――――――――――――――――――――――/
/----------\ /-------------\ | /-------------\ /----------\
|  LVM LV  ||     LVM LV   | | |    LVM LV    ||  LVM LV  |
\----------/ \-------------/ | \-------------/ \----------/
/^^^^^^^^^^\ /++++++++++++++ ⇄ ++++++++++++++\ /^^^^^^^^^^\
| REISERFS ||              DRBD              || REISERFS |
\^^^^^^^^^^/ \++++++++++++++ ⇄ ++++++++++++++/ \^^^^^^^^^^/
/∷∷∷∷∷∷∷∷∷\ /^^^^^^^^^^^^^^^ ⇄ ^^^^^^^^^^^^^^\ /∷∷∷∷∷∷∷∷∷∷\
∷  Linux  ∷ |              OCFS2             | ∷  Linux   ∷
∷    OS   ∷ \^^/^^^/^\^^^^^^ ⇄ ^^\^^^^^^^^^^^/ ∷    OS    ∷
\∷∷∷∷∷∷∷∷∷/   /   /   \           \            \∷∷∷∷∷∷∷∷∷∷/
/∷∷∷∷∷∷∷∷∷\  /   /     \           \           /∷∷∷∷∷∷∷∷∷∷\
∷ Virtual  -    /       \            -----------  Virtual
\∷∷∷∷∷∷∷∷∷/-----          --- ⇄ ---------------\∷∷∷∷∷∷∷∷∷∷/
                          CLUSTER

Poznámka Poznámky ke schématu...
  • Hardwarová unifikace strojů (nodů) není podmínkou, ale výhodou, neboť usnadňuje konfiguraci a správu software.
  • Veškeré vrstvy blokových zařízení, souborové systémy na nich nainstalované, včetně umístění operačního systému na obou strojích, jsou pro snazší orientaci barevně zvýrazněny. Schéma bylo vytvořeno jako tzv. ascii-art protože obsahuje linky na stránky této wiki.
  • Komunikace, která probíhá v rámci clusteru je na schématu naznačena obousměrnými šipkami mezi nody

Redundance uložených dat

Je zajištěna na dvou úrovních.

  1. Na úrovni clusteru, mezi jednotlivými nody ji zajišťuje kombinace clusterového souborového systému OCFS2 a DRBD8
  2. Na lokální úrovni nodů ji zajišťuje softwarový RAID 1

Clusterový souborový systém

Na schématu je "vrstva" v níž se z hierarchického hlediska HA clusteru nachází clusterový souborový systém, zvýrazněna tmavou zelení. Důležitým aspektem pro jeho nasazení je především možnost pracovat s jedním úložištěm z více nodů současně. To je základní podmínka pro to, aby bylo možné za běhu provádět migraci virtuálních strojů.

Naše volba padla na OCFS2, za jehož vývojem stojí fa. ORACLE. Ten sice zatím nemá podporu pro IPv6 protokol a umožňuje integrovat pouze 255 nodů, ale oproti GFS2 (který vyvíjí fa. Red Hat), je lépe dokumentovaný a z hlediska výkonu má mít i lepší výsledky.

Poznámka Jiné clusterové souborové systémy (jako např. CEPH, Lustre, GlusterFS, aj.) sice mají tu výhodu, že jsou schopny fungovat i při výpadku většího počtu nodů, ale jejich nasazení má smysl teprve od tří nodů výše, jelikož jsou založeny na principu rozprostření datových bloků a metadat nutných pro dopočítání chybějících dat na více nodů.

Jejich nasazení má tedy smysl u clusterů s velkým počtem nodů, které jsou schopny dát dohromady dostatečně velkou datovou kapacitu i přes to, že její část padne na uložení metadat pro zajištění redundance. Typicky to mohou být clustery vytvořené z PC v rámci počítačové učebny, atp.

Je však otázkou, jak by na tom byly ve srovnání s OCFS2 z hlediska výkonu, neboť část pásma síťového připojení by určitě padla na jejich režii. U HA clusteru, který má pouze dva nody je výhodné že datové přenosy blokových zařízení lze realizovat samostatným kabelem, připojeným přes vyhrazené síťové rozhraní napřímo (tzv. "bonding")

DRBD8

Na schématu zvýrazněno jako oranžová vrstva, je implementace síťového mirroru blokového zařízení. Funguje v podstatě jako RAID 1, ovšem s tím rozdílem, že zrcadlení neprobíhá v rámci fyzického stroje, ale po síti.

Stejně jako u lokálního softwarového RAID 1 pole to ovšem znamená, že tímto způsobem nelze replikovat jedno blokové zařízení mezi více než dvěma nody.

DRBD sice umožňuje přidat i blokové zařízení na třetím nodu, ovšem to by stejně fungovalo pouze jako spare disk, tj. data by se na ně začala replikovat až poté, co by vypadnul jeden z aktuálně aktivních strojů.

Nasazení DRBD má smysl především tam, kde malý počet nodů neumožňuje nasadit clusterový souborový systém, který by byl schopen v případě výpadku některého z nodů chybějící data dopočítat z uložených metadat.

Lokální bloková zařízení

Svislá linie na schématu, která odděluje oba nody, naznačuje do jaké úrovně se v rámci hierarchie clusteru pracuje s lokálními blokovými zařízeními.

Úroveň první vrstvy - RAID
I když jsou ve schématu naznačeny pro každý nod dva softwarové raidy typu mirror (zrcadlení), postačuje v zásadě pouze jeden raid typu 1 a výše. Úkolem první vrstvy je zajistit, aby při selhání jednoho z HDD zařízení stroj nadále běžel a výměnu vadného zařízení tak bylo možné provést aniž by bylo nutné stroj (nod) restartovat.
Úroveň druhé vrstvy - LVM
Umožňuje libovolné zvětšování a přerozdělování diskové kapacity nodu - opět bez nutnosti restartu celého stroje.

Vysoká dostupnost služeb

Náš HA cluster je určen především jako virtualizační platforma pro KVM. Vysoká dostupnost služeb tak není zajištěna přímo clusterem, ale virtuálními stroji, které lze v případě výpadku jednoho z nodů spustit na nodu přeživším.

Vzhledem k tomu, že všechny virtuální stroje jsou umístěny v rámci jednoho sdíleného datového prostoru, lze jejich spuštění provést s minimální prodlevou - prakticky okamžitě po kolapsu původního nodu.

Poznámka V případě plánovaných odstávek lze provést odmigrování virtuálních strojů i bez nutnosti jejich odstávky

Výpočetní výkon

V případě nouze lze virtuální stroje spustit i na jediném nodu, ale za normálního provozu lze virtuální stroje podle potřeby a aktuálního zatížení mezi nody migrovat a dosáhnout tím optimálního rozdělení výkonu jak fyzických strojů, tak jejich hardwarových prostředků.