HW周りを変更して、同期は専用のNICを使うように構成変更します。
スペックはCPU2コア、メモリ4GB、ディスク50GB+共有ディスク800GBで行きます。
ネットワークは以下のようになります。
+------------------------------+ +------------------------------+ | CentOS Stream 8 | | CentOS Stream 8 | | drbd01 | | drbd02 | | sda(50GB) | | sda(50GB) | | sdb(800GB) | | sdb(800GB) | | 192.168.1.231(BootIP ens192) | | 192.168.1.232(BootIP ens192) | | 192.168.1.230(VIP ens192) | | 192.168.1.230(VIP ens192) | | 192.168.3.231(BootIP ens224) | | 192.168.3.232(BootIP ens224) | +-ens192----------------ens224-+ +-ens224----------------ens192-+ | | | | | +--------------+ 1GbE | | | +------------------------------------------------------------+ 1GbE
とりあえず、両ノードでkeepalivedとDRBDを停止させます。
# systemctl stop keepalived.service # umount /dev/drbd0 # drbdadm down r0
今回、共有ディスクとして使うsdbを変更するのでパーティションを作り直します。両ノードで実施します。
# fdisk /dev/sdb
fdisk (util-linux 2.32.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
デバイスには認識可能なパーティション情報が含まれていません。
新しい DOS ディスクラベルを作成しました。識別子は 0xf91ed2d3 です。
コマンド (m でヘルプ): n
パーティションタイプ
p 基本パーティション (0 プライマリ, 0 拡張, 4 空き)
e 拡張領域 (論理パーティションが入ります)
選択 (既定値 p):
既定の回答 p であるものとみなします。
パーティション番号 (1-4, 既定値 1):
最初のセクタ (2048-1677721599, 既定値 2048):
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (2048-1677721599, 既定値 1677721599):
新しいパーティション 1 をタイプ Linux、サイズ 800 GiB で作成しました。
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。
設定ファイルを書き直します。アドレスの部分を今回追加しているens224のIPに変更します。両ノードで実施します。
# cd /etc/drbd.d/
# vi r0.res
↓ ファイルを作って追記します
resource r0 {
net{
protocol C;
max-buffers 128K;
}
on drbd01 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.3.231:7788;
meta-disk internal;
}
on drbd02 {
device /dev/drbd0;
disk /dev/sdb1;
address 192.168.3.232:7788;
meta-disk internal;
}
}
設定ができたらメタデータ作成と起動を行います。両ノードで実施します。
# drbdadm create-md r0 #
起動すると、まだ未同期なので同期します。
[root@drbd01 ~]# drbdadm status r0
r0 role:Secondary
disk:Inconsistent
drbd02 role:Secondary
peer-disk:Inconsistent
[root@drbd01 ~]# drbdadm --force primary r0
[root@drbd01 ~]# drbdadm secondary r0
[root@drbd01 ~]# drbdadm status r0
r0 role:Secondary
disk:UpToDate
drbd02 role:Secondary
replication:SyncSource peer-disk:Inconsistent done:0.03
[root@drbd01 ~]#
ファイルシステムを作ります。
[root@drbd01 ~]# mkfs.xfs /dev/drbd0
meta-data=/dev/drbd0 isize=512 agcount=4, agsize=52427134 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=209708535, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=102396, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
ここまでできたら後は前回の設定がそのまま使えますので、keepalivedを再起動します。
[root@drbd01 ~]# systemctl restart keepalived.service
[root@drbd02 ~]# systemctl restart keepalived.service
[root@drbd01 ~]# systemctl status rpcbind nfs-server
● rpcbind.service - RPC Bind
Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; disabled; vendor pr>
Active: active (running) since Sun 2022-11-20 21:37:04 JST; 39s ago
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor>
Drop-In: /run/systemd/generator/nfs-server.service.d
mqorder-with-mounts.conf
Active: active (exited) since Sun 2022-11-20 21:37:05 JST; 39s ago
先に起動したdrbd01がサービスを起こしているのが確認できました。
これで同期はens224経由、NFSはens192経由で行えるようになりました。