CentOS 7
Sponsored Link

DRBD 8 : 設定2016/01/27

 
DRBD インストール後の設定です。
当では以下のような環境で DRBD ストレージクラスターを構成します。
+----------------------+          |          +----------------------+
| [   DRBD Server#1  ] |10.0.0.51 | 10.0.0.52| [   DRBD Server#2  ] |
|   node01.srv.world   +----------+----------+   node02.srv.world   |
|                      |                     |                      |
+----------------------+                     +----------------------+

前提として、DRBD クラスター全ノードに DRBD デバイスに割り当てる空きブロックデバイスが存在している必要があります。
当例では /dev/vg_r0/lv_r0 という論理ボリュームを作成して進めます。
[1] 全ノードで以下のように設定をします。
[root@node01 ~]#
vi /etc/drbd.d/global_common.conf
# disk セクション内に以下を追記 ( IOエラー時はディスクを切り離す )

disk {
   on-io-error detach;
[root@node01 ~]#
vi /etc/drbd.d/r0.res
# 新規作成

resource r0 {
    # DRBDデバイス
    device /dev/drbd0;
    # ブロックデバイス
    disk /dev/vg_r0/lv_r0;
    meta-disk internal;
    on node01.srv.world {
        # IPアドレス:ポート
        address 10.0.0.51:7788;
    }
    on node02.srv.world {
        address 10.0.0.52:7788;
    }
} 

# モジュールロード

[root@node01 ~]#
modprobe drbd

[root@node01 ~]#
lsmod | grep drbd

drbd                  405309  0
libcrc32c              12644  2 xfs,drbd

# DRBDリソース作成

[root@node01 ~]#
drbdadm create-md r0
  --==  Thank you for participating in the global usage survey  ==--
The server's response is:

you are the 2056th user to install this version
md_offset 85895147520
al_offset 85895114752
bm_offset 85892493312

Found some data

 ==> This might destroy existing data! <==

Do you want to proceed?
[need to type 'yes' to confirm] yes

initializing activity log
initializing bitmap (2560 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.
success

[root@node01 ~]#
systemctl start drbd

[root@node01 ~]#
systemctl enable drbd

[2] 全ノードで設定した後は、いずれかのホストをプライマリにしてデータの同期を実施します。
# 設定直後は以下のように Secondary/Secondary

[root@node01 ~]#
cat /proc/drbd

version: 8.4.11-1 (api:1/proto:86-101)
GIT-hash: 66145a308421e9c124ec391a7848ac20203bb03c build by root@node01.srv.world, 2018-07-12 19:28:32
 0: cs:Connected ro:Secondary/Secondary ds:Diskless/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:0

# DRBDリソース起動

[root@node01 ~]#
drbdadm up r0
# プライマリにしてデータ同期

[root@node01 ~]#
drbdadm -- --overwrite-data-of-peer primary r0
# データ同期が開始する

[root@node01 ~]#
cat /proc/drbd

version: 8.4.11-1 (api:1/proto:86-101)
GIT-hash: 66145a308421e9c124ec391a7848ac20203bb03c build by root@node01.srv.world, 2018-07-12 19:28:32
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:1047352 nr:0 dw:0 dr:1049480 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:82832036
        [>....................] sync'ed:  1.3% (80888/81912)M
        finish: 0:56:34 speed: 24,392 (15,868) K/sec

# 同期が完了すると以下のようなステータスになる

[root@node01 ~]#
cat /proc/drbd

version: 8.4.11-1 (api:1/proto:86-101)
GIT-hash: 66145a308421e9c124ec391a7848ac20203bb03c build by root@node01.srv.world, 2018-07-12 19:28:32
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:83879388 nr:0 dw:0 dr:83881516 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
[3] 以上で設定完了です。後は DRBD デバイスにファイルシステムを作成して、プライマリ側でマウントすれば利用可能です。
[root@node01 ~]#
mkfs.xfs /dev/drbd0

[root@node01 ~]#
mkdir /drbd_disk

[root@node01 ~]#
mount /dev/drbd0 /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/drbd0          xfs        80G   33M   80G   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:52 test.txt
[4] セカンダリ側で DRBD デバイスをマウントするには、現在プライマリになっているホストでアンマウントしてセカンダリに降格させ、 セカンダリ側をプライマリに昇格させてマウントという流れになります。
########### プライマリ側 ###########

# アンマウントしてセカンダリにする

[root@node01 ~]#
umount /drbd_disk

[root@node01 ~]#
drbdadm secondary r0
########### セカンダリ側 ###########

# プライマリにしてマウントする

[root@node02 ~]#
drbdadm primary r0

[root@node02 ~]#
mount /dev/drbd0 /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/drbd0          xfs        80G   33M   80G   1% /drbd_disk

[root@node02 ~]#
ll /drbd_disk

total 4
-rw-r--r--. 1 root root 10 Jul 12 19:52 test.txt
関連コンテンツ