DRBDの設定
Modified: 23 September 2002
田中さんに、カーネルのソースをインストールすればコンパイルエラーを回避する方法を教えていただきました。おかげさまで実験を再開することができました。(2002年9月7日)
実験条件
プライマリ側のPCの条件
- IPアドレス: 192.168.0.31
- 同期されるパーティション: /dev/sdb1
- 同期用LANのIPアドレス: 192.168.0.41
セカンダリ側のPCの条件
- IPアドレス: 192.168.0.32
- 同期されるパーティション: /dev/sdb1
- 同期用LANのIPアドレス: 192.168.0.42
同期させるパーティションを作成
同期させるパーティションを作成します。ここでは、新しいディスク("/dev/sdb")を取り付けてマウントするまでの手順です。
パーティションの同期を取りますので、プライマリとセカンダリの両方にデータ専用のパーティションが必要です。
ここでは、両方のPCに新しいHDDを取り付けて、それらを同期させることにします。
以下のコマンドで、新しいHDDにパーティションを、プライマリ、セカンダリの両方ともに作成します。
# /sbin/fdisk /dev/sdb
同期用(2番目)のIPアドレスを設定する
2つのPCのデータを同期させるためのLANは、トラフック軽減のため、通常、専用に接続をします。
ここでは、とにかく動作テストしたいので、物理的に同じLANを使い、同期専用のIPアドレスを割り付けて実験します。
2つめのIPアドレスは、以下のコマンドで行います。
プライマリ側
# /sbin/ifconfig eth0:0 192.168.0.41
セカンダリ側
# /sbin/ifconfig eth0:0 192.168.0.42
上記設定は、再起動すると無効になるので、自動起動時に設定させるために、"/etc/rc.d/rc.local"に、上記コマンドを行を追加します。
"drbd.conf"の設定
"/etc/drbd.conf" を、以下のように変更します。
プライマリ、セカンダリの両方とも同じ設定にします。
#
# Comment lines.
#
resource drbd0 {
protocol=B
fsckcmd=fsck -p -y
# inittimeout=60
# skip-wait
disk {
# do-panic
# disk-size=4096543
}
net {
sync-rate=250
# skip-sync
tl-size=5000
timeout=60
connect-int=10
ping-int=10
}
on rh73-51-drbd1 { <-----プライマリのホスト名
device=/dev/nb0
disk=/dev/sdb1 <-----同期するパーティション
address=192.168.0.41 <-----プライマリの同期用IPアドレス
port=7788
}
on rh73-52-drbd2 { <-----セカンダリのホスト名
device=/dev/nb0
disk=/dev/sdb1 <-----同期するパーティション
address=192.168.0.42 <-----セカンダリの同期用IPアドレス
port=7788
}
}
#resource drbd1 {
#
# protocol=C
# fsckcmd=fsck -p -y
#
# on tcube1 {
# device=/dev/nb1
# disk=/dev/hda7
# address=10.1.1.31
# port=7789
# }
#
# on tcube2 {
# device=/dev/nb1
# disk=/dev/hda7
# address=10.1.1.32
# port=7789
# }
#
#}
セカンダリ側PCの設定
セカンダリ側のPCでは、以下のように設定します。
# /sbin/insmod /lib/modules/2.4.18-3/kernel/drivers/block/drbd.o
# /usr/sbin/drbdsetup /dev/nb0 disk /dev/sdb1
/var/lib/drbd does not exists. Creating it.
# /usr/sbin/drbdsetup /dev/nb0 net 192.168.0.42 192.168.0.41 B
プライマリ側PCの設定
プライマリ側のPCでは、以下のように設定します。
# /sbin/insmod /lib/modules/2.4.18-3/kernel/drivers/block/drbd.o
# /usr/sbin/drbdsetup /dev/nb0 disk /dev/sdb1
/var/lib/drbd does not exists. Creating it.
# /usr/sbin/drbdsetup /dev/nb0 net 192.168.0.41 192.168.0.42 B
プライマリの宣言
プライマリであることを宣言するために、プライマリPCで以下を実行します。
# /usr/sbin/drbdsetup /dev/nb0 primary
マウント
同期させるパーティションをマウントします。
# /sbin/mkfs -b 4096 /dev/nb0
mke2fs 1.27 (8-Mar-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1310720 inodes, 2620595 blocks
131029 blocks (5.00%) reserved for the super user
First data block=0
80 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# mkdir /home2
# mount /dev/nb0 /home2
動作状況を確認する
# cat /proc/drbd
定期的に確認する
# while : ; do cat /proc/drbd | grep 0: ; sleep 1 ; done
"/etc/fstab"を設定
"/etc/fstab"に、以下の1行を加えます。
:
/dev/nb0 /home2 ext2 noauto,sync 0 0
: