CRM (CLI)

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

Máme-li funkční CRM, vypadá jeho výstup bez spuštěných a nakonfigurovaných zdrojů takto..

Poznámka
nod-1:~# crm_mon -1
============
Last updated: Tue Apr 12 11:44:55 2011
Stack: openais
Current DC: nod-1 - partition with quorum
Version: 1.0.9-da7075976b5ff0bee71074385f8fd02f296ec8a3
2 Nodes configured, 2 expected votes
0 Resources configured.
============

Online: [ nod-2 nod-1 ]

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:

  1. 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
  2. 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 )

Poznámka Jelikož mi zpočátku dlouho nebylo jasné, co je u crm konzolový příkaz a co konfigurační sekvence, pokusil jsem se pro větší přehlednost u konfiguračních sekvencí uvádět znaky ->, kterými jsem chtěl naznačit krok - "dopiš a dej enter"

Zcela konkrétně. Sekvence crm -> ra -> help by měla vést k tomu, že se na konzoli vypíše přehled dostupných příkazů v rámci sekvence ra, což je oblast v níž lze zjišťovat informace o dostupných agentech - jak lze u nich použít parametry, jaké jsou u nich doporučené hodnoty, atp.

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..

Poznámka
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

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..

Poznámka
nod-1:~# crm configure show
node nod-1
node nod-2
property $id="cib-bootstrap-options" \
	dc-version="1.0.9-da7075976b5ff0bee71074385f8fd02f296ec8a3" \
	cluster-infrastructure="openais" \
	expected-quorum-votes="2" \
	stonith-enabled="false" \
	last-lrm-refresh="1302601487"
nod-1:~#

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.

Upozornění Než začnete psát vlastního agenta byste měli vědět jak se crm pracuje a pak začít, dejme tomu s úpravou některého již osvědčeného agenta. V základní sadě je agent s názvem Dummy, který nedělá nic jiného, než demonstruje kde běží. Na něm si můžete odzkoušet přesuny zdroje mezi nody, seskupování, zastavování, spouštění atp.

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


Poznámka
Poznámka
Poznámka