CRM (CLI)
Máme-li funkční CRM, vypadá jeho výstup bez spuštěných služeb takto..
Provoz jakékoliv služby zajišťuje tzv. "Resource Agent", což může být buď shellový skript, nebo binární soubor, který se spouští v určitých intervalech, na základě nastavených (a přednastavených) konfiguračních parametrů. Základní sady těchto "agentů", jsou součástí několika instalačních balíků cluster-agents. Postupy ke konfiguraci CRM, které se válí po 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 nevyhoví, tak jak byste potřebovali. V takovém případě máte dvě možnosti:
- použít nějaký jiný ze seznamu agentů , který v distribučním balíku být nemusí - na stránce naleznete mj. i popis k distribučním agentům
- nebo si napsat agenta vlastního
Právě druhému bodu je věnován zbytek této stránky..
Konfigurační volby resource agenta
Konfiguraci resource agenta lze provádět prostřednictvím konzolového nástroje crm, a to buď při výchozí konfiguraci služby ( crm -> configure
), nebo později, operativně, za běhu ( crm -> resource
).
Jaké parametry lze vůbec u agenta nastavit, se můžete dozvědět z jeho výpisu konfiguračních nastavení ( crm -> ra
)
Při nastavení se cesta k resource agentovi uvádí přes tři položky, 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)
Práce s crm
Před psaním vlastního agenta je nejjlepší se seznámit s tím jak se crm pracuje a pak začít s úpravou agenta již existujícího. V základní sadě je agent s názvem Dummy
, který nedělá nic jiného, než demonstruje kde běží. Lze si na něm tedy odzkoušet přesuny služby mezi nody, zastavování, spouštění, seskupování atp.
- status
- vypíše aktuální stav clusteru
- ra
- zdroje informací k agentům ("resource agents")
- classes
- vypisuje seznam dostupných tříd (classes). V případě že, je stejná třída poskytovaná více poskytovateli (provider), vypíše (za lomítkem) i poskytovatele
- list
- vypíše seznam agentů dostupných v rámci třídy. Je-li výpis upřesněn i uvedením poskytovatele (provider), pak vypíše pouze jemu příslušné agenty ("resource agents")
- meta,info
- vypíše přehled všech možných parametrů, které lze nastavit u příslušného agenta. V případě komplexnějších agentů je to včetně podrobného popisu a výstup vypadá podobně jako u manuálu
- providers
- vypisuje naopak na základě názvu agenta jeho poskytovatele - "providera". V případě, že kromě providera je agent nabízen některou třídou (class) přímo, nevypíše nic. Pokud má nějakého poskytovatele, tak jej vypíše teprve po upřesnění třídy.
- configure
- V rámci configure se provádí výchozí konfigurace agentů. Nastavení proměnných, vzájemných závislostí při spouštění, intervalů spouštění atd. Do vlastního CRM se však změny v konfigurace promítnou až po jejich odeslání příkazem commit.
- cibstatus
- clone
- colocation,collocation
- commit
- delete
- edit
- erase
- group
- load
- location
- monitor
- ms,master
- nastaví zdroj (primitive) tak aby se spouštěl na obou strojích
- node
- op_defaults
- order
- primitive
- primitiva jsou základní služby, které lze seskupovat (group), řadit (order) aj.
- property
- ptest
- rename
- refresh
- rsc_defaults
- save
- show
- výpis stávající konfigurace
- template
- upgrade
- verify
- xml
- resource
- V rámci resource se nakonfigurované zdroje spouští (a zastavují), přesouvají mezi nody, případně se jim za běhu upravují přednastavené parametry.
- cleanup
- demote
- failcount
- manage
- meta
- migrate,move
- param
- promote
- refresh
- reprobe
- restart
- status,show,list
- start
- stop
- unmanage
- unmigrate,unmove
- status
- vypíše aktuální stav clusteru