DRBD用ディスクを追加する
追加したディスクをLVMデバイスとして登録する
追加したディスクのデバイス名を確認する。今回は /dev/sdb として認識していることを確認しました
% sudo dmesg | grep sd
[53071.544617] sd 3:0:0:1: Attached scsi generic sg2 type 0
[53071.616412] sd 3:0:0:1: [sdb] 2097152 512-byte logical blocks: (1.07 GB/1.00 GiB)
[53071.616418] sd 3:0:0:1: [sdb] 4096-byte physical blocks
[53071.620903] sd 3:0:0:1: [sdb] Write Protect is off
[53071.620909] sd 3:0:0:1: [sdb] Mode Sense: 0f 00 00 00
[53071.652289] sd 3:0:0:1: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[53071.786586] sd 3:0:0:1: [sdb] Attached SCSI disk
Physical Drive(PD)、 Volume Group(VG)、Logical Volume(LV)を定義する。
$ sudo pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
$ sudo vgcreate drbd-vg /dev/sdb
Volume group "drbd-vg" successfully created
$ sudo lvcreate -n drbd-lv --size 980M drbd-vg
Logical volume "drbd-lv" created.
DRBDをインストールする
リポジトリサーバを追加する。
$ sudo add-apt-repository ppa:linbit/linbit-drbd9-stack
リポジトリのリストの最新化をする。
$ sudo apt update -y
DRBDをインストールする
$ sudo apt install drbd-utils drbd-dkms
$ sudo modprobe drbd
$ cat /proc/drbd
version: 9.2.2 (api:2/proto:86-121)
GIT-hash: 8435da3ec2a0a70dee0fedf354276d6f1c6ba708 build by root@ubuntu01, 2023-05-13 04:55:16
Transports (api:18):
ディスクを共有するホスト名を登録する
$ sudo cat - >> /etc/hosts
192.168.1.201 ubuntu01
192.168.1.202 ubuntu02
^D
DRBDの設定ファイルを作成する
$ sudo cat - >> /etc/drbd.d/r0.res
resource r0 {
volume 0 {
disk /dev/drbd-vg/drbd-lv;
device /dev/drbd0;
meta-disk internal;
}
on ubuntu01 {
node-id 0;
address 192.168.1.201:7788;
}
on ubuntu02 {
node-id 1;
address 192.168.1.202:7788;
}
connection {
host ubuntu01 port 7788;
host ubuntu02 port 7788;
net {
protocol C;
}
}
}
^D
メタデータを作成します
$ sudo drbdadm create-md r0
initializing activity log
initializing bitmap (32 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
success
DRBDを起動します
$ sudo service drbd stop
$ sudo service drbd start
ここまでの手順をubuntu02の仮想ホストを作成して同じように実施する。
DRBDの切り替え
ファイルシステムを作成します
$ sudo mkfs.xfs /dev/drbd0
meta-data=/dev/drbd0 isize=512 agcount=4, agsize=62716 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=250863, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1419, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
ubuntu01で共有ドライブの /dev/drbd0 を /mnt にマウントする
ubuntu01$ sudo mount /dev/drbd0 /mnt
ubuntu01$ sudo touch /mnt/20230513-01.txt
ubuntu01$ ls /mnt
20230513-01.txt
ubuntu02に切替を行う
ubuntu01$ sudo drbdadm status r0
r0 role:Primary
disk:UpToDate
ubuntu02 role:Secondary
peer-disk:UpToDate
ubuntu02$ sudo drbdadm status r0
r0 role:Secondary
disk:UpToDate
ubuntu01 role:Primary
peer-disk:UpToDate
ubuntu01$ sudo drbdadm secondary r0
ubuntu01$ sudo drbdadm status r0
r0 role:Secondary
disk:UpToDate
ubuntu02 role:Secondary
peer-disk:UpToDate
ubuntu02$ sudo drbdadm status r0
r0 role:Secondary
disk:UpToDate
ubuntu01 role:Secondary
peer-disk:UpToDate
ubuntu02$ sudo mount /dev/drbd0 /mnt
ubuntu02$ ls /mnt
20230513-01.txt