Aby bylo možné na jednotlivých nodech mountovat clusterový souborový systém OCFS2, musí mít všechny k dispozici stejné sdílené datové úložiště a kromě toho musí být na každém z nich spuštěn jaderný proces [o2net]
Otázka: Proč se musí použít pro nahození OCFS2 agent ocf:dce:o2cb
?
Odpověď: Nahazování OCFS2 se u Debianu provádí prostřednictvím /etc/init.d/o2cb
. Pacemaker sice umožňuje při konfiguraci zdrojů využít LSB skriptů, jenže s nimi pracuje pouze v režimu start-stop a pro mountování OCFS2 je nutné absolvovat několik kroků, které se při startu automaticky nemusí provést.
V podstatě se musí provést dvě hlavní operace
- zavedení jaderného modulu (load)
- nahození do stavu online (online)
Teprve pak je možné provést vlastní mount. Háček je ovšem v tom, že případná kontrola OCFS2 musí být provedena ještě před uvedením do stavu online. Pokud by se nahazovalo OCFS2 přes LSB agenta, tak by to nebylo možné, neboť ten se při akci start
pokusí ihned aktivovat souborový systém do stavu online, neboť předpokládá, že si konzistenci dat řeší rovnou sdílené datové úložiště.
V našem případě to však není chování příliš žádoucí. Proto byl proces nahození OCFS2 rozdělen mezi dva agenty.
- První
ocf:dce:o2cb
provádí a kontroluje výsledek akce load.
- Druhý
ocf:dce:FS
řeší mountování souborových systémů obecně, nejenom OCFS2. Přepnutí OCFS2 do stavu online provádí až když je to zapotřebí.
|
Ve standardní instalaci Pacemakeru je podobný agent ocf:pacemaker:o2cb , který nějakým způsobem nahazování OCFS2 řeší. Bohužel však tento agent nezvládá změnu v systém zamykání, který byl u novější OCFS2 přenesen z userspace do kernelspace, takže je defakto nepoužitelný.
|
Nastavení O2CB
V případě synchronního clusteru, kdy všechny nody mají k dispozici stejná zařízení není třeba nic řešit a postačí pouhé nastavení clone. U asynchronního clusteru je však nutné před odesláním konfigurace nastavit také location.
|
Pokud je u asynchronního clusteru datové úložiště vytvořeno pomocí DRBD zdroje, který vyžaduje nastavení location sám o sobě, neboť je vázán pouze na dva nody, stačí použít v konfiguraci nastavení collocation na zdroj msDRBD. To samo o sobě zajistí, že se Pacemaker nebude pokoušet nahodit démona O2CB na nodech, které nemají zdroj msDRBD k dispozici. V našem případě se tedy bude clO2CB spouštět pouze na strojích nod-1 a nod-2.
|
Vytvoření O2CB zdroje
|
nod-2 (DATASERVER) :~# crm configure
crm(live)configure# primitive O2CB ocf:dce:o2cb
crm(live)configure# clone clO2CB O2CB
crm(live)configure# collocation col-clO2CB inf: clO2CB msDRBD
crm(live)configure# commit
crm(live)configure# cd
crm(live)# status
============
Last updated: Thu Nov 24 14:36:17 2011
Last change: Thu Nov 24 14:36:09 2011 via cibadmin on nod-2
Stack: openais
Current DC: nod-3 - partition with quorum
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
4 Nodes configured, 4 expected votes
6 Resources configured.
============
Online: [ nod-2 nod-1 nod-4 nod-3 ]
Master/Slave Set: msDRBD [DRBD]
Masters: [ nod-1 nod-2 ]
Clone Set: clO2CB [O2CB]
Started: [ nod-1 nod-2 ]
Stopped: [ O2CB:2 O2CB:3 ]
crm(live)# quit
bye
|
Kontrola chování zdroje
|
nod-2 (DATASERVER) :~# /etc/init.d/o2cb status
Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Stack glue driver: Loaded
Stack plugin "o2cb": Loaded
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Offline
nod-2 (DATASERVER) :~# crm resource stop msDRBD
nod-2 (DATASERVER) :~# /etc/init.d/o2cb status
Driver for "configfs": Not loaded
Driver for "ocfs2_dlmfs": Not loaded
Checking O2CB cluster ocfs2: Offline
nod-2 (DATASERVER) :~# crm status
============
Last updated: Thu Nov 24 14:40:58 2011
Last change: Thu Nov 24 14:40:44 2011 via cibadmin on nod-2
Stack: openais
Current DC: nod-4 - partition with quorum
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
4 Nodes configured, 4 expected votes
6 Resources configured.
============
Online: [ nod-2 nod-1 nod-4 nod-3 ]
nod-2 (DATASERVER) :~# crm resource start msDRBD
nod-2 (DATASERVER) :~# crm status
============
Last updated: Thu Nov 24 14:41:12 2011
Last change: Thu Nov 24 14:41:08 2011 via cibadmin on nod-2
Stack: openais
Current DC: nod-4 - partition with quorum
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
4 Nodes configured, 4 expected votes
6 Resources configured.
============
Online: [ nod-2 nod-1 nod-4 nod-3 ]
Master/Slave Set: msDRBD [DRBD]
Masters: [ nod-1 nod-2 ]
Clone Set: clO2CB [O2CB]
Started: [ nod-1 nod-2 ]
Stopped: [ O2CB:2 O2CB:3 ]
nod-2 (DATASERVER) :~# /etc/init.d/o2cb status
Driver for "configfs": Loaded
Filesystem "configfs": Mounted
Stack glue driver: Loaded
Stack plugin "o2cb": Loaded
Driver for "ocfs2_dlmfs": Loaded
Filesystem "ocfs2_dlmfs": Mounted
Checking O2CB cluster ocfs2: Offline
nod-2 (DATASERVER) :~# cat /proc/drbd
version: 8.3.11 (api:88/proto:86-96)
srcversion: 2D876214BAAD53B31ADC1D6
1: cs:Connected ro:Primary/Primary ds:UpToDate/UpToDate C r-----
ns:0 nr:0 dw:0 dr:664 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
nod-2 (DATASERVER) :~#
|