HeartbeatでApacheをクラスタリングの対象とするには、
をcib.xmlに記述しなければなりません。cib.xmlをすべて記載するとファイルが長くなりますので、サンプル(cib.xml.apache)を置いておきます。こちらを参照してください。
この設定に関して簡単に説明しましょう。
上述の仮想IPの設定とApache自体の設定は、それぞれ...部と、...部に記述されています。この設定の実行に関しては、どちらもHeartbeatによって提供されるOpen Cluster Framework(OCF)タイプRAを使用し、それぞれIPaddr、apacheというファイルを用いています。
仮想IPは、Apacheの起動前に立ち上がっていなくてはなりません。そのため仮想IPの設定は、Apacheの設定よりも前に記述されている必要があります。
Apacheの設定に関しては、/etc/httpd/conf/httpd.confから読み込んでいるのですが、このファイルに対して
Listen 172.17.246.10:80 |
と
<Location /server-status> |
を追記してください。
これらcib.xmlとhttpd.confの設定を、surr、tomatoの両ノードにて行います。その後、/var/lib/heartbeat/crm/にある「cib.xml.last」「cib.xml.sig」という2つのファイルを削除します。もし手書きでcib.xmlを変更した場合は、サービス開始前にcibm.xml.lastとcib.xml.sigの削除が必要となります。このとき、間違ってcib.xmlを削除しないようにしてください。
では、アクティブなノードが切り替わることをテストしてみましょう。
まず、surr、tomatoの両ノードの/var/www/html/index.htmlファイルに、それぞれ異なる内容のものを置いてください。
ただしこれは、あくまでテストのための設定です。本来ならば、こういったアクティブなノードが入れ替わったときでもファイルの内容が変化しないように、DRBDなどを用いて各ノードが保持する内容を同期させるか、共有ボリュームを使用することが望ましいです。
ここまでの設定が完了したら、Heartbeatサービスを起動することになります。ただ、その前にcib.xmlの記述が正しいかどうかを
# crm_verify -x /var/lib/heartbeat/crm/cib.xml |
と入力して確認しておきましょう。もし重要なエラーがあったときは、問題がなくなるように修正を加えてください。問題がなければ、先ほどと同じように、まず片方のノードで
# /etc/init.d/heartbeat start |
と入力してサービスを開始します。正しく実行されると、先ほどとは異なり、画面3のようにResource Group部にipaddrとapacheというリソースが加わり、tomatoで実行されていることが分かります。
このとき、仮想IPである10.17.246.10にWebブラウザでアクセスすると、tomatoに置いたコンテンツが表示されます。一方、tomato(10.17.246.2)にアクセスしても、エラー画面が表示されるだけかと思います。
この状態で、surrのHeartbeatサービスも起動させます。surrとtomatoが問題なく稼働していることをcrm_monコマンドで確認した後に、リソースの稼働しているノード(tomato)で、
# sync |
として、強制的にサーバの再起動を行い、フェイルオーバーの確認をしてみましょう。deadtimeの設定は30秒となっていますので、1分くらい経過したら、先ほどと同じようにWebブラウザでアクセスしてみてください。すると、問題なくフェイルオーバーが行えていることが確認できると思います。
OCFスクリプトの置いてあるディレクトリを見ても、Samba用のスクリプトはありません。では、HeartbeatではSambaをリソースとしたフェイルオーバーはできないのでしょうか?
そんなことはありません。HeartbeatではLSBスクリプトも実行可能となっています。例えば先ほどのApacheの設定は、LSBスクリプトを介した管理に置き換えることができます。上記のcib.xmlのApache部を
<primitive id="apache" class="lsb" type="httpd"/> |
のように、type部をhttpdに変更し、provider部をなくすように変更します。これは、heartbeatから/etc/init.d/httpdを実行するようにしたためです。
Apache用の設定ファイルについては、/etc/init.d/httpdにより管理されているため、今回はcib.xmlに記述する必要はありません。cib.xml.lastとcib.xml.sigを削除し、Heartbeatサービスを起動してみてください。問題なくApacheも稼働すると思います。Sambaを動作させる方法については、読者の皆さんへの宿題としておきましょう。
さて次回は、前回簡単に紹介したSTONITHとWatchdogについて解説していきたいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.