DRBDの試用 [CentOS]
詳細は、以下の通りである。
1. DRBD (Distributed Replicated Block Device) の機能
複数のノード間で、パーティションをミラーリングするソフトウェアである。
・TCP/IP ネットワークを利用して同期(ミラーリング)される。
・特別なハードウェアを必要としない。
・Linux 上で動作するオープンソース・ソフトウェアである。
・クラスタリングソフトと組み合わせて、Shared nothing 型の HA クラスタを構成できる。
2. システム要件
(1) ソフトウェアのバージョン
・OS: CentOS 6.7
・drbd84-utils-8.9.5-1.el6.elrepo.i686
・kmod-drbd84-8.4.7-1_1.el6.elrepo.i686
(2) 使用するノード
・vm1.private.net(192.168.0.21)
・vm4.private.net(192.168.0.24)
(3) 使用するデバイス
・パーティション: /dev/sdb1
・DRBD 用デバイス: /dev/drbd0
3. 導入手順
3-1. 手順-1
関係するすべてのノードで、下記の手順を実施する。
(1) ネットワーク環境の構築
(2) パッケージのインストール
(a) elrepo.org をリポジトリに追加
(b) パッケージのインストール
# yum install drbd84-utils kmod-drbd84
(3) DRBD の設定
(a) /etc/drbd.d/global_common.conf の編集
global { usage-count no; } common { handlers { } startup { wfc-timeout 60; } options { } disk { resync-rate 50M; } net { protocol C; csums-alg sha1; verify-alg sha1; } }
・usage-count: DRBD プロジェクトへの情報提供の有無(yes/no)
・wfc-timeout: 起動時の他ノードとの接続タイムアウト(sec)
・resync-rate: 再同期に使用する最大帯域幅(Byte/sec)
・protocol: 同期プロトコルのモード(A:非同期, B:メモリ同期, C:同期)
・csums-alg: 更新の検出に使用するアルゴリズム
・verify-alg: 照合に使用するアルゴリズム
(b) /etc/drbd.d/r0.res の編集
resource r0 { meta-disk internal; device /dev/drbd0; disk /dev/sdb1; on vm1.private.net { address 192.168.0.21:7788; } on vm4.private.net { address 192.168.0.24:7788; } }
・meta-disk: メタ情報の保存方法
・device: DRBD デバイス
・disk: DRBD デバイスを構成するパーティション
・address: ノードのアドレス、使用するポート
(c) メタデータの作成
# drbdadm create-md r0
(補足)
パーティション内にファイルシステムが存在する場合には、エラーとなる。
(その旨のエラーが出力される。)
この場合には、下記の手順により当該パーティションを 0 クリアする。
# dd if=/dev/zero of=<dev-path> bs=1M count=1
(4) リソースの有効化
(a) リソースの有効化
# drbdadm up r0
(b) 状態の確認
# cat /proc/drbd
正常終了した場合には、下記のように出力される。
cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent
(5) drbd の自動起動の有効化
# chkconfig drbd on
3-2. 手順-2
該当するノードで、下記の手順を実施する。
(1) 初期同期
vm4.private.net(同期先) で下記の手順を実施する。
(a) 現在のデータの破棄
# drbdadm invalidate r0
(b) 状況の確認
# cat /proc/dbrd
同期完了後には、下記のように出力される。
cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate
(2) ファイルシステムの作成
vm1.private.net(同期元) で下記の手順を実施する。
(a) Primary への移行
# drbdadm primary r0
(b) ファイルシステムの作成
# mke2fs -j /dev/drbd0
(補足)
同期されるため、他ノードでの実施は不要である。
4. DRBD デバイスの使用方法
Primary ノードにおいて、通常のデバイスと同様に扱うことができる。
(1) Primary または Secondary ノードへの移行
下記のコマンドを実施する。
ただし、同時に複数のノードが Primary ノードとなることはできない。
[Primary ノードへの移行の場合] # drbdadm primary[Secondary ノードへの移行の場合] # drbdadm secondary (例) # drbdadm primary r0 # drbdadm secondary r0
(2) 状況の確認
下記のコマンドを実施する。
# cat /proc/drbd
[Primary ノードの場合]
cs:Connected ro:Primary/Secondary と出力される。
[Secondary ノードの場合]
cs:Connected ro:Secondary/Primary と出力される。
5. 参考情報
・http://qiita.com/takehironet/items/13518725ee7c694efe90
・https://blog.3ware.co.jp/drbd-users-guide-8.4/drbd-users-guide.html
コメント 0