2008/03/02

Red Hat Cluster: GNBD, CLVM and GFS・その6・CLVMの設定

前回『Red Hat Cluster: GNBD, CLVM and GFS・その5・GNBDの設定』で各クラスタメンバ間で共有したブロックデバイス上にクラスタメンバ間で共有される論理ボリューム(logical volume, LV)を構築する。

Xen Dom0 fs1がエクスポートしたgnbdブロックデバイス、cdom0sv01は、各Xen DomU dc[123]上では、/dev/gnbd0という名前でアクセスできる。
[root@dc1 ~]# gnbd_import -l
Device name : cdom0sv01
----------------------
Minor # : 0
sysfs name : /block/gnbd0
Server : fs1.xencluster
Port : 14567
State : Close Connected Clear
Readonly : No
Sectors : 8388608

[root@dc1 ~]#
このブロックデバイス上に、物理ボリューム(physical volume, PV)を作成する。
[root@dc1 ~]# pvcreate /dev/gnbd0
Physical volume "/dev/gnbd0" successfully created
[root@dc1 ~]# pvdisplay /dev/gnbd0
--- NEW Physical volume ---
PV Name               /dev/gnbd0
VG Name
PV Size               4.00 GB
Allocatable           NO
PE Size (KByte)       0
Total PE              0
Free PE               0
Allocated PE          0
PV UUID               aW5HFa-hCqa-ln2R-O3nU-TT0p-b6nQ-jS8kQh

[root@dc1 ~]#
ここまでは、普通の(非クラスタ)PVの場合の操作と同じ。
続いて、このPVを使って、クラスタ対応ボリュームグループ(volume group, VG) VGcDomUs00を作成する。
[root@dc1 ~]# vgcreate --clustered y VGcDomUs00 /dev/gnbd0
Volume group "VGcDomUs00" successfully created
[root@dc1 ~]# vgdisplay VGcDomUs00
--- Volume group ---
VG Name               VGcDomUs00
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
Clustered             yes
Shared                no
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                1
Act PV                1
VG Size               4.00 GB
PE Size               4.00 MB
Total PE              1023
Alloc PE / Size       0 / 0
Free  PE / Size       1023 / 4.00 GB
VG UUID               EBMdIF-8261-p0Gp-olFY-ciAn-IfD1-x6Bnhk

[root@dc1 ~]#
他の資料では、ここで論理ボリュームマネージャにクラスタ対応を指示するため、lvmconf --enable-clusterを実行(あるいは、/etc/lvm/lvm.conf内でlocking_type = 3を指定)せよ、とある場合もあるが、これは既にCongaによって実行されているので不要。
ここで、VGcDomUs00を共有しているクラスタメンバdc[123]で、サービスclvmdを再起動(あるいは、OSごと再起動)する必要がある。
[root@dc1 ~]# service clvmd restart
Deactivating VG VGcDomUs00:   0 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
Stopping clvm:[  OK  ]
Starting clvmd: [  OK  ]
Activating VGs:   2 logical volume(s) in volume group "VolGroup00" now active
0 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
[root@dc1 ~]#
<<略>>
[root@dc2 ~]# service clvmd restart
Deactivating VG VGcDomUs00:   0 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
Stopping clvm:[  OK  ]
Starting clvmd: [  OK  ]
Activating VGs:   2 logical volume(s) in volume group "VolGroup00" now active
0 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
[root@dc2 ~]#
<<略>>
[root@dc3 ~]# service clvmd restart
Deactivating VG VGcDomUs00:   0 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
Stopping clvm:[  OK  ]
Starting clvmd: [  OK  ]
Activating VGs:   2 logical volume(s) in volume group "VolGroup00" now active
0 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
[root@dc3 ~]#
これで、各クラスタメンバdc[123]上でVGcDomUs00に対してロックが働き、正常に操作できるようになった。
あるノードで、VGcDomUs00上にLV LVGFS00を作成すると、他のノードからもそれを確認できる。正しく作成されていれば、LVGFS00の状態がactiveになる。
[root@dc3 ~]# lvcreate --extents=1023 --name=LVGFS00 VGcDomUs00
Logical volume "LVGFS00" created
[root@dc3 ~]# lvs
LV       VG         Attr   LSize   Origin Snap%  Move Log Copy%
LVGFS00  VGcDomUs00 -wi-a-   4.00G
LogVol00 VolGroup00 -wi-ao   3.34G
LogVol01 VolGroup00 -wi-ao 544.00M
[root@dc3 ~]# lvdisplay /dev/VGcDomUs00/LVGFS00
--- Logical volume ---
LV Name                /dev/VGcDomUs00/LVGFS00
VG Name                VGcDomUs00
LV UUID                yNHwzC-Z3o5-XrnK-BgdY-O1py-WdW1-FO2zr0
LV Write Access        read/write
LV Status              available
# open                 0
LV Size                4.00 GB
Current LE             1023
Segments               1
Allocation             inherit
Read ahead sectors     0
Block device           253:2

[root@dc3 ~]#
<<略>>
[root@dc2 ~]# lvs
LV       VG         Attr   LSize   Origin Snap%  Move Log Copy%
LVGFS00  VGcDomUs00 -wi-a-   4.00G
LogVol00 VolGroup00 -wi-ao   3.34G
LogVol01 VolGroup00 -wi-ao 544.00M
[root@dc2 ~]#
<<略>>
[root@dc1 ~]# lvs
LV       VG         Attr   LSize   Origin Snap%  Move Log Copy%
LVGFS00  VGcDomUs00 -wi-a-   4.00G
LogVol00 VolGroup00 -wi-ao   3.34G
LogVol01 VolGroup00 -wi-ao 544.00M
[root@dc1 ~]#
ただし、LVGFS00はマウントされていないので、オープン状態にはなっていない。
dc[123]を再起動すると、VGcDomUs00がclvmdによって認識されていることを確認できる。
[root@dc1 ~]# shutdown -r now
<<略>>
Deactivating VG VGcDomUs00:   0 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
Stopping clvm:[  OK  ]
Stopping cluster:
Stopping fencing... done
Stopping cman... failed
/usr/sbin/cman_tool: Error leaving cluster: Device or resource busy
[FAILED]
<<略>>
INIT: version 2.86 booting
Welcome to  CentOS release 5 (Final)
Press 'I' to enter interactive startup.
<<略>>
Starting cluster:
Loading modules... DLM (built Nov 12 2007 03:26:48) installed
GFS2 (built Nov 12 2007 03:27:12) installed
done
Mounting configfs... done
Starting ccsd... done
Starting cman... done
Starting daemons... done
Starting fencing... done
[  OK  ]
Starting GNBD Client: resending requests
[  OK  ]
Starting system message bus: [  OK  ]
Starting clvmd: dlm: Using TCP for communications
dlm: connecting to 1
dlm: got connection from 2
dlm: got connection from 1
[  OK  ]
Activating VGs:   2 logical volume(s) in volume group "VolGroup00" now active
1 logical volume(s) in volume group "VGcDomUs00" now active
[  OK  ]
Mounting other filesystems:  [  OK  ]
<<略>>
CentOS release 5 (Final)
Kernel 2.6.18-53.el5xen on an i686

dc1.xencluster login:


追記(2008/2/3):
GNBDサーバ上でGNBDクライアント側LVが認識されないようにするには、『CLVMの設定・補足』を参照。

解説: その1その2その3
kernel-xenにバグか?
その4・CentOS 5.1での注意点
その5・GNBDの設定
その6・CLVMの設定
その7・GFS2の設定
その8・Congaからの設定
その9・ベンチマーク
その10・考察と予告

0 件のコメント: