検索
連載

インストールとApache用の設定方法Heartbeatでかんたんクラスタリング(2)(3/3 ページ)

前回は、HAクラスタを構築できるオープンソースソフトウェア「Heartbeat」の主な機能を紹介しました。第2回は、Heartbeatのインストール方法を解説し、さらに基本的な設定内容を紹介していきます。(編集部)

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

Apacheを対象とした設定方法

 HeartbeatでApacheをクラスタリングの対象とするには、

  • Apacheがサービスを提供するための仮想IPの設定
  • Apache自体の設定

をcib.xmlに記述しなければなりません。cib.xmlをすべて記載するとファイルが長くなりますので、サンプル(cib.xml.apache)を置いておきます。こちらを参照してください。

サンプルダウンロード:

→ Apache用設定ファイルのサンプル(cib.xml.apache)


 この設定に関して簡単に説明しましょう。

 上述の仮想IPの設定とApache自体の設定は、それぞれ...部と、...部に記述されています。この設定の実行に関しては、どちらもHeartbeatによって提供されるOpen Cluster Framework(OCF)タイプRAを使用し、それぞれIPaddr、apacheというファイルを用いています。

 仮想IPは、Apacheの起動前に立ち上がっていなくてはなりません。そのため仮想IPの設定は、Apacheの設定よりも前に記述されている必要があります。

 Apacheの設定に関しては、/etc/httpd/conf/httpd.confから読み込んでいるのですが、このファイルに対して

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

を追記してください。

 これら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を削除しないようにしてください。

Heartbeatの起動と切り替えテスト

 では、アクティブなノードが切り替わることをテストしてみましょう。

 まず、surr、tomatoの両ノードの/var/www/html/index.htmlファイルに、それぞれ異なる内容のものを置いてください。

 ただしこれは、あくまでテストのための設定です。本来ならば、こういったアクティブなノードが入れ替わったときでもファイルの内容が変化しないように、DRBDなどを用いて各ノードが保持する内容を同期させるか、共有ボリュームを使用することが望ましいです。

図2 切り替えテスト用のHAクラスタ構成。本番稼働の際には同一の内容を用意しておく
図2 切り替えテスト用のHAクラスタ構成。本番稼働の際には同一の内容を用意しておく

 ここまでの設定が完了したら、Heartbeatサービスを起動することになります。ただ、その前にcib.xmlの記述が正しいかどうかを

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

と入力して確認しておきましょう。もし重要なエラーがあったときは、問題がなくなるように修正を加えてください。問題がなければ、先ほどと同じように、まず片方のノードで

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

と入力してサービスを開始します。正しく実行されると、先ほどとは異なり、画面3のようにResource Group部にipaddrとapacheというリソースが加わり、tomatoで実行されていることが分かります。

画面3 Apacheを対象とした設定を行うと、このような画面が表示されるはずだ
画面3 Apacheを対象とした設定を行うと、このような画面が表示されるはずだ

 このとき、仮想IPである10.17.246.10にWebブラウザでアクセスすると、tomatoに置いたコンテンツが表示されます。一方、tomato(10.17.246.2)にアクセスしても、エラー画面が表示されるだけかと思います。

 この状態で、surrのHeartbeatサービスも起動させます。surrとtomatoが問題なく稼働していることをcrm_monコマンドで確認した後に、リソースの稼働しているノード(tomato)で、

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

として、強制的にサーバの再起動を行い、フェイルオーバーの確認をしてみましょう。deadtimeの設定は30秒となっていますので、1分くらい経過したら、先ほどと同じようにWebブラウザでアクセスしてみてください。すると、問題なくフェイルオーバーが行えていることが確認できると思います。

Sambaでフェイルオーバーさせたいときは?

 OCFスクリプトの置いてあるディレクトリを見ても、Samba用のスクリプトはありません。では、HeartbeatではSambaをリソースとしたフェイルオーバーはできないのでしょうか?

 そんなことはありません。HeartbeatではLSBスクリプトも実行可能となっています。例えば先ほどのApacheの設定は、LSBスクリプトを介した管理に置き換えることができます。上記のcib.xmlのApache部を

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

のように、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.

前のページへ |       
ページトップに戻る