DRBD(インストール)

前回作成したRPMパッケージをmasterとslaveの両方にインストールします。

# rpm -ivh drbd-0.7.15-1.i386.rpm
> drbd-debuginfo-0.7.15-1.i386.rpm
> drbd-km-2.4.21_37.0.1.EL-0.7.15-1.i386.rpm

masterとslaveの両方に設定ファイルを作成します(内容は同じもの)
設定サンプルが/usr/share/doc/drbd/drbd.conf にあるので/etc/drbd.confに上書きコピーして書き換えます。

resource r0 {
protocol C;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup {
wfc-timeout 120;
degr-wfc-timeout 120;
}
disk {
on-io-error detach;
}
net {
timeout 60;
connect-int 10;
ping-int 10;
max-buffers 2048;
max-epoch-size 2048;
}
syncer {
rate 10M;
group 1;
}
on master {
device /dev/drbd0;
disk /dev/hda3;
address 10.0.2.10:7788;
meta-disk internal;
}
on slave {
device /dev/drbd0;
disk /dev/hda3;
address 10.0.2.11:7788;
meta-disk internal;
}
}

※「on master」 や「on slave」の"master""slave"ところにはホスト名を書きます。DNSで名前解決できないときは/etc/hostsファイルに

master 10.0.2.10
slave 10.0.2.11

と書きます。

masterとslaveの両方でDRBDサービスを起動します(master→slaveの順で起動させます)。

# service drbd start

このままの状態だとmasterとslaveの両方がセカンダリで動作しているので、masterを強制的にプライマリに移行させます(master側でのみ実行)。

# drbdadm -- --do-what-I-say primary all

そうするとディスクの同期処理が始まります(以下のように/proc/drbdファイルをみると動作状況がわかります)。

# cat /proc/drbd
version: 0.7.15 (api:77/proto:74)
SVN Revision: 2020 build by [email protected], 2006-01-28 12:03:02
0: cs:SyncSource st:Primary/Secondary ld:Consistent
ns:202056 nr:922916 dw:1935248 dr:216549 al:221 bm:929 lo:73 pe:375 ua:73 ap:0
[===============>....] sync'ed: 77.3% (22272/86236)K
finish: 0:00:05 speed: 4,276 (3,364) K/sec

同期処理が終わると次のようになります。

# cat /proc/drbd
version: 0.7.15 (api:77/proto:74)
SVN Revision: 2020 build by [email protected], 2006-01-28 12:01:56
0: cs:Connected st:Primary/Secondary ld:Consistent
ns:12 nr:86236 dw:86248 dr:17 al:0 bm:31 lo:0 pe:0 ua:0 ap:0

メタデータ領域確保のため、パーテーションのフォーマットを行います。メタデータを別のパーテーションに確保すればフォーマットは必要ないかもしれない(ただし未確認)。フォーマット後はマウントすれば通常のファイルシステムと同じように使えます。

# mke2fs -j /dev/drbd0
# mount /dev/drbd0 /work