2008/02/28

Red Hat Cluster: GNBD, CLVM and GFS・その4・CentOS 5.1での注意点

Red Hat Cluster: GNBD, CLVM and GFS・その3』で、
これまで三回に渡り、GNBD、CLVMおよびGFSについて概説してきた。以上を元に、次のことを今後の目標とし、実際にシステムを組んでみたい。
  1. GNBDでディスクデバイスを共有する
  2. GNBDで共有されたブロックデバイスから、CLVMでクラスタ上で共有されるVGおよびLVを生成する。
  3. CLVMで生成したLV上にGFSを作成し、各クラスタメンバ上でマウントする。
と宣言したきり、ちっとも実践編へ進まなかったシリーズを再開。まずは、作業前の注意点。

Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる』シリーズに従いクラスタを構成した後、GNBD、CLVMおよびGFSでファイル共有を実現する。以下の点に注意する。
  1. 現時点(2008/2/28)の最新版kernel-xen-2.6.18-53.1.13.el5およびkmod-gnbd-xen-0.1.4-12.el5をXen DomUで使うと、CPU負荷が異常に高くなるバグがある。追記(2008/3/11): この問題は解決された。『Red Hat Cluster: GNBD, CLVM and GFS・その4・CentOS 5.1での注意点・補足』参照
  2. GNBDにはinit scriptが準備されていない。
  3. GNBDクライアントサービスの起動順は、サービスcmanの後、サービスclvmdの前でないといけない。
使用するパッケージのバージョンについては、少なくともbaseレポジトリのkernel-xen-2.6.18-53.el5を使えば問題ない。
Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる・その3・DomU dcXのインストール』では、OSインストール時にupdatesなどのレポジトリを参照し、最新版をインストールするようKickstart設定ファイルに指定していたが、この部分をコメントアウトする。
repo --name=base --baseurl=http://repository.xencluster/centos/5/os/i386/
#repo --name=updates --baseurl=http://repository.xencluster/centos/5/updates/i386/
#repo --name=addons --baseurl=http://repository.xencluster/centos/5/addons/i386/
#repo --name=extras --baseurl=http://repository.xencluster/centos/5/extras/i386/


CetnOS 5.1のパッケージgnbdおよびkmod-gnbdには、GNBDのinitスクリプトが付属していない(少なくとも現時点では)。このブログにリンクしてもらっている『funなJava、mocoなLinux』の記事『GNBD init スクリプト』を参考にする。

