CRM (Resource Agents)
Provoz jakékoliv zdroje zajišťuje tzv. Resource Agent, což může být buď shellový skript, nebo binární soubor, který je pravidelných intervalech spouštěn. Základní sady těchto "agentů", jsou součástí několika instalačních balíků cluster-agents, lsb... Postupy ke konfiguraci CRM, které se válí na internetu, jsou většinou založeny na jejich použití. Můžete se však dostat do situace, kdy žádný z nich vašim potřebám vyhovovat nebude. V takovém případě máte dvě možnosti:
- Vyzkoušet použít agenta od jiného poskytovatele ("providera") Viz seznamu agentů na kterém naleznete mj. i popis k těm distribučním
- Napsat si agenta vlastního. Tomu, jak takový agent má vypadat bude věnována až následující kapitola.
Resource agent obsahuje funkce a nastavení výchozích proměnných, které se při konfiguraci přenastaví podle potřeb zdroje. Tato konfigurace se provádí prostřednictvím konzolového nástroje crm, a to buď při výchozí konfiguraci zdroje ( crm -> configure
), nebo i operativně, později za běhu ( crm -> resource
). Jaké parametry lze u použitého agenta nastavit, se lze dozvědět přes jejich informační rozhraní ( crm -> ra
)
Při nastavení zdroje se cesta k agentovi, který má být použit uvádí přes tři parametry, navzájem oddělené dvojtečkami:
class:provider:agent
Třída - "class" seskupuje agenty určitého typu. Jelikož může být na jednu službu dostupných více agentů od různých poskytovatelů (poskytovatel - "provider"), může v rámci hierarchické struktury crm existovat ještě tzv. "provider", což je vlastně podadresář, v němž je skript (nebo binární soubor) resource agenta umístěn. Pokud se tedy nějaký "provider" v rámci třídy vyskytuje, je vypsán při sekvenci crm -> ra -> classes
za lomítkem..
crm(live)ra# classes
heartbeat
lsb
ocf / dce heartbeat linbit pacemaker
stonith
|
Jak už bylo zmíněno, class a provider nejsou v podstatě nic jiného, než popis cesty k resource agentu..
- heartbeat
/etc/ha.d/resource.d/
(skripty)- lsb
/etc/init.d
(systémové spouštěcí skripty)- ocf
/usr/lib/ocf/resource.d/
(skripty)- stonith
/usr/lib/stonith/plugins/stonith2
(binárky)/usr/lib/stonith/plugins/external
(skripty)
Tato kapitola je věnována poznámkám pro tvorbu vlastního "Resource Agenta". Jak použít stávající agenty se můžete dočíst v samostatných článcích:
Vlastní agent
Vlastního agenta je nejlépe začít tvořit ve vlastním "provider" adresáři, tak aby nemohl nabourat ostatní agenty.
Když se objeví ve skriptu nějaká chyba, lze ji nejsnáze nalézt, je-li zavolán crm jako příkaz, když crmd démon neběží. Jinak se objeví pouze oznámení o chybě, bez konkrétního výpisu.
nod-2:~# crm configure ra info ocf:dce:drbd
|
Základem každého agenta je funkce meta_data, skrz kterou se do CRM načítá výchozí konfigurace zdroje ve formátu XML. V tomto XML zdroji se rovněž definují proměnné se kterými případně budete v rámci agenta pracovat (element parameter) a výchozí časové intervaly pro akce (element action).