CentOS 6
Sponsored Link

DRBD : 設定
2015/03/10
 
DRBD インストール後の設定です
ここでは以下のような環境を例に DRBD ストレージを構築します。
+----------------------+          |          +----------------------+
| [   DRBD Server#1  ] |10.0.0.30 | 10.0.0.31| [   DRBD Server#2  ] |
|   drbd01.srv.world   +----------+----------+   drbd02.srv.world   |
|                      |                     |                      |
+----------------------+                     +----------------------+

前提として、利用するサーバー双方に DRBD デバイスに割り当てる空きブロックデバイスが存在している必要があります。
例として、ここでは /dev/vg_r0/lv_r0 を利用して進めます。
[1] 両ホストで以下のように同じ設定をします。
[root@drbd01 ~]#
vi /etc/drbd.d/global_common.conf
# disk セクション内に以下を追記 ( IOエラー時はディスクを切り離す )

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

resource r0 {
   
# DRBDデバイス

    device /dev/drbd0;
   
# ブロックデバイス

    disk /dev/vg_r0/lv_r0;
    meta-disk internal;
    on drbd01.srv.world {
       
# IPアドレス:ポート

        address 10.0.0.30:7788;
    }
    on drbd02.srv.world {
        address 10.0.0.31:7788;
    }
}
# モジュールロード

[root@drbd01 ~]#
modprobe drbd

[root@drbd01 ~]#
lsmod | grep drbd

drbd                  343511  0
libcrc32c               1246  1 drbd

# DRBDリソース作成

[root@drbd01 ~]#
drbdadm create-md r0
  --==  Thank you for participating in the global usage survey  ==--
The server's response is:
...
...
[need to type 'yes' to confirm]
yes

initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
success

[root@drbd01 ~]#
/etc/rc.d/init.d/drbd start

Starting DRBD resources: [
     create res: r0
   prepare disk: r0
    adjust disk: r0drbd r0: Starting worker thread (from drbdsetup-84 [17259])
...
...
To abort waiting enter 'yes' [ 18]:
yes
[root@drbd01 ~]#
chkconfig drbd on

[root@drbd01 ~]#
echo "/sbin/modprobe drbd" >> /etc/rc.local

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

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

version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by root@drbd01.srv.world, 2015-03-11 17:20:57
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/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:f oos:83879388

# プライマリにしてデータ同期

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

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

version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by root@drbd01.srv.world, 2015-03-11 17:20:57
 0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r-----
    ns:129216 nr:0 dw:0 dr:129880 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:83750172
        [>....................] sync'ed:  0.2% (81784/81912)M
        finish: 3:03:05 speed: 7,600 (7,600) K/sec

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

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

version: 8.4.5 (api:1/proto:86-101)
GIT-hash: 1d360bde0e095d495786eaeb2a1ac76888e4db96 build by root@drbd01.srv.world, 2015-03-11 17:20:57
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:83879388 nr:0 dw:0 dr:83880052 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
[3] 以上で設定完了です。後は DRBD デバイスにファイルシステムを作成して、プライマリ側でマウントしてやれば OK です。
[root@drbd01 ~]#
mkfs.ext4 /dev/drbd0

[root@drbd01 ~]#
mkdir /drbd_disk

[root@drbd01 ~]#
mount /dev/drbd0 /drbd_disk

[root@drbd01 ~]#
df -hT

Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                     ext4    16G  1.4G   14G  10% /
tmpfs                tmpfs  1.9G     0  1.9G   0% /dev/shm
/dev/vda1            ext4   477M  119M  333M  27% /boot
/dev/drbd0           ext4    79G   56M   75G   1% /drbd_disk

# テストファイル作成

[root@drbd01 ~]#
touch /drbd_disk/test.txt

[root@drbd01 ~]#
ll /drbd_disk

total 16
drwx------ 2 root root 16384 Mar 12 12:01 lost+found
-rw-r--r-- 1 root root     0 Mar 12 12:52 test.txt
[4] セカンダリ側でDRBDデバイスをマウントするには、現在プライマリになっているホストでアンマウントしてセカンダリに降格させ、 セカンダリ側をプライマリに昇格させてマウントという流れになります。
########### プライマリ側 ###########

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

[root@drbd01 ~]#
umount /drbd_disk

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

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

[root@drbd02 ~]#
drbdadm primary r0

[root@drbd02 ~]#
mount /dev/drbd0 /drbd_disk

[root@drbd02 ~]#
df -hT

Filesystem           Type   Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                     ext4    16G  1.4G   14G  10% /
tmpfs                tmpfs  1.9G     0  1.9G   0% /dev/shm
/dev/vda1            ext4   477M  119M  333M  27% /boot
/dev/drbd0           ext4    79G   56M   75G   1% /drbd_disk
 
Tweet