CentOS 5.3 drbd インストールメモ
インストール手順のメモですよぉ。ちょっとだけ補足も書いてありますよ。基本的にprimary/secondaryの両方に同じ設定を行います。
インストール
# yum -y install drbd82 kmod-drbd82
82付きでインストールすると8.2、普通にインストールすると8.0が入るみたいです。ちなみに最近リリースされた8.3は有償のplusの機能が統合されて3ノードのクラスタが組めるようになったそうな。NEC Express 5800 110GeをポチってしまったのでESXiを乗せて試したいとこですね。
設定ファイルを作成
vi /etc/drbd.conf global { usage-count no; } common { syncer { rate 30M; } } resource [resource name] { # ex) r0 protocol C; startup { wfc-timeout 120; } disk { on-io-error pass_on; } on [primary hostname] { # ex) drbd0.example.com device /dev/drbd0; disk /dev/[device]; # ex) /dev/sda3 address [address]:[port]; # ex) 192.168.0.2:7788 meta-disk internal; } on [secodary hostname] { # ex) drbd1.example.com device /dev/drbd0; disk /dev/[device]; # ex) /dev/sda3 address [address]:[port]; # ex) 192.168.0.3:7788 meta-disk internal; } }
diskで指定した物理パーティションがdrbdが実際にデータを書き込むパーティションとなります。またOSからdrbdを通してアクセスするにはdeviceで指定したデバイスファイルを利用する事になります。この例の場合だと/dev/drbd0をマウントするとdrbdのパーティションとして利用することが出来て、実際のデータは/dev/sda3に書き込まれることになります。
メタファイルを作成
# drbdadm create-md r0 v08 Magic number not found v07 Magic number not found v07 Magic number not found v08 Magic number not found Writing meta data... initialising activity log NOT initialized bitmap New drbd meta data block sucessfully created.
drbdではprimary/secondaryの差分をメタデータとして保持しています。drbd 7系では明示的にメタデータを作成するコマンドがなかったのですが、導入手順を誤るとこのメタデータを壊しかねない状態で使えるようになってしまうという問題があったようです。なので明示的に作成する手順が作成されたのだと思われます。
drbd起動
# /etc/init.d/drbd start Starting DRBD resources: [ d(r0) s(r0) n(r0) ]. # cat /proc/drbd version: 8.2.6 (api:88/proto:86-88) GIT-hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx build by buildsvn@c5-i386-build, 2008-10-03 11:42:32 0: cs:Connected st: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 oos:1044156
primaryを指定
ここはprimaryサーバのみで実行。最初の1回のみ行う操作で、primaryがどちであるかを強制的に指定する処理になります。
# drbdadm -- --overwrite-data-of-peer primary r0
primaryの状態を確認
# cat /proc/drbd version: 8.2.6 (api:88/proto:86-88) GIT-hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx build by buildsvn@c5-i386-build, 2008-10-03 11:42:32 0: cs:SyncSource st:Primary/Secondary ds:UpToDate/Inconsistent C r--- ns:67060 nr:0 dw:0 dr:75232 al:0 bm:4 lo:1 pe:6 ua:256 ap:0 oos:977276 [>...................] sync'ed: 6.7% (977276/1044156)K finish: 0:01:27 speed: 11,144 (11,144) K/sec
secondaryの状態を確認
# cat /proc/drbd version: 8.2.6 (api:88/proto:86-88) GIT-hash: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx build by buildsvn@c5-i386-build, 2008-10-03 11:42:32 0: cs:SyncTarget st:Secondary/Primary ds:Inconsistent/UpToDate C r--- ns:0 nr:694528 dw:694496 dr:0 al:0 bm:42 lo:2 pe:582 ua:1 ap:0 oos:349660 [============>.......] sync'ed: 66.7% (349660/1044156)K finish: 0:00:33 speed: 10,488 (9,384) K/sec