まず、Linux-HAを動作させるハードウェアを2台用意します。専用のハードウェアが用意できない場合には、VMWareまたはVirtualBoxのような仮想環境でも動作します。
OSはCentOS 5.5を標準インストールして使用しますが、ここで1つ注意点があります。DRBDはパーティションを冗長化するため、DRBD用の領域を空けておく必要があるのです。
OSインストール時にApache(Webサーバ)もインストールします。OSと関連するソフトウェアは、2台のサーバ両方に同じようにインストールして、単体でも正常にWebサービスが提供できる状態にします。今回、Webサーバの設定はデフォルト値を使用しているため、DocumentRootは「/var/www/html」となります。
HAクラスタ構成でWebサービスを提供する場合は、仮想IPアドレスを使用して、ノード間でサービスのプロセスと仮想IPアドレスの付け替えを行います。また、Linux-HAはホストネームを使用するため、ホストネームとIPアドレスの名前解決ができるように/etc/hostsファイルまたはDNSサーバに両ノードのホストネームを登録します。
Linux-HA環境は、clusterlabsのWikiサイトからリポジトリを登録すれば、簡単にインストールできます。今回はCentOSを使用しているため、パッケージマネージャyumを使ってインストールします。そのほかのディストリビューションの場合は、clusterlabsのWikiサイトを参考にインストールしてください。
Webサーバの冗長化はLinux-HAに含まれるHeartbeat、Pacemaker、DRBDという3つのOSSを組み合わせて実現します。
|
|
epelとclusterlabs.orgのリポジトリをインストール |
yumコマンドでパッケージをインストールします。依存関係のおかげで、PacemakerをインストールするとHeartbeatもインストールされるようになっています。
# yum install pacemaker.i386 |
DRBDを動作させるには、カーネルモジュールのインストールが必要です。アプリケーション本体とカーネルモジュールの2つのパッケージをインストールします。
# yum install drbd83.i386 kmod-drbd83.i686 |
Linux-HAのインストールができたら、デフォルトでは自動起動してしまうDRBDとWebサーバを、自動起動しないように設定します。これらのサービスの起動および停止はPacemakerから制御するため、必須の作業となります。
2台のノードで同じサービスを提供することが確認できたら、DRBDの準備を行います。
DRBDの準備手順は次のとおりです。まず、OSインストール時に空き容量として確保していた領域にパーティションを作成し、そのパーティションを使用してレプリケーションされたDRBDデバイスを作成します。「/etc/drbd.d/」以下にリソースの設定ファイルを作成し、DRBDの設定を行います。
リソースファイルの拡張子は、デフォルトでは「.res」にすることが決められており、/etc/drbd.confによりインポートされています。今回の例では、/dev/sda3がDRBDでレプリケーションされるブロックデバイスとなります。
|
|
DRBD設定の設定 |
設定ができたら、DRBDデバイスを使うのに必要なメタデータの作成を行います。DRBDはこのメタデータを使って両ノードの整合性を取っています。初回のメタデータの作成時にはいくつか対話式のメニューが出てきますが、すべて[yes]か[Enter]を押して進めます。
|
|
メタデータの作成 |
メタデータの作成が正常にできれば、両ノード間のDRBDの接続が可能な状態となります。DRBDを接続してアクティブ側ノードのDRBDを[Primary]にして、初期同期を行います。
|
|
DRBDの初期同期 |
DRBDの同期が実行されたら、ファイルシステムを作成します(同期中でも作成可能です)。
|
|
ファイルシステムの作成 |
このとき、必ずDRBDデバイスに対してファイルシステムを作成してください。/dev/sda3にファイルシステムを作成してしまうとメタデータが破壊されてしまい、再度作成し直すことになってしまいます。
ファイルシステムができたら、Webサーバで使用するデータ領域をDRBD上に配置します。/mnt/drbd0ディレクトリを作成し、DRBDデバイスは常にそこにマウントされるようにして/var/www/htmlディレクトリのシンボリックリンクを張ります。
スタンバイ側では/mnt/drbd0のディレクトリにDRBDデバイスがマウントされていないため、デッドリンク状態になっていることがポイントとなります。
|
|
アクティブノード側 |
|
|
スタンバイノード側 |
これでDRBDの準備は完了です。「/var/www/html」内に適当なHTMLファイルを用意して保存してください。正常にリンクされていれば、/mnt/drbd0/html内にも作成したHTMLファイルができるはずです。
続いて、Pacemakerのインフラストラクチャとして動作するHeartbeatの設定を行います。Heartbeatは、Pacemakerとの組み合わせでは、ノード管理部分を設定するだけで動作します。
ただしインストール直後は設定ファイルが存在しません。ドキュメントディレクトリから設定ファイル本体「ha.cf」と通信に使用する「authkeys」ファイルをコピーし、ベースとなる設定ファイルとして使用します。
ha.cfファイルの1行目にある「crm yes」は、Pacemakerと組み合わせて使用する場合に追加します。この設定が存在すると、HeartbeatはPacemakerをサブプロセスとして起動するようになります。
|
|
設定ファイルのコピー |
|
|
ha.cfの設定 |
|
|
autukeysの設定 |
Copyright © ITmedia, Inc. All Rights Reserved.