2008/03/03

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

前の記事『Red Hat Cluster: GNBD, CLVM and GFS・その6・CLVMの設定』で作成したクラスタ対応論理ボリューム(logical volume, LV) /dev/VGcDomUs00/LVGFS00をGFSでフォーマット、マウントし、使用する。

CentOS 5.1では、GFSとGFS2がサポートされている。RHEL5.1のリリースノート(日本語版)では、以下の通り述べられている。
GFS2 is an incremental advancement of GFS. This update applies several significant improvements that require a change to the on-disk file system format. GFS file systems can be converted to GFS2 using the utility gfs2_convert, which updates the metadata of a GFS file system accordingly.

While much improved since its introduction in Red Hat Enterprise Linux 5, GFS2 remains a Technology Preview. The release notes included in the distribution incorrectly states that GFS2 is fully supported. Nevertheless, benchmark tests indicate faster performance on the following:
<<略>>
要するに、GFS2は速いけどまだ不安定ということだ。GFSファイルシステムは、GFS2に変換可能なので、実運用に供する場合は、GFSを選択すべきだが、今回はあえてGFS2を使う。
GFSおよびGFS2を使用する場合は、それぞれサービスgsfおよびgfs2を起動しておく必要があるが
CongaによってOS起動時から有効になっているはずだ。
[root@dc1 ~]# chkconfig --list | grep gfs
gfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
gfs2            0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@dc1 ~]#

フォーマットは、mkfsコマンドを使って行う。以下のオプションが必要(GFSの場合もほぼ同様)
  • -t gfs2 : GFS2形式を指定(GFSを使う場合は`-t gfs')
  • -j 4 : ジャーナル数を指定。ファイルシステムを共有するノード数以上でなければならない。
  • -p lock_dlm : ファイルロックプロトコルを指定。指定できるのは、lock_dlmの他にlock_nolockがあるが、これは複数ノードで共有する場合には使用できない。
  • -t cDomUs:GFS00 : ファイルロックテーブル名。形式は「クラスタ名:ファイルシステム名」。
以下の通り作業する。
[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 ~]# mkfs -t gfs2 -j 4 -p lock_dlm -t cDomUs:GFS00 /dev/VGcDomUs00/LVGFS00
This will destroy any data on /dev/VGcDomUs00/LVGFS00.

Are you sure you want to proceed? [y/n] y

Device:                    /dev/VGcDomUs00/LVGFS00
Blocksize:                 4096
Device Size                4.00 GB (1047552 blocks)
Filesystem Size:           4.00 GB (1047551 blocks)
Journals:                  4
Resource Groups:           16
Locking Protocol:          "lock_dlm"
Lock Table:                "cDomUs:GFS00"

[root@dc1 ~]#
容量にもよるが、フォーマットには数分かかる。
実際にマウントし、使用する。
[root@dc1 ~]# mkdir /mnt/gfs00
[root@dc1 ~]# mount /dev/VGcDomUs00/LVGFS00 /mnt/gfs00
[root@dc1 ~]#
<<略>>
[root@dc2 ~]# mkdir /mnt/gfs00
[root@dc2 ~]# mount /dev/VGcDomUs00/LVGFS00 /mnt/gfs00
[root@dc2 ~]#
<<略>>
[root@dc3 ~]# mkdir /mnt/gfs00
[root@dc3 ~]# mount /dev/VGcDomUs00/LVGFS00 /mnt/gfs00
[root@dc3 ~]#
状態を調べてみる。
[root@dc3 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/xvda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
none on /sys/kernel/config type configfs (rw)
/dev/mapper/VGcDomUs00-LVGFS00 on /mnt/gfs00 type gfs2 (rw,hostdata=jid=2:id=131075:first=0)
[root@dc3 ~]# cman_tool services
type             level name       id       state
fence            0     default    00010002 none
[1 2 3]
dlm              1     clvmd      00010003 none
[1 2 3]
dlm              1     rgmanager  00020002 none
[1 2 3]
dlm              1     GFS00      00030003 none
[1 2 3]
gfs              2     GFS00      00020003 none
[1 2 3]
[root@dc3 ~]#
使ってみる。
[root@dc1 ~]# cd /mnt/gfs00
[root@dc1 gfs00]# cat random-write.sh
#!/bin/sh
timestampfile=timestamp.txt
if [ -f $timestampfile ]; then
touch $timestampfile
fi
while /bin/true;
do
echo $HOSTNAME: `date +%H:%M:%S.%N` >> $timestampfile
sleep $(( $RANDOM % 5 ))s
done
[root@dc1 gfs00]# ./random-write.sh
<<略>>
[root@dc2 ~]# cd /mnt/gfs00
[root@dc2 gfs00]# ./random-write.sh
<<略>>
[root@dc3 ~]# cd /mnt/gfs00
[root@dc3 gfs00]# tail -f timestamp.txt
dc1.xencluster: 22:42:50.286516000
dc1.xencluster: 22:42:51.310380000
dc1.xencluster: 22:42:52.318362000
dc2.xencluster: 22:42:53.198976000
dc2.xencluster: 22:42:53.306651000
dc2.xencluster: 22:42:53.314427000
dc1.xencluster: 22:42:55.329328000
dc1.xencluster: 22:42:55.395768000
dc2.xencluster: 22:42:57.322259000
dc1.xencluster: 22:42:57.405674000
dc2.xencluster: 22:42:59.385915000
dc2.xencluster: 22:42:59.433670000
dc1.xencluster: 22:43:01.505484000
dc2.xencluster: 22:43:02.441643000
解説: その1その2その3
kernel-xenにバグか?
その4・CentOS 5.1での注意点
その5・GNBDの設定
その6・CLVMの設定
その7・GFS2の設定
その8・Congaからの設定
その9・ベンチマーク
その10・考察と予告

0 件のコメント: