本稿について
DRBDをつかった高可用性ストレージを構築する際の手順をチュートリアル形式で書いています。
世間に出回っている情報と大きな違いはありませんが、一つ前のDRBD 8.3の情報が多く、DRBD 8.4がなかなか見つからなかったので敢えて書いてみました。
しおり
CentOS6.5でDRBD8.4を使ってみる - vol.0 準備編
CentOS6.5でDRBD8.4を使ってみる - vol.1 インストール編
CentOS6.5でDRBD8.4を使ってみる - vol.2 Corosync設定編
CentOS6.5でDRBD8.4を使ってみる - vol.3 DRBD初期設定編
CentOS6.5でDRBD8.4を使ってみる - vol.4 CRM設定編
CentOS6.5でDRBD8.4を使ってみる - vol.5 スプリットブレイン編1
DRBDについて
DRBD(Distributed Replicated Block Device)はLINBIT社のOSSで、ネットワーク越しにディスクをミラーするものです。
HAクラスタでは共有ディスクを使用することで、フェイルオーバー後も同じデータを参照できるようにすることがありますが、DRBDはそれぞれのノードがデータを持つことで「シェアードナッシング」を実現できます。
「シェアードナッシング」についてはWikipediaの記事を参照ください。
DRBDは Primary
と Secondary
の2つ役割(ロール)を持ち、読み書き可能なのは Primary
のみです。
Secondary
は読み込みすらできません。
Primary
に障害が発生した場合には、 Secondary
を Primary
に昇格させることでサービスの引継ができます。
DRBDそのものには、ロールを自動的に制御する仕組みが無いため、PacemakerというOSSを組み合わせて使用します。
蛇足ですが、FreeBSDで動作するDRBDと同様な目的を果たすソフトウェアとしてHASTが有名です。
準備
DRBD(8.x)は基本的に2ノードで利用します(3ノードとか、4ノードとかも可能ですが、複雑になります)ので、マシンを2台用意します。
ディストリビューションはCentOS 6.5の64bit版を使用し、ホスト名はそれぞれ drbd1
と drbd2
しています。
NICについて
基本的な構成は次のようなものですが、冗長性を高める場合には上から優先してNICを追加していきます。
- 死活監視用NIC 1枚
- データ同期用NIC 1枚
- サービス用NIC 1枚
今回は基本的かつ最低限な構成(最低限過ぎず、盛り過ぎもしない)で、上の構成にします。
ディスクについて
ディスクについても、OSとデータと別ディスクにしたり、RAID1以上のアレイをストライプにしたりと、速度と信頼性を高める構成にするのが普通です。
しかしながら、ここではわかりやすくするために次のような構成にしています。
- OSとデータは別ディスク
- RAIDは使用しない
KVMで動作する仮想マシンで構築しているため、OSディスクは /dev/vda
に、データディスクは /dev/vdb
になっています。
環境に合わせて読み替えを行ってください。
IPアドレス
IPアドレスをそれぞれ次のように設定しています。諸事情によりIPアドレスが揃っておりませんが、ご容赦ください。
drbd1 ノード
- eth0: 192.168.100.59/24 (サービス用, SSH接続用)
- eth1: 192.168.130.18/24 (データ同期用)
- eth2: 192.168.128.15/24 (死活監視用)
drbd2 ノード
- eth0: 192.168.100.60/24 (サービス用, SSH接続用)
- eth1: 192.168.130.19/24 (データ同期用)
- eth2: 192.168.128.16/24 (死活監視用)