サービス起動順だが、gnbd_export(8)のman pageに次のような記述がある
-c Enable caching.
<<略>>
WARNING: You must NOT specify this option if you wish to use gnbd with dm multi-pathing, or run GFS on gnbd server machines.
Device mapper multi path(DMMP)を使う場合や、GFSをGNBDサーバ上で使うような場合は、GNBDのキャッシュ機能を有効にしてはいけない。
同じく-cオプションの項に次のような記述もある。
With the -c option, it is not necessary to have the gnbd server machine be part of the cluster. If -c option is not used, the server machine must already have a cluster manager running on it.
この-cオプションを使う場合は、GNBDサーバがクラスタメンバである必要はない(クラスタメンバであってもよい)。この-cオプションを使わない場合は、GNBDサーバ上でクラスタマネージャが既に動作していなければならない。
以上のことから考えると、DMMPを使う可能性を考慮した場合、-cを使えないし、gnbdより先にcmanが起動されている必要がある。GFSをGNBDサーバ上で使う場合も同様。
一方、clvmdが起動される前に、clvmdが認識する物理ボリューム(physical volume, PV)がOSに認識されている必要がある。そうでなければ、clvmdがクラスタ対応ボリュームグループ(volume group, VG)を正しく認識できない。この状態で、そのクラスタ対応VG上に論理ボリューム(logical volmume, LV)を作成すると、アクティブにできなくなったり、そのLVを削除できなくなったりする。例えば、
[root@dc3 ~]# service clvmd start
Starting clvmd: [  OK  ]
Activating VGs:   2 logical volume(s) in volume group "VolGroup00" now active
[  OK  ]
[root@dc3 ~]# service gnbd-client start
Starting GNBD Client: [  OK  ]
resending requests
[root@dc3 ~]# vgs
VG         #PV #LV #SN Attr   VSize VFree
VGcDomUs00   1   1   0 wz--nc 4.00G    0
VolGroup00   1   2   0 wz--n- 3.88G    0
[root@dc3 ~]# lvs
LV          VG         Attr   LSize   Origin Snap%  Move Log Copy%
LogVolGFS00 VGcDomUs00 -wi---   4.00G
LogVol00    VolGroup00 -wi-ao   3.34G
LogVol01    VolGroup00 -wi-ao 544.00M
[root@dc3 ~]# lvchange --available y  LogVolGFS00 VGcDomUs00
Volume group "LogVolGFS00" not found
Error locking on node dc2.xencluster: Volume group for uuid not found: 0rrqOzVArnLSIzM8nyTlj4nVONcbaO13QxVYIwLjU0SFe5FHRGDTnni7f9Lmu1Mp
Error locking on node dc3.xencluster: Volume group for uuid not found: 0rrqOzVArnLSIzM8nyTlj4nVONcbaO13QxVYIwLjU0SFe5FHRGDTnni7f9Lmu1Mp
[root@dc3 ~]# lvremove /dev/VGcDomUs00/LogVolGFS00
Error locking on node dc3.xencluster: Volume group for uuid not found: 0rrqOzVArnLSIzM8nyTlj4nVONcbaO13QxVYIwLjU0SFe5FHRGDTnni7f9Lmu1Mp
Can't get exclusive access to volume "LogVolGFS00"
[root@dc3 ~]#
正しい順番で起動されていれば、以下の様に操作できるはずだ。
[root@dc1 ~]# vgs
VG         #PV #LV #SN Attr   VSize VFree
VGcDomUs00   1   1   0 wz--nc 4.00G    0
VolGroup00   1   2   0 wz--n- 3.88G    0
[root@dc1 ~]# lvs
LV          VG         Attr   LSize   Origin Snap%  Move Log Copy%
LogVolGFS00 VGcDomUs00 -wi-a-   4.00G
LogVol00    VolGroup00 -wi-ao   3.34G
LogVol01    VolGroup00 -wi-ao 544.00M
[root@dc1 ~]# lvchange --available n /dev/VGcDomUs00/LogVolGFS00
[root@dc1 ~]# lvs
LV          VG         Attr   LSize   Origin Snap%  Move Log Copy%
LogVolGFS00 VGcDomUs00 -wi---   4.00G
LogVol00    VolGroup00 -wi-ao   3.34G
LogVol01    VolGroup00 -wi-ao 544.00M
[root@dc1 ~]# lvchange --available y /dev/VGcDomUs00/LogVolGFS00
[root@dc1 ~]# lvs
LV          VG         Attr   LSize   Origin Snap%  Move Log Copy%
LogVolGFS00 VGcDomUs00 -wi-a-   4.00G
LogVol00    VolGroup00 -wi-ao   3.34G
LogVol01    VolGroup00 -wi-ao 544.00M
[root@dc1 ~]#


[root@dc2 ~]# lvchange --available n /dev/VGcDomUs00/LogVolGFS00
[root@dc2 ~]#


[root@dc3 ~]# lvchange --available n /dev/VGcDomUs00/LogVolGFS00
[root@dc3 ~]#


[root@dc1 ~]# lvremove /dev/VGcDomUs00/LogVolGFS00
Logical volume "LogVolGFS00" successfully removed
[root@dc1 ~]#

以上の点に注意して、実際にGFSによるファイル共有環境を構築する。

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

0 件のコメント: