目次~
#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