インストールとApache用の設定方法:Heartbeatでかんたんクラスタリング(2)(2/3 ページ)
前回は、HAクラスタを構築できるオープンソースソフトウェア「Heartbeat」の主な機能を紹介しました。第2回は、Heartbeatのインストール方法を解説し、さらに基本的な設定内容を紹介していきます。(編集部)
Heartbeatの設定
v1設定 vs v2設定、どちらを選ぶ?
Heartbeatバージョン2系では、バージョン1系の設定(以下「v1設定」)とバージョン2系設定(以下「v2設定」)の両方が行えます。これにより、設定ファイルを変更することなくバージョン1系からの移行が行えます。
ただしv1設定には、アクティブ/スタンバイ構成の2ノードのクラスタしかサポートしないことやクラスタの設定を動的に変更できないというデメリットがあります。ですので、この記事ではv2設定のみに絞って解説をしていきます。
また、v1設定からv2設定への移行を支援するためのツールとして「haresources2cib.py」が提供されています。これを用いて、v1設定を行った後にv2設定に移行することも可能です。
設定ファイルの詳細
Heartbeat v2設定は、
名称 | 意味 |
---|---|
/etc/ha.d/ha.cf | クラスタの基本的な構成の設定用 |
/etc/ha.d/authkeys | ノード間のハートビート通信のためのパスフレーズの記述用 |
/var/lib/heartbeat/crm/cib.xml | 提供するサービスやノード、ポリシーなどクラスタの詳細な設定用 |
という3つの設定ファイルから成り立っています。クラスタを構成する各ノードにおいて、これらのファイルの内容はすべて同一にしなくてはなりません。まず、ha.cfを
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
のように記述します。次にauthkeysを、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
のように記述します。最初にあるのがパスフレーズの番号で、次にパスフレーズタイプ(「sha1」など)、その次にパスフレーズそのものを記述します。パーミッションは600にしておいてください。その後、クラスタに参加するすべてのノードで、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
と入力し、Heartbeatサービスを開始します。その後、クラスタ参加ノードのどれかで、
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
と入力します。これにより、3秒置きにクラスタのステータスが更新表示されるようになります。ある程度時間が経過すると、画面1のようにクラスタに参加しているノード名が表示され、右側に表示されるステータスが「online」となります。これにより、最低限の設定が完了しました。
同時に、/var/lib/heartbeat/crm/cib.xmlが生成されていることを確認してください。
注意:これから先の設定は、以下のGUIツール(hb_gui)を用いて行うこともできます。しかしながら、cib.xmlの記述について理解していないと、なかなか使いこなしにくいのが現状です。そこで今回は、設定ファイルを直接編集する方法を解説します。なお、hb_guiを使用する場合は、haclusterユーザーのパスワードを設定しておく必要があります。
設定ファイルの詳細
上記までの設定が終了したら、いったん
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
と入力して、Heartbeatサービスを終了させます。
ここからcib.xmlの編集に取りかかります。記述ルールは/usr/share/heartbeat/crm.dtdに示されています。なお、DTDファイルの読み方についてはここでは割愛します。
最初に簡単にcib.xmlについて説明しておきましょう。最もシンプルな形式のcib.xmlは
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
のような構造になります。先ほどのインストール作業後に生成されたcib.xmlと比較してみてください。
configuration要素内の各要素の大まかな説明は以下のとおりです。
名称 | 意味 |
---|---|
crm_config | クラスタの全般的なオプションを定義する |
nodes | クラスタを構成するノードについて定義する。ノード部のIDは UUID形式によって表記するため、一度空で起動し、自動設定させる方がよい |
resources | 使用するリソースを定義する。リソースを直接(primitive要素)を定義することも 可能だが、clone、group、master_slave要素を用いてグルーピングを行うことも可能 |
constraints | どのリソースがどこに配置されるかという情報やその優先度、それらリソースの 順序関係を定義する |
Copyright © ITmedia, Inc. All Rights Reserved.