ubuntuでDRBDの環境構築

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

投稿日

カテゴリー:

投稿者: