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 ~]# 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]:
[root@drbd01 ~]# yes
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 |
Sponsored Link |