サービスの継続を確保するはずのHeartbeat自体が不安定になってしまったら、いったいどうすればいいのでしょう? この問題を解決してくれる2つの機能「Watchdog」と「STONITH」の使い方を紹介しましょう。
前回まで、オープンソースのHA(高可用性)クラスタ構築ソフトウェア「Heartbeat」の導入・設定方法を解説してきました。これを踏まえて今回は、予告どおり、Heartbeatのユニークな機能である「Watchdog」と「STONITH」に触れていきたいと思います。
第1回でも紹介したとおり、この2つは、Heartbeat自身の「自浄機能」ともいえる役割を果たすものです。簡単に説明しますと、
名称 | 役割 |
---|---|
Watchdog | 稼働しているノードが不安定になったときに、ホストをOSごと再起動する機能 |
STONITH | 相手ノードが不安定になったときに、相手ノードをOSごと再起動/停止する機能 |
となります。
Heartbeatはあるサービスを監視し、そのサービスやOSに不具合が生じた場合にフェイルオーバーを行うことで、サービスの継続を確保します。しかしながら、Heartbeat自体が不安定になってしまった場合、サービスの二重起動などが発生して、いわゆる「スプリットブレイン(split brain)現象」に陥り、正常なサービスの継続が行えなくなってしまいます。
また、heartbeatプロセスから起動される子プロセスがkillされたときにも、OSの再起動などが行われることがあります。
そうしたとき、WatchdogやSTONITHの機能を利用することで、こうした問題を回避できます。
では、それぞれの設定方法とテスト方法を紹介していきましょう。Heartbeatも含めた全体的な設定環境は、下記のとおり、前回紹介したApache向けの設定を流用することにします。
また後述するコラムのように、新たにバージョン2.1.3がリリースされましたので、以降の解説はこのバージョンをベースに進めていきたいと思います。
2007年12月21日に、Heartbeatの最新バージョンとなる2.1.3がリリースされました。ここでの主な変更点としては、
があります。
例えばTomcatは、いままでもHeartbeatから使用できなかったわけではありません。しかしTomcat用RAが提供されたことにより、使用に当たっての敷居が低くなりました。実際のところ、ApacheとTomcatを組み合わせて使用されているケースも多いので、そうしたサイトでもHeartbeatを導入するメリットが増えたと思います。
また、Xen用RAがXenの最新版に追従したことも、現在のリソースリッチなハードウェア状況を考えるとうれしい限りです。個人的には、次期バージョンでは、DRBD(http://www.drbd.org/)の最新版(8.x系)への対応に期待したいと考えています。
なお、記事の執筆時点では、まだCentOS用のパッケージは提供されていませんが、これまで同様、間もなく提供されると思います。またRHEL用のものは、Heartbeat日本語サイトにて公開されています。
Copyright © ITmedia, Inc. All Rights Reserved.