heartbeatHeartbeatでかんたんクラスタリング(3)

HAを見守る「Watchdog」と「STONITH」


VA Linux Systems Japan株式会社
花島タケシ
2008/1/23


heartbeat STONITHも使ってみよう

 STONITHについても、初回の記事で簡単に説明しました。これは「Shoot The Other Node In The Head」の略で、監視対象ノードの異常を検出したときに、強制的にそのノードをダウンさせる役割を果たします。

 なぜこうした機能が必要かというと、コントロールが利かないノードを強制的に排除することで、IPアドレスが重複したり、複数のノードが「自分がプライマリである」と思い込むような状況をなくし、全体としてのデータ損失を防ぐためです。

 「対象ノードをダウンさせる」ためには、相手のOSが反応を返さないケースも考慮して、サービスを提供するOSとは別の経路でOSにアクセスする必要も出てきます。

 そのため、サーバマシンの中には、専用の管理ポートを提供するモデルがあります。こうした専用ポートは、起動しているOSに依存せずに動作しています。また、同様の機構を提供するオープンな規格として、IPMI(Intelligent Platform Management Interface)というものがあり、これをそのままサポートしているマザーボードベンダも存在します。これらのポート用のプラグインもいくつか提供されており、STONITHの対象として利用可能です。

 STONITH用プラグインは、/usr/lib/stonith以下にいろいろと収められています。例えばibmrsariloeimpilanなどが前述のポート用プラグインになります。

 すべての人が管理専用ポートを備えたサーバを所有しているわけではありませんので、以降では、sshを用いたSTONITH(ssh STONITH)を例に取って解説を行います。ただしssh STONITHでは、OS自体が不安定になった場合には正常動作しないことがあります。さらに前提として、パスフレーズの入力を省くために、パスフレーズなしのSSHキーを作成しておく必要があります。

SSHキーの設定

 まず、tomatoで、

# ssh-keygen

と入力してキーの作成を開始します。その後、パスフレーズの入力を求められますので、何も入力せずにEnterを押します。作成された/root/.ssh/id_rsa.pubの内容を、surrの/root/.ssh/authorized_keysに入力します。そしてtomatoから、

# slogin surr

のように入力して、パスワードやパスフレーズを打ち込まなくてもsurrにログインできることを確認してください。同様に、surrからtomatoへログインできるようにも作業します。

cib.xmlの編集

 STONITH機能を使うときも、これまでと同様、設定ファイルである「cib.xml」ファイルを編集する必要があります。すべて記述すると長くなってしまうので、サンプル設定ファイルを用意しておきました。下記を参照してください。

サンプルダウンロード:
サンプル STONITH用設定ファイルのサンプル(cib.xml.apache_stonith)

 基本的には第2回で紹介したApache用設定に追記を加えたものです。どこが変わったかを確認してみましょう。

 まず、resources要素内にprimitive要素で始まる2つのリソースが、またconstraints要素内にもそれらに対応したrsc_locationで始まる制限が追加されています。リソース部はまさしくSTONITHの設定そのものです。

 さらに、ノードsurrを落とすためのリソース「kill_surr」はtomatoでしか起動しないように、同様にtomatoを落とすためのリソース「kill_tomato」はsurrでしか起動しないように制限を加えています。

 今回は練習のため、ここで紹介したサンプル設定ファイルのままではSTONITHが有効にならないようにしています。このファイルを各ノードにコピーし、Heartbeatサービスを起動した後に、クラスタが稼働している状態で設定変更をしてみましょう。なお、このときWatchdogの設定は削除しておきます(ha.cfからwatchdog部を削除してからHeartbeatサービスを起動します)。

 まずtomatoもしくはsurrのどちらかで、

# cibadmin -o crm_config -U -X ‘<attributes><nvpair id=”stonith-enabled” name=”stonith-enabled” value=”true”/></attributes>’

と入力します。その後、

# cat /var/lib/heartbeat/crm/cib.xml

として、どこに入力されたかを確認してみましょう。

 この状態でようやく、STONITH機能が有効になりました。では、どちらかのノードでWatchdogのときと同様に、MCPプロセスをkillしてください。ha.cfで設定したdeadtime時間を経過すると、そのノードが再起動されると思います。

 以上で、WatchdogとSTONITHの解説は終了です。特にSTONITHの設定には複雑な面があり、ミスをすると予期せぬ挙動を示すこともあります。実運用の際はくれぐれも注意して設計・記述を行ってください。

 さて次回は、DRBDとの連携を紹介し、バージョン2以降で実装されたマスター/スレーブモードについても解説したいと思います。

3/3

Index
Heartbeatでかんたんクラスタリング
第3回 HAを見守る「Watchdog」と「STONITH」
  Page 1
自浄機能として働く2つの機能
コラム 最新バージョン、2.1.3リリース
  Page 2
Watchdogを使ってみよう
 Watchdogの稼働テスト
 Softdogの設定
 ほかのプロセスをkillしたら?
  Page 3
STONITHも使ってみよう
 SSHキーの設定
 cib.xmlの編集

Linux Square全記事インデックス


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH