HA cluster

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání
cluster
je seskupení vzniklé spojením minimálně dvou nodů, které může v rámci ethernetové sítě vystupovat jako jeden subjekt. Angl. zkratka HA - vysoce dostupný (high availability) znamená, že takový cluster je schopen přežít nejenom kompletní selhání některého z nodů, ale i současný výpadek jednoho z pevných disků na nodu přeživším. Fungování clusteru je založené na vzájemné komunikaci nodů (kterou může zajišťovat buď corosync nebo heartbeat) a pravidlech pro určité situace, které řeší..
  • jak se budou distribuovat data mezi jednotlivé nody (diskový cluster)
  • spouštění a zastavování služeb na jednotlivých nodech, tak aby byly vždy k dispozici
  • rozdělování dílčích úloh jednotlivým nodům při výpočtech (výpočetní cluster)
  • atp.
nod
Je fyzický stroj (server, PC,..), vybavený pevnými disky (HDD) a alespoň jednou síťovou kartou, na kterém běží..
  1. heartbeat nebo corosync - jsou démoni, zajišťující vzájemnou komunikaci mezi nody; jsou to dvě možná řešení jednoho problému, nelze je tedy používat současně!
  2. cib - zajišťuje replikaci konfigurace, tak aby byla na všech nodech identická
  3. crmd - interpretuje pravidla nastavená v konfiguraci; podle potřeby volá buď lokální lrmd, stonith nebo pengine
  4. stonith - zajišťuje v případě potřeby odstřelení vzpurného nodu
  5. lrmd - spouští či zastavovuje lokální služby v rámci nodu
  6. attrd
  7. pengine - zajišťuje správné pořadí spouštění služeb, aby nedošlo ke konfliktu

Níže uvedené schéma zobrazuje náš jednoduchý cluster, postavený na dvou identických strojích.


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  |
\----------/ \-------------/ | \-------------/ \----------/
/^^^^^^^^^^\ /++++++++++++++ ⇄ ++++++++++++++\ /^^^^^^^^^^\
|  BTRFS   ||              DRBD              ||   BTRFS   |
\^^^^^^^^^^/ \++++++++++++++ ⇄ ++++++++++++++/ \^^^^^^^^^^/
/∷∷∷∷∷∷∷∷∷\ /^^^^^^^^^^^^^^^ ⇄ ^^^^^^^^^^^^^^\ /∷∷∷∷∷∷∷∷∷∷\
∷  Linux  ∷ |              OCFS2             | ∷  Linux   ∷
∷    OS   ∷ \^^/^^^/^\^^^^^^ ⇄ ^^\^^^^^^^^^^^/ ∷    OS    ∷
\∷∷∷∷∷∷∷∷∷/   /   /   \           \            \∷∷∷∷∷∷∷∷∷∷/
/∷∷∷∷∷∷∷∷∷\  /   /     \           \           /∷∷∷∷∷∷∷∷∷∷\
∷ Virtual  -    /       \            -----------  Virtual
\∷∷∷∷∷∷∷∷∷/-----          --- ⇄ ---------------\∷∷∷∷∷∷∷∷∷∷/
                          CLUSTER


Poznámka Hardwarová identita strojů (nodů, neboli také uzlů) není podmínkou, ale výhodou, neboť usnadňuje konfiguraci a správu software.
Poznámka 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.

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.