24時間止められないシステムの多くは,HAクラスタリング・ソフトが活用されています。従来,こうしたシステムはUNIXサーバーで構築されていましたが,近年,Linuxサーバーも使われるようになってきました。それに伴い,Linuxサーバー用のHAクラスタリング・ソフトが増えてきています。

 Linuxサーバーのクラスタリングは,現状では商用のHAクラスタリング・ソフトが多く利用されています。代表的なソフトには,サイオステクノロジーの「LifeKeeper」,NECの「CLUSTERPRO」,ヒューレット・パッカードの「ServiceGuard」などがあります。

 また,データベース管理システムやアプリケーション・サーバーなどがHAクラスタリング・ソフト相当の機能を自前で持っている場合もあります。これらの機能を利用する際には,HAクラスタリング・ソフトは不要となります。ただし,提供される監視機能などが不充分である場合には,HAクラスタリング・ソフトが利用される場合があります。

 このような市場の流れを受け,他のミドルウエアやアプリケーションと同様に,HA クラスタリング・ソフトもオープンソース・ソフト(OSS)で開発されています。

OSSのHAクラスタリング・ソフト「Heartbeat」

 では,無償で利用できるOSSのHAクラスタリング・ソフトを見ていきましょう。OSSのHAクラスタリング・ソフトはいくつかありますが,最も活発にコミュニティ活動が行なわれている「Heartbeat」というソフトを用います。

 Heartbeatは,2005年にバージョン2がリリースされた時点で,商用ソフトに肩を並べるほどの機能が備わりました(表1)。その後,開発や修正が活発に実施され,問題なく利用できるまで品質が向上しています。以下に,商用ソフトとの違いを説明します。

表1●Heatbeatと商用クラスタリング・ソフトとの比較
表1●Heatbeatと商用クラスタリング・ソフトとの比較
[画像のクリックで拡大表示]
  • クラスタノード数: HAクラスタリング・ソフトで管理できる最大のコンピュータ接続台数です。Heartbeatは最大16ノードまでですが,商用ソフトには32ノードまで可能なものがあります。
  • クラスタ構成バリエーション: サービスを,複数のコンピュータでどのように冗長化させるかのバリエーションです。「1+1」は,最もシンプルな現用系/待機系のクラスタ構成。「N+1」は,2台以上のコンピュータが複数のサービスを提供し,それらに対する待機系を1台に集約したクラスタ構成を示します。「1+1Cross」は,2台それぞれのコンピュータがサービスを提供し,もう一方がそれぞれの待機系となる双方向スタンバイと呼ばれるクラスタ構成を示しています。この点について,Heartbeatは商用ソフトと同レベルです。
  • 監視種類/ノード監視: コンピュータの電源故障や,カーネルパニックなどが発生したときに,その故障を検知する機能です。インターコネクトLANで,お互いのコンピュータから定期的にパケットを送受信するハートビート通信によって実現される製品が多くあります。Heartbeatは商用ソフトと同レベルの監視が可能です。
  • 監視種類/ディスク監視: ディスクが正常に動作していることを監視する機能です。指定したデバイスに対して,定期的に読み込み処理を行う監視方法が多くあります。主に,クラスタリングされたすべてのコンピュータから接続される,共有ディスクを監視するために利用されます。Heartbeatは商用ソフトと同レベルの監視が可能です。
  • 監視種類/ネットワーク監視: ネットワークが正常に動作していることを監視する機能です。指定したIPアドレスに対して,定期的にping通信を行う監視方法が多くあります。Heartbeatは商用ソフトと同レベルの監視が可能です。
  • 監視種類/アプリケーション監視:アプリケーションが正常に動作していることを監視する機能です。アプリケーションによって監視方法は異なります。シェルスクリプトで監視処理が実装されていることが多く,データベース管理システムであれば,定期的にSQL文を発行するシェルスクリプトを使って監視するものが多くあります。Heartbeatは商用ソフトと同レベルの監視が可能です。
  • 監視種類/自己監視: HAクラスタリング・ソフト自体が正常動作していることを監視する機能です。監視方法は,製品のアーキテクチャによって様々です。Heartbeatは商用ソフトと同レベルの監視が可能です。
  • スプリットブレイン対策: ハートビート通信が何らかの理由によって不通となり,複数のコンピュータでサービスが起動してしまう事象を,スプリットブレインといいます。スプリットブレインが発生すると,例えば共有ディスク上のデータが破壊されるなど,致命的な状態となる可能性があり,このような事象発生を防ぐための機能です。

 Heatbeatが備える「SF-EX」機能は,共有ディスク上にロック情報を配置し,複数のコンピュータから,同時にマウントされることを防ぐもの。「STONITH」機能は,ハートビート通信が不通になったときに,別のコンピュータを電源断などで強制的に停止させるものです。「Qurum」は3台以上のクラスタ構成において,ハートビート通信の不通によってクラスタ・グループが分裂したとき,過半数に満たないクラスタグループを停止させる機能になります。

 商用ソフトが備える「SCSI Reservation」は共有ディスクに対して,SCSIコマンドを用いて,特定のコンピュータからのみアクセスを許可するようにする方法です。また「クォーラムサーバ」とはクラスタ化されるコンピュータ以外に,第3者としてのコンピュータを配備して,このサーバが複数のサービスが起動されないよう監視する方法になります。

  • SNMP対応: フェイルオーバーが発生したときなどに,「SNMP Trap」を送信して,運用保守者に通知を行なう機能です。Heartbeatは商用ソフトと同レベルの通知が可能です。