目次~
#contents

*はじめに [#y25717f0]
**概要 [#lb6aa870]
DRBDで管理するリソースの定義を行う。~

**リソースの定義 [#m543e4f8]
以下の構成を前提として手順を記載する。~

-構成
--デバイス
|同期デバイス|/dev/drbd0|
|メタデータ|同一パーティション内に保管|
--ノード1
|ホスト名|dev-drbd01|
|同期用IPアドレス|192.168.1.101|
|同期パーティション|/dev/sdb1|
--ノード2
|ホスト名|dev-drbd01|
|同期用IPアドレス|192.168.1.101|
|ホスト名|dev-drbd02|
|同期用IPアドレス|192.168.1.102|
|同期パーティション|/dev/sdb1|

-r0.res
 resource r0 {
     meta-disk internal;
     device /dev/drbd0;
     disk /dev/sdb1;
     on dev-drbd01 {
         address 192.168.1.101:7788;
     }
     on dev-drbd02 {
         address 192.168.1.102:7788;
     }
 }

*手順 [#uba27780]
**パーティションの作成 [#ib3f81d6]
-dev-drbd01
--/dev/sdb1の作成
 # fdisk /dev/sdb
  <操作は省略> 
--ヘッダの上書き
 # dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
--メタデータの作成
 # drbdadm create-md r0
 
 You want me to create a v08 style flexible-size internal meta data block.
 There appears to be a v08 flexible-size internal meta data block
 already in place on /dev/sdb1 at byte offset 53686038528
 
 Do you really want to overwrite the existing meta-data?
 [need to type 'yes' to confirm] yes
 
 initializing activity log
 NOT initializing bitmap
 Writing meta data...
 New drbd meta data block successfully created.

-dev-drbd02
--/dev/sdb1の作成
 # fdisk /dev/sdb
  <操作は省略> 
--ヘッダの上書き
 # dd if=/dev/zero of=/dev/sdb1 bs=1M count=1
--メタデータの作成
 # drbdadm create-md r0
 
 You want me to create a v08 style flexible-size internal meta data block.
 There appears to be a v08 flexible-size internal meta data block
 already in place on /dev/sdb1 at byte offset 53686038528
 
 Do you really want to overwrite the existing meta-data?
 [need to type 'yes' to confirm] yes
 
 initializing activity log
 NOT initializing bitmap
 Writing meta data...
 New drbd meta data block successfully created.

**DRBD起動 [#i016008a]
-dev-drbd01(Primary)
--DRBDの起動
 # systemctl start drbd
 # cat /proc/drbd 
 version: 8.4.9-1 (api:1/proto:86-101)
 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:52426140


-dev-drbd02(Secondary)
--DRBDの起動
 # systemctl start drbd
 # cat /proc/drbd
 version: 8.4.9-1 (api:1/proto:86-101)
 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r-----
    ns:0 nr:0 dw:0 dr:0 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:52426140

**同期 [#fb60b82f]
Primary / Secondaryにおいてそれぞれメタデータを作成し、Secondary側で「drbdadm invalidate」を実行することでPrimaryのメタデータによる上書きを行う。~

-dev-drbd02(Secondary)
--同期の実行
 # drbdadm invalidate r0
--同期状況の確認 
 # cat /proc/drbd
 version: 8.4.9-1 (api:1/proto:86-101)
 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
 0: cs:SyncTarget ro:Secondary/Secondary ds:Inconsistent/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:5570468 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:46855672
        [=>..................] sync'ed: 10.7% (45756/51196)M
        finish: 0:44:19 speed: 17,600 (15,960) want: 16,560 K/sec
--同期の完了
 # cat /proc/drbd
 version: 8.4.9-1 (api:1/proto:86-101)
 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
 0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:52426140 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0


**ファイルシステムの作成 [#pa19b8ed]
ディスクへの書き込みはPrimary側からのみ可能なため、ファイルシステムの作成はPrimary側ノードから行う。~
パーティションのマウントもPrimary側からのみ可能。~

-dev-drbd01(Primary)
--Primaryへの切り替え
 # drbdadm primary r0
 
 # cat /proc/drbd 
 version: 8.4.9-1 (api:1/proto:86-101)
 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7,  2016-12-04 01:08:48
 0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
    ns:0 nr:0 dw:0 dr:52427052 al:8 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 
--ファイルシステムの作成
 # mkfs.xfs /dev/drbd0
 meta-data=/dev/drbd0             isize=512    agcount=4, agsize=3276634 blks
          =                       sectsz=512   attr=2, projid32bit=1
          =                       crc=1        finobt=0, sparse=0
 data     =                       bsize=4096   blocks=13106535, imaxpct=25
          =                       sunit=0      swidth=0 blks
 naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
 log      =internal log           bsize=4096   blocks=6399, version=2
          =                       sectsz=512   sunit=0 blks, lazy-count=1
 realtime =none                   extsz=4096   blocks=0, rtextents=0
 
--パーティションのマウント
 # mount /dev/drbd0 /mnt
 
 # df -h
 ファイルシス            サイズ  使用  残り 使用% マウント位置
 /dev/mapper/centos-root    46G  2.7G   43G    6% /
 devtmpfs                  2.0G     0  2.0G    0% /dev
 tmpfs                     2.0G     0  2.0G    0% /dev/shm
 tmpfs                     2.0G  8.6M  2.0G    1% /run
 tmpfs                     2.0G     0  2.0G    0% /sys/fs/cgroup
 /dev/sda1                 497M  163M  335M   33% /boot
 tmpfs                     396M     0  396M    0% /run/user/1000
 /dev/drbd0                 50G   33M   50G    1% /mnt

**状態確認 [#y8f2fdf8]
DRBDの状態は/proc/drbdを参照する。

-dev-drbd01(Primary)
--動作状況の確認
 # cat /proc/drbd 
 
 version: 8.4.9-1 (api:1/proto:86-101)
 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
  0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r-----
     ns:7916 nr:801195 dw:810353 dr:50993 al:18 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

-dev-drbd02(Secondary)
--動作状況の確認
 # cat /proc/drbd 
 
 version: 8.4.9-1 (api:1/proto:86-101)
 GIT-hash: 9976da086367a2476503ef7f6b13d4567327a280 build by akemi@Build64R7, 2016-12-04 01:08:48
  0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
     ns:0 nr:8254 dw:8254 dr:8244 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

**動作確認 [#w2dc3926]
両系のノードから書き込みを行い、同期していることを確認する。

-dev-drbd01
 → 必要な場合のみ実行
 # drbdadm primary r0
 # mount /dev/drbd0 /mnt
 
 # echo "node01" >> /mnt/test.txt
 # cat /mnt/test.txt
 node01
 
 # umount /mnt
 # drbdadm secondary r0

-dev-drbd02
 # drbdadm primary r0
 # mount /dev/drbd0 /mnt
 # echo "node02" >> /mnt/test.txt
 # cat /mnt/test.txt
 node01
 node02
 
 # umount /data/                                                            
 # drbdadm secondary r0

-dev-drbd01
 # drbdadm primary r0
 # mount /dev/drbd0 /mnt
 
 # echo "node01" >> /mnt/test.txt
 # cat /mnt/test.txt
 node01
 node02

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS