co je kvorum v clusteru kardiostimulátoru (Understanding Quorum Operations)

co je usnášeníschopné?

aby cluster fungoval podle očekávání, musí se uzly shodnout na určitých skutečnostech, například na tom, které stroje jsou v současné době členy clusteru, kde jsou spuštěny služby a které stroje používají jaké zdroje.

metoda, ve které je implementována v doplňku Red Hat High Availability, je pomocí většinového hlasovacího schématu. Každý uzel klastru odevzdá jeden hlas, pokud se úspěšně připojí k síťové komunikaci corosync a je schopen komunikovat s ostatními uzly, které se již klastru účastní.

klastr je funkční, pokud je úspěšně odevzdána více než polovina všech možných hlasů. Minimální počet hlasů potřebných k dosažení více než poloviny hlasů se nazývá kvorum. Pokud je dosaženo kvora, klastr se považuje za kvorát. Cluster ztrácí kvorum, pokud polovina uzlů nebo více spolu nemohou komunikovat.

při spuštění clusteru se všechny uzly clusteru snaží vzájemně komunikovat a usilovat o dosažení usnášeníschopnosti. Jakmile se vytvoří většina, existuje kvorátní klastr. Všechny ostatní uzly, které se úspěšně nepřipojily ke kvorátnímu klastru, jsou oploceny uzlem, který má kvorum. Pokud uzel, který je součástí klastru quorate, již není schopen komunikovat s klastrem, uzel je oplocen.

proč je vyžadován výpočet kvora?

kvorum je vyžadováno v situacích, kdy některé uzly v klastru nemohou komunikovat s určitými jinými uzly. Následující obrázek ukazuje pět uzlový cluster sestávající z uzlů a, B, c, D A E se službou, která používá souborový systém ext4 na sdíleném úložišti. Tato služba je aktuálně spuštěna na uzlu a.

uzly D a Eget se oddělí od hlavní privátní sítě a nemohou komunikovat s uzly A, B a c. bez kvora tyto dva uzly rozhodnou, že A, B A C selhaly a je třeba je oplocit (vzdáleně vypnout), aby bylo možné obnovit jejich zdroje. Tímto způsobem kvorum funguje jako důležitá brána před oplocením.

pokud by cluster byl bez oplocení, uzly D A E by okamžitě začaly obnovovat zdroje, což by vedlo k tomu, že stejný souborový systém ext4 bude namontován na dvou místech najednou, což není zdravá situace. Tato situace, kdy dvě poloviny clusteru pracují nezávisle na sobě, se označuje jako rozdělený mozek.

Split-brain je zvláštní problém v klastrech se dvěma uzly, protože pokud některý uzel selže, druhý uzel nespočívá v většině uzlů v klastru. Je třeba podniknout zvláštní kroky, aby se umožnil provoz clusteru se dvěma uzly a stále se zabránilo rozdělení mozku.“

za předpokladu, že všechny uzly v tomto příkladu mají jeden hlas, tato situace nemůže nastat, protože uzel D a uzel E mají dohromady pouze dva hlasy, což není více než polovina z celkového počtu hlasů (pět). To by vedlo k tomu, že uzly D a uzly E přestanou fungovat, dokud nebude přidán alespoň jeden další hlas. Uzly a, B, A c, na druhé straně, zůstávají aktivní poskytování služeb, protože mají dohromady tři hlasy, což je více než polovina z celkového počtu hlasů.

výpočet kvora

kvorum je vypočítáno a spravováno v doplňku Red Hat High Availability pomocí komponenty corosync votequorum. Komponenta votequorum používá dvě hodnoty pro výpočet, zda je cluster kvorát:

  1. očekávané hlasy: počet očekávaných hlasů, pokud jsou všechny uzly klastru plně funkční a vzájemně komunikují.
  2. celkem hlasů: počet aktuálně přítomných hlasů. To může být nižší než počet očekávaných hlasů, pokud některé uzly nejsou nebo nekomunikují s clusterem.

počet hlasů potřebných k dosažení usnášeníschopnosti je založen na očekávaných hlasováních. Následující vzorec ukazuje, kolik hlasů je zapotřebí pro usnášeníschopnost. V tomto výpočtu znamená podlaha () vždy zaokrouhlit dolů.

Quorum = floor(expected votes + 2 + 1)

příklad výpočtu Kvora

v následujícím příkladu se předpokládá cluster se třemi uzly. Uskupení tří uzlů má očekávaný počet hlasů tři.

Quorum= floor(expected votes + 2 + 1)Quorum = floor(3 + 2 + 1) Quorum = floor(1.5 + 1) Quorum = floor(2.5) Quorum = 2 

v klastru se třemi uzly musí být spuštěny minimálně dva uzly, aby bylo dosaženo kvora.

v následujícím příkladu se předpokládá cluster se čtyřmi uzly. Uskupení se čtyřmi uzly má očekávaný počet hlasů čtyři.

Quorum = floor(expected votes + 2 + 1} Quorum = floor(4 + 2 + 1) Quorum = floor(2 + 1} Quorum = floor(3) Quorum = 3

v klastru se čtyřmi uzly musí být spuštěny minimálně tři uzly, aby bylo dosaženo kvora.

Zobrazení stavu kvora

doplněk Red Hat High Availability poskytuje komplexní nástroj pro zobrazení aktuálního stavu kvora v klastru: corosync-quorumtool. Corosync-quorumtool poskytuje přehled informací týkajících se kvora, jako je celkový počet hlasů a očekávaných hlasů, a ukazuje, zda je cluster na první pohled kvorát.

  1. položka uzly poskytuje počet uzlů, které patří do clusteru.
  2. položka ID uzlu zobrazuje ID uzlu, na kterém byl proveden corosync-quorumtool.
  3. položka Quorate ukazuje, zda je cluster kvorát.
  4. položka očekávané hlasy zobrazuje počet hlasů, které jsou přítomny, pokud jsou v klastru aktivní všichni nakonfigurovaní členové klastru.
  5. nejvyšší očekávaný záznam ukazuje největší počet očekávaných hlasů v klastru.
  6. položka celkový počet hlasů zobrazuje počet hlasů aktuálně přítomných v klastru.
  7. položka Kvora ukazuje, kolik hlasů musí být přítomno minimálně, aby seskupení zůstalo kvorát.
  8. položka příznaky zobrazuje všechny vlastnosti související s kvorem, které jsou aktuálně nastaveny na clusteru. Pokud je cluster kvorát, zobrazí se vlastnost Kvorát. V tomto poli se při nastavení zobrazí také další speciální funkce, například LastManstanding nebo WaitForAll.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.