2007/09/26

Red Hat Cluster: GNBD, CLVM and GFS・その3

GNBDでブロックデバイスをクラスタ上で共有できるので、ブロックデバイスが共有されていることを前提としているGFSと組合せて使うとよい。これが前回および前々回までの要点だ。

GNBDでブロックデバイスを共有すると、GNBDクライアント上に/dev/gnbd*というデバイスができる。これに対するアクセスは、GNBDサーバ上の対応するブロックデバイスへのアクセスと等価だ。当然これを直接GFS(GFS2)でフォーマットし、マウントして使うこともできる。
しかし、この方法は柔軟性に欠ける。例えば、GNBDサーバ上の対応するブロックデバイスが/dev/sda1の様な物理ディスクのパーティションだと、サイズを変更することができない。この問題は、LVMを使えば解決できる。GNBDサーバ側でLVMを用いてVGを組み、LVをGNBDでエクスポートすればよい。

しかし、これより更によい方法がある。それがCluster Logical Volume Manager(CLVM)だ。CLVMは、読んで字の如く、クラスタ上で共有されるLVMだ。CLVMを使えば、どのクラスタメンバ上でも同じ内容・同じ名前でVGやLVをアクセスできる。
これに加え、異なるGNBDサーバからエクスポートされた複数のブロックデバイスでVGを組むことも可能という利点もある。GNBDサーバ側でVLMを組む場合にはこのようなことはできない。
さらに、Device Mapper Multipath (DM-MP)と併用すれば、冗長構成を採ることにより、耐障害性を高めることもできる(その内詳しく解説します…多分)

CLVMは、LVM(LVM2)の自然な拡張になっており、クラスタを意識しない場合のLVMのCUIやGUIとほとんど同じ操作で管理できる。違いは、クラスタを構成した後、各クラスタメンバ上で
# lvmconf --enable-cluster
を実行することと、最初にVGを組む場合に、クラスタ対応VGだと指示することくらいだ。


これまで三回に渡り、GNBD、CLVMおよびGFSについて概説してきた。以上を元に、次のことを今後の目標とし、実際にシステムを組んでみたい。
  1. GNBDでディスクデバイスを共有する
  2. GNBDで共有されたブロックデバイスから、CLVMでクラスタ上で共有されるVGおよびLVを生成する。
  3. CLVMで生成したLV上にGFSを作成し、各クラスタメンバ上でマウントする。

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


追記(2008/2/24):
検証を再開した。
Red Hat Cluster: CentOS 5.1上でRHCSを使ってみる

0 件のコメント: