2007年11月16日金曜日

clusterまでの道のり:drbd編

drbdによるactive/active+gfsを試してみます。わかる人はわかると思いますが、この方法は失敗していますので参考にしようとしている人は見ない方がいいかもしれません。

yum install -y cman lvm2 lvm2-cluster gfs2-utils cluster-cim ricci luci

luci_admin init

yum install -y drbd kmod-drbd

#マシンを再起動
/bin/reboot

#drbd構成を定義
$vi /etc/drbd

この辺はどこでも紹介されているのでこちらでは紹介しません。

#ディスク内に情報を書き込む(何の情報かは不明)
$drbdadm create-md r0
v08 Magic number not found
v07 Magic number not found
About to create a new drbd meta data block
on /dev/data/data1.

==> This might destroy existing data! <==
Do you want to proceed?
[need to type 'yes' to confirm] yes
Creating meta data... initialising activity log
NOT initialized bitmap (32 KB)
New drbd meta data block sucessfully created.
$/etc/init.d/drbd start

経験エラー: >Device has a net-config (use disconnect first)
hostnameが同じだとだめみたい。
/etc/sysconfig/network
-hostname localhost.localdomain
+cm*
$/etc/init.d/network restart

$drbdadm primary all

経験エラー:
State change failed: (-2) Refusing to be Primary without at least one UpToDate disk
Command 'drbdsetup /dev/drbd0 primary' terminated with exit code 11
drbdsetup exited with code 11
解決:
すでにファイルシステムを作成したなどディスクに書き込まれている場合だと、上書きをしないといけないようです。

$drbdsetup /dev/drbd0 primary -o
or
$drbdadm -- --overwrite-data-of-peer primary all

同期が始まります。

両サーバーをactive/active構成にします。

mkfs.gfs2 -p lock_dlm -t cluster1:drbd0 -j 2 /dev/drbd0
mount -t gfs2 /dev/drbd0 /mnt

chkconfig ricci on
chkconfig luci on
chkconfig cman on
chkconfig clvmd on

まとめ。

基本的にdrbdによるActive/Active構成であってもGFS上では不都合が多いようです。
・同じファイルには片方からしか扱うことができません。
  下手に触ってしまうと書き込みプロセスが書き込みロジックで停止してしまいました。Lockが効いており、プロセスも正常に動作していると思い込み、書き込みを待っているようです。
・方系のダウンを実践してみたのですが、lockがinternal(サーバー自身が管理)なため、一度落としてしまうと正常なサーバーのファイルシステムを落とし、drbdadm create-md r0を実行しなくてはいけません。

よってdrbdによるactive/active構成は難しいということがわかったのですが、本題はここではありません。
gnbd+clvm+gfs+cman・・・を実践したいと思います。

1 件のコメント:

dr_robert12 さんのコメント...

とても役に立ちました。
同じやり方で2台(Active/Active構成)の
クラスタリングを構築しようとしていた矢先でした。
実績のあるHeartbeat+DRBD+NFSで共有しようと強く思いました。

※Active/Activeはまだちょっと敷居が高い