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
Výpis aktuálního stavu clusteru
ra
V rámci ra lze prohlížet zdroje meta informace k jednotlivým 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
- V případě že došlo z nějakého důvodu k chybě, která vede k pozastavení další operace, lze ji tímto způsobem deaktivovat a operaci zkusit provést znovu, s opravenými parametry
- demote
- failcount
- manage
- CRM se pokusí převzít "vládu" nad zdrojem (nebo skupinou zdrojů), která je ve stavu unmanaged)
- meta
- Umožňuje vypsat případně změnit aktuální nastavení akcí, které manipulují se zdrojem. Tato změna však platí pouze do okamžiku, než jsou znovu načteny výchozí hodnoty z uložené konfigurace (příkaz reprobe)
- migrate,move
- Přesune zdroj na jiný nod. Což znamená že běh služby se na stávajícím nodu zastaví a spustí jinde. Funguje to v závislosti na tom, jakým způsobem agent zdroje podporuje migraci.
- param
- Umožňuje vypsat případně změnit aktuální parametry zdroje. Tato změna však platí pouze do okamžiku, než jsou parametry zdroje znovu načteny z výchozí konfigurace (příkaz reprobe)
- promote
- refresh
- reprobe
- restart
- CRM se pokusí zdroj korektně zastavit a znovu spustit.
- status,show,list
- vypíše aktuální stav zdrojů
- start
- CRM se pokusí o spuštění zdroje. V případě, že se mu to nepodaří, zůstane zdroj ve stavu "stop" a v monitoru se objeví oznámení o chybě.
- stop
- CRM se pokusí o zastavení zdroje. V případě, že se mu to nepodaří, zdroj zůstane běžet ve stavu "unmanaged" a v monitoru se objeví oznámení o chybě.
- unmanage
- CRM dá od zdroje ruce pryč. Záleží na agentovi zda může (ale nemusí) dále monitorovat její běh a případně pak správu zddroje zase převzít
- unmigrate,unmove
- Volání této funkce může být shodné s voláním move.
node
- status
- show,list
- standby
- online
- fence
- clearstate
- delete
- attribute
- status-attr
cib
- new
- delete
- reset
- commit
- use
- diff
- list
- import
- cibstatus
options
- skill-level
- user
- editor
- pager
- sort-elements
- output
- colorscheme
- check-frequency
- check-mode
- show
- save