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経由で行えるようになりました。