DRBD (konfigurace CRM)

From DCEwiki
Jump to navigation Jump to search

Pro automatické spouštění DRBD zařízení přes crm je doporučeno použít agenta drbd od poskytovatele "linbit". LINBIT je firma, která stojí za vývojem DRBD8. V instalaci CRM můžete najít ještě jednoho agenta, se shodným názvem, ale jeho použití už není doporučené.

Nastavení je poměrně jednoduché, pokud víte, jak funguje CRM (viz CRM (Resource Agents)). Jsou-li nody navzájem propojené na gigové síťové kartě kabelem napřímo (tzv. "bonding"), pak vystačíte s výchozí konfigurací agenta, a není nutné měnit výchozí načasování pro akce CRM.

Vytvoření primitiva pro DRBD zařízení...

Poznámka
crm(live)configure# primitive DRBD ocf:linbit:drbd \
params drbd_resource="drbd_disc1"

Spouštění agenta na obou nodech zajistíme vytvořením Master/Slave objektu...

Poznámka
crm(live)configure# ms msDRBDclone DRBD \
meta master-max="2" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
  • master-max - hodnota nastavuje kolik instancí v rámci Master/Slave objektu může být současně v režimu Master. V případě, že chcete používat DRBD zařízení pouze k zrcadlení zálohy ( režim Primary/Secondary ), může běžet jako Master pouze jedna instance. Ovšem aby bylo možné DRBD zařízení namountovat současně na dvou nodech, musí být v režimu Primary/Primary, takže musí být v rámci clusteru povoleny nastaveny dvě instance běžící jako Master.
  • master-node-max - zabraňuje tomu, aby bylo spuštěny dvě Master instance v rámci jednoho nodu. Teoreticky by to sice možné bylo, ale prakticky při lokálním použití nemá aplikace DRBD žádný smysl.
  • clone-max - nastavuje kolik instancí primitiva může být spuštěno současně v rámci clusteru. Obvykle toto číslo odpovídá počtu nodů, ovšem v případě DRBD by měly běžet současně vždy maximálně 2 instance.
  • clone-node-max - nastavuje kolik instancí primitiva může být spuštěno současně v rámci jednoho nodu. V tomto případě by měla být hodnota vždy 1 ( pouze jedna lokální instance na jedno DRBD zařízení ).
  • notify
Upozornění Pokud má cluster pouze dva nody, tak musí mít nastaveno, aby ignoroval politiky pro quorum, jinak by totiž při odstavení jednoho z nodů zastavil službu i na druhém nodu.

Vypnutí politiky pro quorum...

Poznámka
crm(live)configure# property no-quorum-policy="ignore"

Před odesláním nastavení do infrastruktury clusteru data překontrolujeme a pak odešleme příkazem commit...

Poznámka
crm(live)configure# show
crm(live)configure# show
node nod-1 \
	attributes standby="off"
node nod-2 \
	attributes standby="off"
primitive DRBD ocf:linbit:drbd \
	params drbd_resource="drbd_disc1" stop_outdates_secondary="false" \
	op monitor interval="20s"
ms msDRBDclone DRBD \
	meta master-max="2" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" target-role="Started"
property $id="cib-bootstrap-options" \
	dc-version="1.0.9-da7075976b5ff0bee71074385f8fd02f296ec8a3" \
	cluster-infrastructure="openais" \
	expected-quorum-votes="2" \
	stonith-enabled="false" \
	last-lrm-refresh="1302694309" \
	no-quorum-policy="ignore"
crm(live)configure# commit

Po odeslání se služba ihned spustí...

Poznámka
crm(live)configure# cd
crm(live)resource# start msDRBDclone
crm(live)resource# cd
crm(live)# status
============
Last updated: Wed Apr 13 15:55:07 2011
Stack: openais
Current DC: nod-2 - partition with quorum
Version: 1.0.9-da7075976b5ff0bee71074385f8fd02f296ec8a3
2 Nodes configured, 2 expected votes
1 Resources configured.
============

Online: [ nod-2 nod-1 ]

 Master/Slave Set: msDRBDclone
     Masters: [ nod-2 nod-1 ]
crm(live)#

Výpisem obsahu souboru /proc/drbd si ověříme, je-li pole nahozeno správně..

Poznámka
nod-1:~# cat /proc/drbd 
version: 8.3.9 (api:88/proto:86-95)
srcversion: CF228D42875CF3A43F2945A 

 1: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:208 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

Restart nodu..

Poznámka
nod-2:~# crm_mon -1
Connection to the CIB terminated
Reconnecting..crm_mon -1
============
Last updated: Wed Apr 13 16:07:03 2011
Stack: openais
Current DC: nod-2 - partition WITHOUT quorum
Version: 1.0.9-da7075976b5ff0bee71074385f8fd02f296ec8a3
2 Nodes configured, 2 expected votes
1 Resources configured.
============

Online: [ nod-2 ]
OFFLINE: [ nod-1 ]

 Master/Slave Set: msDRBDclone
     Masters: [ nod-2 ]
     Stopped: [ DRBD:1 ]

Někdy se může stát, že je z nějakého důvodu DRBD na obou nodech ve StandAlone módu. K vyřešení by mělo stačit na tom z nodů, který se připojil později ještě jednou restartovat corosync.

Poznámka
nod-1:~# cat /proc/drbd 
version: 8.3.9 (api:88/proto:86-95)
srcversion: CF228D42875CF3A43F2945A 

 1: cs:StandAlone ro:Primary/Unknown ds:UpToDate/DUnknown   r-----
    ns:0 nr:0 dw:0 dr:416 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
nod-1:~# /etc/init.d/corosync stop
Stopping corosync daemon: corosync.
nod-1:~# /etc/init.d/corosync start
Starting corosync daemon: corosync.
nod-1:~# cat /proc/drbd 
version: 8.3.9 (api:88/proto:86-95)
srcversion: CF228D42875CF3A43F2945A 

 1: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:208 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0