DRBD リソースの設定と作成
http://extstrg.asabiya.net/pukiwiki/index.php?DRBD%20%A5%EA%A5%BD%A1%BC%A5%B9%A4%CE%C0%DF%C4%EA%A4%C8%BA%EE%C0%AE目次
はじめに †
概要 †
DRBDで管理するリソースの定義を行う。
リソースの定義 †
以下の構成を前提として手順を記載する。
- 構成
- デバイス
同期デバイス /dev/drbd0 メタデータ 同一パーティション内に保管 - ノード1
ホスト名 dev-drbd01 同期用IPアドレス 192.168.1.101 同期パーティション /dev/sdb1 - ノード2
ホスト名 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; } }
手順 †
パーティションの作成 †
- 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/sdb1の作成
- 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.
- /dev/sdb1の作成
DRBD起動 †
- 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
- DRBDの起動
- 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
- DRBDの起動
同期 †
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
- 同期の実行
ファイルシステムの作成 †
ディスクへの書き込みは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
- Primaryへの切り替え
状態確認 †
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
- 動作状況の確認
動作確認 †
両系のノードから書き込みを行い、同期していることを確認する。
- 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
Last-modified: 2017-04-03 (月) 09:29:45 (2552d)