Linux

drbdのインストール

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でフェイルオーバーできるようにする
あとでやる

-Linux
-, , ,