CRM (CLI)
Máme-li funkční CRM, vypadá jeho výstup bez spuštěných a nakonfigurovaných zdrojů takto..
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.
Konfigurace použitého resource agenta
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)
crm
http://www.clusterlabs.org/doc/crm_cli.html
crm je konzolový nástroj, spolupracující s démonem crmd, přes který je cluster řízen.
Lze jej používat jako shell, a to spuštěním bez parametrů, a nebo volat rovou s parametry, jako normální příkaz z příkazové řádky..
Výhodou shellového přístupu je, že lze využívat nápovědy, ukládání historie příkazů, automatického doplňování při nastavování zdrojů, aj.
status
Vypisuje aktuální stavu clusteru, podobně jako příkaz crm_mon
node
- status
- show,list
- standby
- online
- fence
- clearstate
- delete
- attribute
- status-attr
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.
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
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