Prezentace HA LAMP clusteru

Před pár týdny jsem uspořádal v naší firmě malou interní prezentaci na téma HA LAMP cluster v délce cca 2 hodiny. Cílem prezentace bylo obeznáméni kolegů s principy vysoké dostupnosti našeho řešení. V rámci prezentace jsem vysvětlil základní obecné pricipy clustrování a sestavování clusteru. Samotnou implementaci clusteru jsem předvedl na sestavení dvouuzlového clusteru, který má sloužit jako clustrovaný LAMP server. Cílem clustrování je obecně zabezpečit vysokou dostupnost služeb, zvyšovat spokojenost zákazníků a znižovat náklady spojené z výpadkem služeb.

 

Popis clusteru

Náš cluster je provozován v režimu HA – Fail-over, tj. v případě výpadku některého z uzlů, cluster resource manager (CRM) tento výpadek zaregistruje a přemigruje služby, které na něm běžely, na druhý uzel. V takovém případě se může administrátor věnovat nápravě výpadku uzlu bez toho, aby došlo k výpadku služeb.

 

Jednotlivé uzly clusteru jsou linuxové servery (použil jsem distribuci CentOS 5.5 x86) ve virtuálním prostředí. Pro virtualizaci serverů jsem použil vmware player ve verzi 3.1, který nám pro naše účely plně postačoval. Pro jednoduchost má každý z virtuálních serverů dvě síťová rozhraní. Jedno pro spojení do internetu a druhé pro vzájemné propojení uzlů, po kterém komunikují v rámci clusteru.

Pro rozdelení disku jem použil LVM (kromě oddílu /boot). Na disku jsem vytvořil dvě PV, z kterých se každý nachází v samostatné VG. Jedna VG slouží pro logické oddíly operačního systému (//var/tmp/home, …) a druhá pro DRBD replikace. Na VG pro DRBD jsem vytvořil dva logické oddíly. Jeden pro replikaci dat web serveru a druhý pro replikaci mysql dat. Každý z těchto logických oddílů se použije v konfiguraci DRBD pro vytvoření zařízení, které se budou mezi uzlama clusteru replikovat.

Samotný cluster pozůstáva ze tří vrstev:

  • Pacemaker – spravuje služby v rámci clusteru
  • Heartbeat – zajišťuje komunikacu mezi uzly clusteru
  • DRBD – zajišťuje replikaci dat mezi uzly clusteru

 

Požadavky na cluster

Na náš LAMP cluster bylo zadáno několik základních a logický požadavků:

  • apache má vlastní IP adresu – potřebujeme, aby weby byly dostupné vždy pod stejnou IP adresou bez ohledu na to, na kterém uzlu momentálně apache běží
  • mysql server má vlastní IP adresu – potřebujeme, mysql server v rámci interní sítě clusteru dostupný vždy pod stejnou IP adresou bez ohledu na to, na kterém uzlu momentálně mysql server běží
  • apache a mysql běží v rámci clusteru v jedné instanci
  • apache a mysql běží primárně na různych uzlech – když jsou oba uzly clustru ok nemá význam, aby je CRM spouštěl na stejném uzlu
  • cluster běží v fail-over módu – v případě výpadku některého z uzlů clusteru, přebírá jeho služby druhý uzel

Prezentaci ve formátu PDF najdete zde. V příštím zápisku si ukážeme sestavení a otestování zmíněného clusteru krok po kroku.