HAクラスタ(高可用性クラスタ)とは
HAクラスタ(High Availability Cluster)は、システムの一部に障害が発生した場合でも、サービスを中断することなく継続できるように設計されたコンピュータシステム構成です。これは、複数のコンピュータ(ノード)が連携し、互いに監視しあいながら、障害発生時には自動的に予備のシステムに切り替わることで実現されます。HAクラスタは、高可用性クラスタ、密結合型クラスタ、密結合クラスタとも呼ばれます。
冗長性とフェイルオーバー
HAクラスタの中核となる考え方は、冗長性(redundancy)です。システムを構成する要素(サーバ、ネットワーク、ストレージなど)を複数用意し、一つが故障しても他の要素が代替できるようにします。また、障害が発生した際に、サービスを稼働しているサーバから予備のサーバへ自動的に切り替える仕組みをフェイルオーバー(failover)と呼びます。HAクラスタは、このフェイルオーバーを迅速に行うことで、サービス中断時間を最小限に抑えることを目指します。
HAクラスタの構成
一般的に、HAクラスタは複数のノードで構成されます。これらのノードは、共有ストレージや共有メモリ領域などを利用して連携し、一つのシステムとして動作します。主な構成には、以下のパターンがあります。
アクティブ/スタンバイ構成 (N+1構成): 稼働中のノードがN台あり、障害発生時に備えて待機しているノードが1台ある構成です。通常時、待機ノードはサービスを提供していませんが、稼働ノードで障害が発生すると、その役割をすぐに引き継ぎます。この構成は、比較的分かりやすく、多くのシステムで採用されています。
アクティブ/アクティブ構成: 複数のノードが同時に稼働し、負荷分散と冗長性を両立させる構成です。一部のノードが故障しても、残りのノードでサービスを継続できます。負荷分散も行えるため、パフォーマンスの向上が見込めます。
スプリットブレインシンドロームとその対策
HAクラスタの弱点として、スプリットブレインシンドローム(Split Brain Syndrome: SBS)という現象が挙げられます。これは、本来1つのシステムとして動作するべきクラスタが、誤って複数のシステムとして動作してしまう状態を指します。SBSが発生すると、データの不整合や競合が発生し、最悪の場合、システム全体が停止してしまう可能性があります。
SBSを回避するために、多くのHAクラスタでは、クォーラムディスク(ロックディスク)やSCSIロックなどの技術を用いてノードの状態を監視し、必要に応じてノードを隔離するなどの制御を行っています。
HAクラスタの実現技術
共有ディスク: 複数のノード間で共有されるストレージです。データベースなどの情報を共有し、フェイルオーバー時にスムーズな引き継ぎを実現します。また、共有ディスクへのアクセスパスを複数持ち(ストレージマルチパス)、パスの障害時にもサービスを継続できます。
ハートビートLAN: ノード間の監視に使用される専用のネットワークです。ハートビートと呼ばれる監視用パケットを定期的に交換することで、各ノードの生存を確認しあいます。これにより、ノードの障害を迅速に検知し、フェイルオーバーの実行に繋げます。
HAクラスタの導入事例と製品
HAクラスタは、ミッションクリティカルなシステム、例えば、金融機関、医療機関、通信事業者などのシステムで広く利用されています。
商用
UNIX/
Linux環境向けのHAクラスタパッケージとして、
AIXのHACMP、
HP-UXのMC/ServiceGuard、
SolarisのOracle
Solaris Cluster、VxClusterServerなどがあります。
Linux環境では、LifeKeeperやCLUSTERPROなどが利用されています。また、Windows環境向けには、「Windows Server Failover Cluster」があります。オープンソースソフトウェアとしては、
Linuxで動作するPacemaker/Heartbeat/Corosyncなどが存在します。
まとめ
HAクラスタは、システムの高可用性を実現するために不可欠な技術です。冗長性、フェイルオーバー、障害監視などの技術を組み合わせることで、サービスの継続性を確保し、ビジネスの中断を最小限に抑えることができます。
関連用語:フォールトトレラントシステム、
疎結合クラスター、
Linux-HA