LOCALインフラ部の勉強会で聞いたり、SoftwareDesign6月号で特集が組まれてたので試してみた。
用意するもの
2台のマシン
drbdsv1(primary)
- 増設HDD hdb
- パーティション hdb1
drbdsv2(secondary)
- 増設HDD hdb
- パーティション hdb1
最終的には/dev/drbd0として使用する
HDDは増設しないでパーティションを確保するだけで問題ない
領域を確保する(drbdsv1、drbdsv2)
fdiskでパーティションを確保する
fdisk /dev/hdb
事前にext3などでファイルシステムを作ってたらddでファイルシステム壊す
dd if=/dev/zero of=/dev/hdb1 bs=1k count=4
/etc/hostsの編集(drbdsv1、drbdsv2)
+192.168.253.25 drbdsv1.localdomain drbdsv1
+192.168.253.26 drbdsv2.localdomain drbdsv2
追記
localdomainを追加しているのは、OSの起動が遅くなるため追加しています。
drbdのインストール(drbdsv1、drbdsv2)
ここ本家http://www.drbd.jp/
ソースからでも問題ないと思うがめんどくさそう
yum install drbd82 kmod-drbd82
kernelmoduleの確認
lsmod | grep brbd
無ければ
modprobe drbd
configを編集する、これはおまじないなんでコピペ(drbdsv1、drbdsv2)
/etc/drbd.conf
global { usage-count no; }
common { syncer { rate 600M; } }
resource r0 {
protocol C;
net {
cram-hmac-alg sha1;
shared-secret "FooFunFactory";
}
on drbdsv1.localdomain {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.253.25:7789;
flexible-meta-disk internal;
}
on drbdsv2.localdomain {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.253.26:7789;
flexible-meta-disk internal;
}
meta-dateを作成する(drbdsv1、drbdsv2)
drbdadm create-md r0
primary側で強制的に同期をとる
drbdadm -- --overwrite-data-of-peer primary r0
formatする
mkfs.ext3 /dev/drbd0
これでprimary側では/dev/drbd0をmountして使用できるようになるはず
primaryのstatusはこんな感じ
# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.2.6 (api:88/proto:86-88)
GIT-hash: 3e69822d3bb4920a8c1bfdf7d647169eba7d2eb4 build by buildsvn@c5-i386-build, 2008-10-03 11:42:32
m:res cs st ds p mounted fstype
0:r0 Connected Primary/Secondary UpToDate/UpToDate C /drbd ext3
secondaryではmountできないので注意
secondaryでmountするにはprimaryを一度secondryにする必要がある
drbdadm secondary r0
次に、secondaryをprimaryにする
drbdadm primary r0
あとはheartbeatでフェイルオーバーできるようにする
あとでやる