HA cluster

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

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á identita strojů (nodů, neboli také uzlů) 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 rovněž obsahuje linky na komplexní manuálové stránky.
  • Komunikace, která probíhá v rámci clusteru je na schématu naznačena obousměrnými šipkami mezi nody

Lokální bloková zařízení

Svislá linie, která odděluje oba nody, naznačuje do jaké úrovně se pracuje s lokálními blokovými zařízeními.

Úroveň první vrstvy - RAID

I když jsou ve schematu naznačeny pro každý nod dva softwarové raidy typu mirror (zrcadlení), stačí v zásadě pouze jeden raid typu 1 a výše. Při selhání jednoho z HDD zařízení stroj nadále běží a lze provést výměnu zařízení bez toho, že by bylo nutné stroj (nod) restartovat.

Úroveň druhé vrstvy - LVM

LVM umožňuje..

  • ..libovolné zvětšování a přerozdělování diskové kapacity nodu - opět bez nutnosti restartu celého zařízení.
  • ..přesuny dat mezi zařízeními první vrstvy
  • ..zálohování operačního systému nodu za běžného provozu přes snapshoty logického disku.

Síťová bloková zařízení

Používat vzdáleně bloková zařízení lze kupř. přes NBD, nebo přes LVM cluster. DRBD8, uvedené na schématu však funguje jako síťový raid1, takže i v případě kompletního kolapsu jednoho z těchto dvou nodů by nemělo dojít ke ztrátě dat.

V takovém případě totiž data zůstanou zachovaná na běžícím sekundárním zařízení, které lze pak zpětně zreplikovat na nod který zkolaboval, resp. na stroj, který jej nahradí.

Clusterové souborové systémy

Zeleně je označen souborový systém OCFS2. Místo něj by bylo možné použít i GFS2, ten je však o něco hůře dokumentovaný z hlediska výkonu má údajně i o něco málo horší výsledky. OCFS2 zase nemá podporu pro IPv6 a umožňuje integrovat pouze 255 nodů, ovšem pro účely malého HA clusteru, to zase tolik nevadí. Důležitá je především možnost pracovat s jedním úložištěm z více míst současně. A to z toho důvodu, aby bylo možné za běhu provádět migraci virtuálních strojů.


Jiné souborové systémy (jako CEPH, Lustre, GlusterFS) jsou založeny na principu rozmístění datových bloků po více nodech, takže úložiště je schopno fungovat i při výpadku většího počtu z nich. Jejich nasazení však má smysl pouze u větší skupiny strojů. Také z hlediska výkonnosti by měly mít o něco horší vysledky, jelikož část propustnosti sítě padne na jejich režii.

Na druhou stranu jejich nespornou výhodou je možnost vytvořit sloučením velkého množství nodů úložiště s velkou kapacitou, do určité míry odolné proti výpadku části nodů. Úspěšně by se dalo těchto souborových systémů využít v místech s velkým množstvím strojů s nevyužívanou diskovou kapacitou (učebny atp.)

Clusterové souborové systémy jsou dostupné pouze v rámci clusteru. Pro paralelní přístup k datům na nich uloženým z klientských stanic lze využít kupř. zpropagování lokální adresářové struktury (umístěné na OCFS2) přes NFS virtuálního stroje. Čímž by byl k datům zajištěn přístup i v případě selhání libovolného z nodů, neboť virtuální stroj spuštěný ze sekundárního stroje by měl stále stejnou přístupovou adresu.