CRM - instalace

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

Na stránkách http://www.clusterlabs.org je popsán postup kompilace ze zdrojových kódů . Ovšem kompilovat v rámci clusteru zvlášť CRM na každém nodu je nesmysl. Proto je lepší mít binární instalační balíčky, které lze mezi ně distribuovat. Ovšem udělat kvalitní instalační balíčky vyžaduje několik předpokladů:

  • mít alespoň elementární znalosti balíčkování
  • mít určité zkušenosti s kompilací software
  • mít vhodné testovací stroje
  • mít čas a chuť

Instalace přes APT

Instalace distribučního Pacemakeru u Debianu byla pro mne na samém počátku dost zmatečná, neboť ji provázela spousta protichůdných informací posbíraných všude možně po internetu. Situaci komplikovala skutečnost, že jsem zpočátku dost dobře nechápal, jak to všechno vlastně funguje a především netušil, že heartbeat i corosync dělají defakto to samé. (viz ...)

Po několikadenním trápení a nesčetných pokusech jsem došel k tomu, že postup instalace, kterým jsem začal na samém počátku byl v zásadě správný:

Poznámka
nod-1:~# apt-get install corosync pacemaker

Veškeré potřebné soubory si pak APT doinstaloval sám. Jenže..

Debianí instalační balíky pro Pacemaker mi přišly nějak divně a komplikovaně udělané.

  • Především mi nebyla jasná závislost na instalačních balících heartbeatu. Proč bych je měl cpát do systému, když stejně používám corosync? Teprve když jsem začal dělat vlastní balíky jsem zjistil že i když Pacemaker primárně pro komunikaci používá corosync, využívá zároveň přitom i některé knihovny od heartbeatu
  • Některé banální operace v rámci CRM vyvolávaly Kernel panic celého systému
  • Debianí verze Pacemakeru mi navíc přišla zastaralá. Verze 1.0.10 se objevila téměř před rokem, zatím co aktuální vývojová verze byla 1.1.5
  • Poslední kapkou byla změna verze perlu. Což o to na samotný Pacemaker to sice vliv nemělo, jenže balík net-snmp, vyžadovaný pro kompilaci podpory snmp, kterou jsem chtěl otestovat měl s kompilací problém

Proto jsem si udělal instalační balíky pro architekturu amd64 vlastní.

Ovšem jak se zdá, ledy se od jara t.r. (května 2011) přece jenom pohnuly. I když i nadále z hlediska zpracování působí distribuční balíček chaoticky, byl aktualizován, takže aktuálně je v distribuci jak ve sqeezu, tak unstable k dispozici Pacemaker verze 1.1.6

Není tedy důvod se zdržovat údržbou vlastních instalačních balíčků.


Kromě toho v současné době (říjen 2011) změnil corosync způsob komunikace - využívá při ní externí knihovnu libqb se kterou Pacemaker zatím pracovat neumí.

Poznámka Pokud někdo použil instalační balíčky z naší repository, pak je přechod na distribuční verzi poměrně jednoduchý..

1, Nejprve přes apt-get nechte odinstalovat všechny balíčky co začínají crm

2, Pak je třeba odebrat také tyto balíčky

apt-get remove libplumbgpl2 libpils2 libsnmp15 libsnmp-base

3, Jelikož distribuční balíčky pracují s dynamicky nastavenou systémovou skupinou a uživatelem, je třeba odstranit stávajícího uživatele a skupinu (jinak by instalace zkončila chybou)

deluser hacluster; delgroup haclient

4, A posledním krokem je odstranění adresáře, ve kterém jsou uloženy cib soubory. Pozor - nastavená pravidla je třeba předem odzálohovat, jako čistý text!

rm /var/lib/heartbeat

5, Nyní již lze nainstalovat distribuční Pacemaker. Aby si sebou přitáhnul všechny potřebné knihovny z oficiální repository, je vhodné přidat přes volbu -t že má tahat z unstable

apt-get -t unstable install pacemaker
Upozornění Reinstalace balíku corosync vždy přepíše stávající konfigurační soubor! Proto je třeba v souboru /etc/corosync/corosync.conf ještě před prvním spuštěním /usr/sbin/corosync nahradit localhostovou adresu (127.0.0.1) adresou jakou má stroj v rámci síťové infrastruktury clusteru a rovněž zaměnit i multicastovou adresu (na 224.0.0.1)


Aby v balících nebyl takový nepořádek, jako u oficiální distribuce, zvolil jsem základní pojmenování balíků podle CLI nástroje Pacemakeru - crm. Využil jsem toho, že v oficiální distribuci žádný jiný balíček stejného jména není, a zároveň tak mohl vytvořit tzv. meta-balíček, který sám o sobě nic neobsahuje, ale pouze na základě závislostí stáhne a nainstaluje ve správném pořadí vše potřebné. Jen pro srovnání uvádím v pořadí nutném pro kompilaci názvy dílčích instalačních balíků a v závorkách názvy jejich distribučních ekvivalentů.

  1. crm-glue (cluster-glue)
  2. crm-agents (cluster-agents)
  3. crm-heartbeat (heartbeat)
  4. crm-corosync (corosync)
  5. crm-pacemaker (pacemaker)

Pokud si přidáte do zdrojů pro APT mou repository...

deb http://support.dce.felk.cvut.cz/debian/ unstable main
deb-src http://support.dce.felk.cvut.cz/debian/ unstable main

Pak můžete (po aktualizaci zdrojů) nainstalovat Pacemaker včetně veškerých závislostí jedním příkazem..

Poznámka
nod-1:~# apt-get install crm
Poznámka V repository je také aktualizovaná verze lm-sensors a proti ní zkompilované binární balíčky net-snmp v. 5.6.1 (v oficiální distribuci je verze 5.4.3)

Rekompilace ze zdrojových balíčků

Pokud si budete chtít zkusit rebuildovat Pacemaker na míru z mých zdrojových balíčků a máte k dispozici několik strojů, ze kterých budete pak chtít cluster sestavit, můžete zkrátit čas kompilace použitím distcc.

Jeden ze strojů si zvolte jako kompilační stroj pro sestavování balíků (klient) a na ostatních nakonfigurujte a spusťe distcc jako server. Jelikož se serverová část distcc spouští na všech strojích, můžete využít, podobně jako já funkčního CRM pro jeho spouštění a zastavení.