Pacemaker

Z DCEwiki
Verze z 11. 11. 2013, 18:35, kterou vytvořil Keny (diskuse | příspěvky) (Zrušena verze 19705 od uživatele Keny (diskuse))
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

http://www.clusterlabs.org/

Pacemaker je open source implementací CRM (Cluster Resource Management). Jde o sadu démonů, které v rámci HA clusteru zajišťují spouštění či naopak zastavování konkrétních služeb. Tyto služby se nazývají zdroje (resource). Může to být prakticky libovolná služba, kterou by měl zajišťovat běžný server (web server, virtuální stroj, sdílený disk & etc..). Rozdíl mezi běžnými standalone servery a servery sdruženými do HA clusteru je především v tom, že stroje sdružené do clusteru vzájemně komunikují a jsou schopny mezi sebou zdroje podle potřeby přesouvat, tak aby byla zajištěna jejich trvalá dostupnost.

Pacemaker vzniknul jako fork projeku Linux-HA, jehož cílem bylo vytvořit komplexní řešení clusterové infrastruktury postavené na Linuxu. Na počátku šlo o jeden balík démonů, ale postupem času se projekt rozdělil na tři samostatné větve:

  • Nejprve se oddělil vývoj Cluster Glue (vývoj je samostatný od verze 1.0). Cluster Glue je sada démonů zajišťujících spolupráci nodu s infrastrukturou clusteru.
  • vývoj démona obstarávajícího vzájemnou komunikaci nodů, s názvem heartbeat se oddělil od hlavního projektu od verze 2.1.4 Jeho název se často používal jako synonymum pro celý projekt Linux-HA.
  • samostatný vývoj správce zdrojů (Resource Agents) s názvem Pacemaker začal na sklonku roku 2003, kdy Andrew Beekhof začal pracovat na novém CRM, který by odstranil omezení původní verze. Ta totiž, mimo jiné, umožňovala vytvořit cluster pouze o dvou nodech. První zárodek Pacemakeru se objevil 30. července 2005, v rámci vydání Heartbeat v. 2.0.0. K úplnému osamostatnění projektu pak došlo na konci roku 2007.

Vývoj stále pokračuje a průběžně dochází k dalším změnám.


Přehled kapitol manuálu pro Pacemaker (napravo je uváděn aktuální stav zpracování kapitoly):

Pacemaker  
 
90%
CRM - instalace  
 
50%
CRM - konfigurace  
 
50%
CRM (konfigurace zdrojů)  
 
90%
CRM (CLI)  
 
60%
CRM (examples)  
 
60%
CRM - konfigurace distcc
 
100%
CRM - konfigurace DRBD  
 
70%
CRM - konfigurace OCFS2  
 
80%
CRM - konfigurace FS  
 
20%
CRM (Resource Agents)  
 
20%
CRM (akce)  
 
60%

Dodatky:

HA cluster  
 
90%
Heartbeat - konfigurace
 
100%

Komunikační vrstva

Vzájemná komunikace mezi nody je nezbytnou podmínkou pro bezchybné fungování clusteru. Dříve než Pacemaker zdroj spustí na některém z nodů, musí mít jistotu, že jsou splněny všechny potřebné podmínky pro to aby nemohlo dojít k nějaké kolizi, či selhání zdroje kvůli nedostupnosti jiné, potřebné služby.

K této komunikaci může Pacemaker použít dvě různé implementace: heartbeat nebo corosync.

Upozornění Heartbeat i corosync zajišťují jednu a tu samou věc, tudíž je nelze spouštět oba zároveň. Pacemaker může stejně používat vždy jen jeden z nich a nikdy ne oba dva najednou. Navíc v případě chybné konfigurace může docházet i k nežádoucím kolizím v rámci infrastruktury clusteru.

Heartbeat

http://linux-ha.org/wiki/Heartbeat

Jak už bylo zmíněno heartbeat byl komunikační démon z původního projektu Linux-HA. Ovšem pro vývojáře CRM bylo mnohem výhodnější než vyvíjet vlastní implementaci přejít na corosync, za jehož vývojem stojí Red Hat. Proto jeho vývoj opustili. Dalšího vývoje Heartbeatu se chopil Linbit (viz DRBD8, který jej interně využívá ke vzájemné komunikaci mezi nody DRBD

Při testování se ovšem Haertbeat v porovnání s corosyncem jevil mnohem méně stabilní.Což se projevovalo tím, že při spouštění heartbeatu byl vždy nabourán linuxový kernel, a to následně vedlo k opakovaným restartům systému. Takže jen pro úplnost přidávám link na ukázkovou konfiguraci heartbeatu

Corosync

http://www.corosync.org/

Corosync Vzniknul jako derivát projektu openais, jehož cílem byla implementace jednotného API pro komunikaci v rámci clusteru.

Vývoj původního projektu openais trval téměř šest let a během té doby si mnoho projektů vytvořilo své vlastní komunikační mechanismy. Proto byl na základech tohoto projektu postaven Corosync Cluster Engine, který umožnil jejich sjednocení do jednoho komunikačního rozhraní a protokol openais se tak stal jejich pojítkem.