DRBD 9 : 設定2018/07/12 |
DRBD インストール後の設定です。
当例では以下のような環境で DRBD クラスターを構築します。 +----------------------+ | +----------------------+ | [ DRBD Node#1 ] |10.0.0.51 | 10.0.0.52| [ DRBD Node#2 ] | | node01.srv.world +----------+----------+ node02.srv.world | | | | | +----------------------+ +----------------------+
前提として、クラスター参加ノード全てに DRBD デバイスに割り当てる空きブロックデバイスが存在している必要があります。
|
|
[1] | 全ノードで、空きブロックデバイスに DRBD 用のボリュームグループを作成しておきます。 |
[root@node01 ~]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created [root@node01 ~]# vgcreate drbdpool /dev/sdb1 Volume group "vg_volume01" successfully created |
[2] | Firewalld を有効にしている場合は、サービスポートの許可が必要です。 |
[root@node01 ~]# firewall-cmd --add-port=6996-7800/tcp --permanent success [root@node01 ~]# firewall-cmd --reload success |
[3] | いずれかのノードで DRBD クラスターの初期化を実行してノードを追加します。 |
[root@node01 ~]# drbdmanage init 10.0.0.51
You are going to initialize a new drbdmanage cluster.
CAUTION! Note that:
* Any previous drbdmanage cluster information may be removed
* Any remaining resources managed by a previous drbdmanage installation
that still exist on this system will no longer be managed by drbdmanage
Confirm:
yes/no: yes
[ 2420.329129] drbd .drbdctrl: Starting worker thread (from drbdsetup [13925])
[ 2420.451483] drbd .drbdctrl/0 drbd0: disk( Diskless -> Attaching )
[ 2420.453513] drbd .drbdctrl/0 drbd0: Maximum number of peer devices = 31
.....
.....
[ 2421.677920] drbd .drbdctrl: Preparing cluster-wide state change 2615618191 (0->-1 3/1)
[ 2421.680499] drbd .drbdctrl: Committing cluster-wide state change 2615618191 (2ms)
[ 2421.682894] drbd .drbdctrl: role( Secondary -> Primary )
Waiting for server: .
Operation completed successfully
# DRBD クラスターノードを追加する [root@node01 ~]# drbdmanage add-node node02.srv.world 10.0.0.52 [ 2452.989515] drbd .drbdctrl node02.srv.world: Starting sender thread (from drbdsetup [14020]) [ 2452.997518] drbd .drbdctrl node02.srv.world: conn( StandAlone -> Unconnected ) Operation completed successfully Operation completed successfully [ 2453.037235] drbd .drbdctrl node02.srv.world: Starting receiver thread (from drbd_w_.drbdctr [13926]) [ 2453.040902] drbd .drbdctrl node02.srv.world: conn( Unconnected -> Connecting ) Host key verification failed. Give leader time to contact the new node Operation completed successfully Operation completed successfully Join command for node node02.srv.world: drbdmanage join -p 6999 10.0.0.52 1 node01.srv.world 10.0.0.51 0 twuZE5BAthnZIRyEAAS/ |
[4] | [3] で作業したノードと異なるノードへ移動し、DRBD クラスターノードを追加した際に表示されたクラスター参加コマンドを実行します。 |
[root@node02 ~]# drbdmanage join -p 6999 10.0.0.52 1 node01.srv.world 10.0.0.51 0 twuZE5BAthnZIRyEAAS/
You are going to join an existing drbdmanage cluster.
CAUTION! Note that:
* Any previous drbdmanage cluster information may be removed
* Any remaining resources managed by a previous drbdmanage installation
that still exist on this system will no longer be managed by drbdmanage
Confirm:
yes/no: yes
[ 2491.338532] drbd: loading out-of-tree module taints kernel.
[ 2491.343082] drbd: module verification failed: signature and/or required key missing - tainting kernel
[ 2491.364065] drbd: initialized. Version: 9.0.14-1 (api:2/proto:86-113)
.....
.....
[ 2553.012505] drbd .drbdctrl node01.srv.world: conn( StandAlone -> Unconnected )
[ 2553.025846] drbd .drbdctrl node01.srv.world: Starting receiver thread (from drbd_w_.drbdctr [13762])
[ 2553.028899] drbd .drbdctrl node01.srv.world: conn( Unconnected -> Connecting )
Operation completed successfully
|
[5] | 以上の設定後、ステータスを確認して、全ノードとも [ok] であれば OK です。 |
[root@node01 ~]# drbdadm status --== Thank you for participating in the global usage survey ==-- The server's response is: you are the 1527th user to install this version .drbdctrl role:Primary volume:0 disk:UpToDate volume:1 disk:UpToDate node02.srv.world role:Secondary volume:0 peer-disk:UpToDate volume:1 peer-disk:UpToDate[root@node01 ~]# drbdmanage list-nodes +--------------------------------------------------+ | Name | Pool Size | Pool Free | State | |--------------------------------------------------| | node01.srv.world | 81916 | 81908 | ok | | node02.srv.world | 81916 | 81908 | ok | +--------------------------------------------------+ |
[6] | 設定した DRBD クラスターにリソースとボリュームを作成します。 |
# [resource01] リソース作成 [root@node01 ~]# drbdmanage add-resource resource01 Operation completed successfully [root@node04 ~]# drbdmanage list-resources +--------------------+ | Name | State | |--------------------| | resource01 | ok | +--------------------+ # 10G ボリュームを追加 [root@node01 ~]# drbdmanage add-volume resource01 10GB Operation completed successfully [root@node01 ~]# drbdmanage list-volumes +------------------------------------------------+ | Name | Vol ID | Size | Minor | State | |------------------------------------------------| | resource01 | 0 | 9.31 GiB | 100 | ok | +------------------------------------------------+ # 作成したリソースをデプロイする # 最後の数字はリソースに使用するノード数 (クラスター構成ノード数と同じ数でなくてもOK) [root@node01 ~]# drbdmanage deploy-resource resource01 2 Operation completed successfully # 状態確認 : 設定直後は [Inconsistent] (不整合) 状態 [root@node01 ~]# drbdadm status .drbdctrl role:Secondary volume:0 disk:UpToDate volume:1 disk:UpToDate node02.srv.world role:Primary volume:0 peer-disk:UpToDate volume:1 peer-disk:UpToDate resource01 role:Secondary disk:Inconsistent node02.srv.world role:Secondary replication:SyncTarget peer-disk:UpToDate done:0.07 # しばらく時間が経つと同期が完了し [Inconsistent] 状態は解消される [root@node01 ~]# drbdadm status .drbdctrl role:Secondary volume:0 disk:UpToDate volume:1 disk:UpToDate node02.srv.world role:Primary volume:0 peer-disk:UpToDate volume:1 peer-disk:UpToDate resource01 role:Secondary disk:UpToDate node02.srv.world role:Secondary peer-disk:UpToDate |
[7] | 以上で設定完了です。後は DRBD デバイスにファイルシステムを作成して、プライマリ側でマウントすれば利用可能です。 |
# /dev/drbd*** の数値は [drbdmanage list-volumes] で表示される [Minor] の数値 [root@node01 ~]# mkfs.xfs /dev/drbd100 [root@node01 ~]# mkdir /drbd_disk [root@node01 ~]# mount /dev/drbd100 /drbd_disk [root@node01 ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/cl-root xfs 26G 1.7G 25G 7% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 8.5M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda1 xfs 1014M 238M 777M 24% /boot tmpfs tmpfs 396M 0 396M 0% /run/user/0 /dev/drbd100 xfs 9.4G 33M 9.3G 1% /drbd_disk # テストファイル作成 [root@node01 ~]# echo 'test file' > /drbd_disk/test.txt [root@node01 ~]# ll /drbd_disk total 4 -rw-r--r--. 1 root root 10 Jul 12 19:54 test.txt |
[8] | セカンダリ側で DRBD デバイスをマウントするには、現在プライマリになっているホストでアンマウントしてセカンダリに降格させ、 セカンダリ側をプライマリに昇格させてマウントという流れになります。 |
########### プライマリ側 ########### # アンマウントしてセカンダリにする [root@node01 ~]# umount /drbd_disk [root@node01 ~]# drbdadm secondary resource01
########### セカンダリ側 ########### # プライマリにしてマウントする [root@node02 ~]# drbdadm primary resource01 [root@node02 ~]# mount /dev/drbd100 /drbd_disk [root@node02 ~]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/cl-root xfs 26G 1.6G 25G 6% / devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs tmpfs 2.0G 8.5M 2.0G 1% /run tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda1 xfs 1014M 238M 777M 24% /boot tmpfs tmpfs 396M 0 396M 0% /run/user/0 /dev/drbd100 xfs 9.4G 33M 9.3G 1% /drbd_disk[root@node02 ~]# ll /drbd_disk total 4 -rw-r--r--. 1 root root 10 Jul 12 19:54 test.txt |
Sponsored Link |