(注意)OSインストール時にパーティションを切る場合、DRBDで利用する領域は”未割り当て”
な状態としておく必要があります
→マウントポイントを作成しない or フォーマットもしない”空き領域”としておきます
今回の検証環境は、VMware上に稼動系と待機系の2台を用意して行っています。
■稼動系
ホスト名: node01
OS: CentOS6.3(x86_64)
DRBD: Ver8.4.2
OS領域: /dev/sda
DRBD領域: /dev/sdb
ネットワークインターフェース: 3つ
■待機系
ホスト名: node01
OS: CentOS6.3(x86_64)
DRBD: Ver8.4.2
OS領域: /dev/sda
DRBD領域: /dev/sdb
ネットワークインターフェース: 3つ
<構成概要図> |
インストール
●node01とnode02で実施
# rpm -ivh *.rpm
Preparing... ########################################### [100%]
1:drbd-utils ########################################### [ 17%]
2:drbd-bash-completion ########################################### [ 33%]
3:drbd-pacemaker ########################################### [ 50%]
4:drbd-udev ########################################### [ 67%]
5:drbd ########################################### [ 83%]
6:drbd-km-2.6.32_279.19.1########################################### [100%]
#
※ここでインストールしたdrbd-bash-completionパッケージにより、drbdadmコマンドのサブコマンドにTAB補完が効くようになるので以下のようにすると楽ができます。
# echo "source /etc/bash_completion.d/drbdadm" >> ~/.bash_profile
# source ~/.bash_profile
DRBD領域の用意
●node01とnode02で実施
※以下では、/dev/sdbを全てDRBDの領域に割り当てています
# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa235ee65.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n ←★新しいパーティションを作成
Command action
e extended
p primary partition (1-4)
p ←★プライマリパーティションとして指定
Partition number (1-4): 1 ←★パーティションの1番目を指定
First cylinder (1-652, default 1): ←★そのままEnterを押す
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): ←★そのままEnter
Using default value 652
Command (m for help): p ←★作成したパーティションを確認表示
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa235ee65
Device Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 83 Linux
Command (m for help): w ←★問題なければディスクに書き込み
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#
設定ファイルの作成
●node01とnode02で実施
※以下は、最低限必要となるパラメータで作成しています
※パラメータの説明はここではしませんので、man 5 drbd.confやドキュメントで確認してください
/etc/drbd.d/global_common.conf:
global {
usage-count no;
}
common {
net {
protocol C;
}
syncer {
rate 100M;
}
}
/etc/drbd.d/r0.res:
resource r0 {
volume 0 {
device minor 0;
disk /dev/sdb1;
meta-disk internal;
}
on node01 { ←★"uname -n"の値をon以下に指定
address 10.0.0.91:7789;
}
on node02 {
address 10.0.0.92:7789;
}
}
metaデータの領域を作成
●node01とnode02で実施
※もし、「'r0' not defined in your config (for this host).」のようなエラーが表示されたら、
設定ファイルに”uname -n”で出力されたホスト名を指定しているか再確認を
# drbdadm create-md r0 (もしくは drbdadm create-md r0/0)
Writing meta data...
initializing activity log
NOT initializing bitmap
New drbd meta data block successfully created.
#
DRBDの起動
●node01とnode02で実施
# /etc/rc.d/init.d/drbd start
Starting DRBD resources: [
create res: r0
prepare disk: r0
adjust disk: r0
adjust net: r0
]
.....
#
この作業後、DRBDの状態を確認すると
[root@node01 ~]# cat /proc/drbd
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by user01@node01.example.com, 2012-12-22 01:11:07
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:5236960
[root@node01 ~]#
もしくは、
[root@node01 ~]# drbd-overview
0:r0/0 Connected Secondary/Secondary Inconsistent/Inconsistent C r-----
[root@node01 ~]#
となる。
初回フル同期スキップを実施
●どちらかのノードで実施(以下では、node01で実施)
※DRBDは、初回利用時に各ノードのDRBD領域をフル同期する必要があるが、同期する容量
によっては同期が完了するまでに非常に時間がかかってしまうので、、ここではフル同期を
スキップさせる方法をとってみる。
※なお、このスキップの方法はver8.4系のものなので、それ以外のバージョンを利用する場合は、
そのバージョンのドキュメントを確認してください
[root@node01 ~]# drbdadm new-current-uuid --clear-bitmap r0/0
この作業後、DRBDの状態を確認すると
[root@node01 ~]# cat /proc/drbd
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by toshiaki@node01.do-style.com, 2012-12-22 01:11:07
0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate 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:0
[root@node01 ~]#
もしくは、
[root@node01 ~]# drbd-overview
0:r0/0 Connected Secondary/Secondary UpToDate/UpToDate C r-----
[root@node01 ~]#
となる。
→DiskのStatusが、InconsistentからUpToDateな状態へ遷移する
(余談)初回フル同期スキップをver8.3の時のようにをvolume idを指定しないで実施した
ところ以下のようなエラーが表示された。
[root@node01 ~]# drbdadm new-current-uuid --clear-bitmap r0
new-current-uuid requires a specific volume id, but none is specified.
Try 'new-current-uuid minor-<minor_number>' or 'new-current-uuid r0/<vnr>'
[root@node01 ~]#
ドキュメントには<resouce>としか書いてないので、不親切ですね。
DRBD領域のマウントまで
●稼動系にしたいノードで実施(以下では、node01で実施)
※DRBD領域を/dataにマウントする
[root@node01 ~]# drbdadm primary r0
[root@node01 ~]# mkfs.ext4 /dev/drbd0 ←★ext4でフォーマット
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1309240 blocks
65462 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@node01 ~]#
[root@node01 ~]# tune2fs -c 0 -i 0 /dev/drbd0
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
[root@node01 ~]#
[root@node01 ~]# mkdir /data
[root@node01 ~]# mount /dev/drbd0 /data
[root@node01 ~]#
[root@node01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 1.3G 16G 8% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/sda1 194M 63M 122M 34% /boot
/dev/drbd0 5.0G 138M 4.6G 3% /data
[root@node01 ~]#
[root@node01 ~]# drbd-overview
0:r0/0 Connected Primary/Secondary UpToDate/UpToDate C r----- /data ext4 5.0G 138M 4.6G 3%
[root@node01 ~]#
0 件のコメント:
コメントを投稿