特集
» 2010年09月08日 00時00分 公開

Heartbeat+Pacemaker+DRBDで高可用Linux:体験! 新しくなったLinux-HA (3/3)

[岩崎のぼる,@IT]
前のページへ 1|2|3       

Pacemakerによるリソース設定

 Pacemakerでは、「CIB.xml」というXMLファイルで設定と状態が管理されています。これは動的なファイルであり、すべてのノードで同期を取る必要があるため、「CRM」と呼ばれるCLIのツールを通じて設定を行います。

 Pacemakerは、Webサーバ(HTTPd)の監視にserver-statusを使用します。デフォルトの設定ではserver-statusは無効になっているため、/etc/httpd/conf/httpd.confの中のserver-status部分のコメントアウトを外し、有効にします。

<Location /server-status>
  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from 127.0.0.1
</Location>
httpd.confを設定
# crm
crm(live)# configure
crm(live)configure# property stonith-enabled="false"
crm(live)configure# property no-quorum-policy="ignore"
crm(live)configure# property default-resource-stickiness="200"
Pacemaker全体の設定

リソースの設定

crm(live)configure# primitive res_drbd0 ocf:linbit:drbd \
    params drbd_resource="r0" drbdconf="/etc/drbd.conf" \
    op monitor interval="20s"
crm(live)configure# ms ms_drbd0 res_drbd0 \
    meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
DRBDの設定
crm(live)configure# primitive res_filesystem ocf:heartbeat:Filesystem \
    params device="/dev/drbd0" fstype="ext3" directory="/mnt/drbd0" \
    op monitor interval="20s"
ファイルシステムのマウントの設定
crm(live)configure# primitive res_httpd ocf:heartbeat:apache \
    params configfile="/etc/httpd/conf/httpd.conf" port="80" \
    op monitor interval="20s"
Webサーバの設定
crm(live)configure# primitive res_ip ocf:heartbeat:IPaddr2 \
    params ip="192.168.33.200" cidr_netmask="24" nic="eth0" \
    op monitor interval="10s"
アクセスするための仮想IPアドレスの設定
crm(live)configure# group rg_web res_ip res_filesystem res_httpd
リソースグループの設定
crm(live)configure# colocation c_rg_web_on_drbd0 inf: rg_web ms_drbd0:Master
crm(live)configure# order o_drbd_befor_rg_web inf: ms_drbd0:promote rg_web:start
起動順序と関連性の設定

 設定ができたら、設定値の書式を確認して適用(コミット)します。設定値が正しくない限り適用できないので、書式エラーが出ないように気を付けてください。

 設定値を編集するには、「edit」コマンドを実行してください。するとテキストエディタ「vi」が起動し、設定内容を修正できます。

crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# exit

 適用すると、その設定が即座に反映されます。crm_monコマンドを使ってクラスタの状態を確認できます。

# crm_mon
============
Last updated: Mon Aug 16 15:31:38 2010
Stack: Heartbeat
Current DC: hoge2.example.com (***) - partition with quorum
Version: 1.0.9-***
2 Nodes configured, unknown expected votes
2 Resources configured.
============

Online: [ hoge1.example.com hoge2.example.com ]

Resource Group: rg_web
  res_ip (ocf::heartbeat:IPaddr2): Started hoge1.example.com
  res_filesystem (ocf::heartbeat:Filesystem): Started hoge1.example.com
  res_httpd (ocf::heartbeat:apache): Started hoge1.example.com
Master/Slave Set: ms_drbd0
  Masters: [ hoge1.example.com ]
  Slaves: [ hoge2.example.com ]

動作確認(フェイルオーバー実験)

 Pacemakerの操作はすべてCRMを使用します。CRMを使用して正常にサービスが切り替わるかどうか検証するには、実際にWebサーバにアクセスしながら、リソースの切り替え(スイッチオーバー)が行われることを両ノードで試験します。

 リソースの状態はcrm_monコマンドで常時リアルタイムに表示することが可能なので、スタンバイ側サーバから常時監視しながら操作します。

# crm
crm(live)# resource
crm(live)resource # migrate rg_web
スイッチオーバー

 migrateコマンドを実行すると、サービスが停止し始め、スタンバイサーバにサービスが移っていきます。migrateコマンドはメンテナンス用のコマンドであるため、そのまま放置するとサービスが切り替わらなくなってしまいます。サービスの切り替えが終了したらunmigrateコマンドを実行してHAクラスタ状態に復帰します。

crm(live)resource # unmigrate rg_web

 Webブラウザから仮想IPに指定したIPアドレスにアクセスして、サーバが切り替わった後でも同じデータが表示されていることを確認します。


 今回は、Heartbeat、PacemakerとDRBDを組み合わせた基本的なHAクラスタ環境の構築方法を紹介しました。このアクティブ/スタンバイ構成がLinux-HAで構築するクラスタ環境すべての基本となりますので、動作をしっかりと把握しておきましょう。

 次回は、このアクティブ/スタンバイ構成のHAクラスタ環境に加え、DRBDによるデータの遠隔保存(ディザスタリカバリ)サイトの構築と、DRBDとLVMの組み合わせによるバックアップ手法をご紹介します。ご期待ください。

コラム〜姉妹でよく分かるアクティブ/スタンバイHAクラスタ〜

 アクティブ/スタンバイのHAクラスタ環境の動きは、監視サーバから監視・命令を行いノードを制御する方式に比べて動作が複雑です。重要なことは、「サーバの気持ちになって考えること」にほかなりません。

 え? サーバの気持ちといわれても、サーバに心なんてないから分からない? 違います。そんなことではサーバの気持ちはおろか、Nintend○ DSの中の彼女の気持ちをつかむことすら微妙なラインです。サーバマシンに心を求めるのではありません。そう、サーバマシンに心を実装するのは、いまこれを読んでいる画面の前のアナタです。

 どうやって各ノードに心を実装するかですが、Linux-HA Japanの橘べるちぇが勝手に推奨する構成があります。それが、アクティブ/スタンバイの「HAクラスタ構成」ではなく「姉妹構成」です。

 ……ついてきてください。ブラウザの閉じるボタンをクリックするのはまだ早いです。

 ここではHAクラスタ環境を構成する2台を、「2台」ではなく「2人」と呼びます。この2人は非常に仲の良い姉妹です。姉(アクティブサーバ)はしっかり者で、仕事(サービス提供)や妹の面倒見(監視)もよく、妹(スタンバイサーバ)は、そんな姉を見守って(監視)います。妹は姉が倒れても自分が仕事を代われるように、常に連絡を取り合っています。

 美しい姉妹愛です。

 ここで姉が、インフラエンジニアとしてのアルバイトで無理をし過ぎて突然の病に倒れてしまうと、健気な妹は、動けない姉に代わって自分が仕事をしようとします。妹は姉から何もいわれずとも、自ら進んで自発的に行動を開始します。

 涙が出るほどけなげな妹です。

 こうして、普段姉が行っている仕事(サービス提供)は、姉に何かが起きても妹が引き継ぐことによって守られる形となります。姉はそのままでは仕事に復帰できないため、画面の前のアナタがお医者さんとなり、姉の病を治してあげましょう。

 いかがでしょうか。相互監視によるアクティブ/スタンバイ構成(姉妹構成)の動きのイメージをつかんでいただけたでしょうか。異常発生時のサーバの気持ちと、どのような行動を取るかもご理解いただけたかと思います。この2人の姉妹は「Linux-HA Japan公式イメージキャラクタ」で、このサイトで詳しく解説されています。


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。