2013年2月9日土曜日

クラスタファイルシステム(ocfs2)でディスク共有

今回は、クラスタファイルシステムでディスク共有してみます。

※前回のポストの続きです。
OCFS2のようなクラスタファイルシステムを使用することで
共有ディスク上のファイルに対して、複数サーバからのデータ書き込みができるようになります。

共有ディスクをOCFS2でフォーマット

まず、以前に作成した ext3 のファイルシステムをocfs2 でフォーマットしなおします。
共有ディスク(/dev/sdb1)は、まだどちらのノードでもマウントされていません。
★ノード1側
[root@ovs001 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="85cfeb37-ade9-49e2-8c67-4ec52f620de7" SEC_TYPE="ext2" TYPE="ext3"
[root@ovs001 ~]# mount | grep sdb1
[root@ovs001 ~]#

★ノード2側
[root@ovs002 ~]# blkid /dev/sdb1
/dev/sdb1: UUID="85cfeb37-ade9-49e2-8c67-4ec52f620de7" SEC_TYPE="ext2" TYPE="ext3"
[root@ovs002 ~]# mount | grep sdb1
[root@ovs002 ~]#

共有ディスクなので、フォーマットはノード1側からだけ実施します。
[root@ovs001 ~]# mkfs -t ocfs2 /dev/sdb1
mkfs.ocfs2 1.4.3
Cluster stack: classic o2cb
Filesystem label=
Block size=4096 (bits=12)
Cluster size=4096 (bits=12)
Volume size=4293562368 (1048233 clusters) (1048233 blocks)
33 cluster groups (tail covers 16041 clusters, rest cover 32256 clusters)
Journal size=67108864
Initial number of node slots: 4
Creating bitmaps: done
Initializing superblock: done
Writing system files: done
Writing superblock: done
Writing backup superblock: 1 block(s)
Formatting Journals: done
Formatting slot map: done
Writing lost+found: done
mkfs.ocfs2 successful

ocfs2になりました。
★ノード1側から確認
[root@ovs001 ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="" UUID="be12fb29-8b3e-4325-a13a-b18d4dc7ead0" TYPE="ocfs2"

★ノード2側からも確認
[root@ovs002 ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="" UUID="be12fb29-8b3e-4325-a13a-b18d4dc7ead0" TYPE="ocfs2"

既存ディスクのアンマウント

最初に /OVSから既存のディスクをアンマウントしておきます。
★ノード1側
[root@ovs001 ~]# umount /OVS

★ノード2側
[root@ovs002 ~]# umount /OVS

クラスタファイルシステムのマウント

両方のノードで手動マウントしてみます。
自動マウント設定をしていないため、今回のマウントは
OSを再起動したら元の状態(既存のディスクマウント状態)に戻ります。
★ノード1でマウント
[root@ovs001 ~]# mount -t ocfs2 /dev/sdb1 /OVS
[root@ovs001 ~]# df -h /OVS
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 4.0G 270M 3.8G 7% /var/ovs/mount/8FA1F11000F145DA8A8272436BCD02C2

★ノード2でマウント
[root@ovs002 ~]# df -h /OVS
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 4.0G 270M 3.8G 7% /var/ovs/mount/4EA14718C32B4D7784F3161A75953439

共有ディスクに、ディレクトリとファイルを作ってみる。

まずノード1側でディレクトリとファイルを作成してみます。
[root@ovs001 ~]# mkdir /OVS/dir1
[root@ovs001 ~]# ls -dl /OVS/dir1
drwxr-xr-x 2 root root 3896 Feb 9 11:35 /OVS/dir1
[root@ovs001 ~]# echo Test01 > /OVS/dir1/test1.f
[root@ovs001 ~]# cat /OVS/dir1/test1.f
Test01

ext3 の時とは異なり、ノード2側でも
ノード1で作成したディレクトリとファイルが見えます。
※ext3を使用した時は見えなくなっていました。
root@ovs002 ~]# ls -ld /OVS/dir1
drwxr-xr-x 2 root root 3896 Feb 9 11:38 /OVS/dir1
[root@ovs002 ~]# cat /OVS/dir1/test1.f
Test01

ノード2側でもディレクトリとファイルを作成してみます。
[root@ovs002 ~]# mkdir /OVS/dir2
[root@ovs002 ~]# echo Test02 > /OVS/dir2/test2.f
[root@ovs002 ~]# cat /OVS/dir2/test2.f
Test02

ノード1側からも見ることができます。
[root@ovs001 ~]# cat /OVS/dir2/test2.f
Test02


このように、OCFS2のようなクラスタファイルシステムであれば、
複数OSからの書き込み処理が発生してもデータの整合性を保つことができます。
使い勝手はNFSに近い感じになります。

以上、クラスタファイルシステムでのディスク共有でした。

0 件のコメント:

コメントを投稿