DRBDボリュームの拡張

 article  Comments Off on DRBDボリュームの拡張
Oct 182012
 

DRBDしているディスク容量が足りなくなったので増やしてみました。
DRBDサイトのマニュアル、6.15. Resizing resourcesに載っているように、LVM等を使っている場合はオンラインで拡張できるそうです。

同期対象のブロックデバイスはLVMで作ってあるので512MBから1GBまで増やします。
論理ボリューム:/dev/vg01/lv_share0
DRBDリソース名:share0
マウントポイント:/share0

1号機側

[root@centos61 ~]# df /share0
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/drbd0              507696    474421      7064  99% /share0
[root@centos61 ~]# drbd-overview
  1:share0/0  Connected Primary/Secondary UpToDate/UpToDate C r----- /share0 ext4 496M 464M 6.9M 99%
[root@centos61 ~]# lvdisplay /dev/vg01/lv_share0
  --- Logical volume ---
  LV Path                /dev/vg01/lv_share0
  LV Name                lv_share0
  VG Name                vg01
  LV UUID                VLqQh7-U1wH-OGCV-C3J3-YWHa-yxO0-haRurq
  LV Write Access        read/write
  LV Creation host, time centos61, 2012-10-12 09:54:48 +0900
  LV Status              available
  # open                 0
  LV Size                512.00 MiB
  Current LE             128
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

[root@centos61 ~]#
[root@centos61 ~]# lvextend -L 1G /dev/vg01/lv_share0
  Extending logical volume lv_share0 to 1.00 GiB
  Logical volume lv_share0 successfully resized
[root@centos61 ~]#

2号機側(論理ボリュームのサイズ等は1号機と同一なので省略)

[root@centos62 ~]# lvextend -L 1G /dev/vg01/lv_share0
  Extending logical volume lv_share0 to 1.00 GiB
  Logical volume lv_share0 successfully resized
[root@centos62 ~]#

1号機側(Primaryノード側)でDRBDサイズ変更実施

[root@centos61 ~]# drbdadm resize share0
[root@centos61 ~]#

何も表示されない。。。drbd-overviewでみてもサイズは変わっていないように見える。

よくわからないけど、このままファイルシステムのオンライン拡張を実施してみる。

[root@centos61 ~]# resize2fs /dev/drbd0
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/drbd0 is mounted on /share0; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 4
Performing an on-line resize of /dev/drbd0 to 1048508 (1k) blocks.
The filesystem on /dev/drbd0 is now 1048508 blocks long.

[root@centos61 ~]# df /share0
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/drbd0             1015428    474556    488488  50% /share0
[root@centos61 ~]#

ちゃんと増えた 🙂

 Posted by at 1:42 am  Tagged with:

Pacemaker + drbdでリソースレベルフェンシング

 article  Comments Off on Pacemaker + drbdでリソースレベルフェンシング
Aug 142012
 

Pacemaker + drbdの構成でリソースレベルフェンシングをやってみました。
8.3. Using resource-level fencing in Pacemaker clusters

drbdのリソースに以下を設定してみます。

resource <resource> {
  disk {
    fencing resource-only;
    ...
  }
  handlers {
    fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
    after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh";
    ...
  }
  ...
}

Masterな状態で動作している1号機(pcmk-1)のN/Wを切断すると2号機(pcmk-2)がMasterになります。
その際以下のlocationが設定されてpcmk-2以外のスコアが-INFINITYに設定されることが確認できました。

<rsc_location rsc="WebDataClone" id="drbd-fence-by-handler-wwwdata-WebDataClone">
  <rule role="Master" score="-INFINITY" id="drbd-fence-by-handler-wwwdata-rule-WebDataClone">
    <expression attribute="#uname" operation="ne" value="pcmk-2" id="drbd-fence-by-handler-wwwdata-expr-WebDataClone"/>
  </rule>
</rsc_location>

この状態で1号機が復活しても、cibには上記locationが設定されているのでMasterになれないことになります。
データが同期されるとafter-resync-target指定のスクリプトが実行され、locationの制約が削除されます。

DRBDのMaster/Slave Setを手動で切り替える方法

 article  Comments Off on DRBDのMaster/Slave Setを手動で切り替える方法
Mar 072011
 

drbdsetupコマンドでprimary/secondaryにする操作はよく見かけますが、Pacemaker上のMaster/Slave Setで切り替える方法はないんだろうかと散策していたら、PacemakerのMLで同じような質問している方を発見しました。
[Pacemaker] Move DRBD master
migrateできないんだがどうしたらよいのかという質問で、回答としては次に示すスレッドでのやり方が紹介されています。
[Pacemaker] promote a ms resource to a node

結論としてはlocationでrole=Masterなノードを指定してやることになるようです。
Master/Slave Setがms_drbd0、Masterにしたいノードがnode1であった場合、以下のコマンドにより切り替えることができます。

# crm configure
crm(live)configure# location ms_drbd0-location ms_drbd0 rule role="Master" inf: #uname eq node1
crm(live)configure# commit
crm(live)configure# exit

こちらは定義として残ってしまうので、切り替わったあとは消しておくのが無難かもしれません。

# crm configure
crm(live)configure# delete ms_drbd0-location
crm(live)configure# commit
crm(live)configure# exit

“Using DRBD in Heartbeat CRM-enabled clusters”を試してXMLエラー

 article  Comments Off on “Using DRBD in Heartbeat CRM-enabled clusters”を試してXMLエラー
Dec 132009
 

DRBDのページにあるチュートリアルをdebian sidで試していたらエラーになった。
Using DRBD in Heartbeat CRM-enabled clusters

debian1:~# cibadmin -U -x resources.xml
Call cib_modify failed (-47): Update does not conform to the DTD in /usr/share/heartbeat/crm.dtd
<null>

DTDに違反しているエラーっぽいが、どこの記述がまずいのかわからないのでxmllintで確認。

debian1:~# xmllint --dtdvalid file:///usr/share/heartbeat/crm.dtd resources.xml
resources.xml:5: element nvpair: validity error : Element nvpair does not carry attribute id
resources.xml:6: element nvpair: validity error : Element nvpair does not carry attribute id
resources.xml:13: element nvpair: validity error : Element nvpair does not carry attribute id
resources.xml:16: element operations: validity error : No declaration for attribute id of element operations
resources.xml:31: element nvpair: validity error : Element nvpair does not carry attribute id
resources.xml:32: element nvpair: validity error : Element nvpair does not carry attribute id
resources.xml:33: element nvpair: validity error : Element nvpair does not carry attribute id
resources.xml:41: element nvpair: validity error : Element nvpair does not carry attribute id
resources.xml:42: element nvpair: validity error : Element nvpair does not carry attribute id
Document resources.xml does not validate against file:///usr/share/heartbeat/crm.dtd

XML的にはnvpair要素にそれぞれidを割り付ける必要があるが、cibadminコマンドを経由すると自動で付与されるので無視できる。
問題は16行目のoperations要素で、こちらにはidを付けられないとのこと。
<operations>に変更して無事cibadminにて反映できた。