HAクラスタリング技術

 HAクラスタリング技術は,データや状態の再現が必要な場面,つまり復旧の完全性を求められるときに利用する。Webシステムでは,DBサーバーの可用性向上に多用される(図1右)。障害で停止したサーバー機のセッション情報を失わない(=使い勝手を悪化させない)ことを目的に,WebサーバーやAPサーバーに適用されることもある。例えばAPコンテナの「Tomcat」であれば,設定ファイル“server.xml”の<Cluster>を設定すると,HAクラスタリング技術を適用できる。

図1●冗長化を考慮したシステム構成例
図1●冗長化を考慮したシステム構成例
この例では,「負荷分散クラスタリング技術」と「HAクラスタリング技術」を組み合わせている。HTTPDとAPコンテナを冗長化するために負荷分散クラスタリング技術を,DBMSを冗長化するためにHAクラスタリング技術を,それぞれ利用する。この構成では,負荷分散装置以外の単一故障個所(SPOF)はないので,可用性が高い
[画像のクリックで拡大表示]

 HAクラスタリング技術は,同等の機能を提供するサーバー機を複数配置する点は負荷分散クラスタリング技術と同様だが,共有ディスクを通じてサーバー機のデータや状態をサーバー間で共有している点が大きく異なる。HAクラスタリング技術を適用したサーバー機はどれも同等のデータや状態を保持するため,あるサーバーで障害が発生しても,ほかのサーバーがデータや状態を引き継ぐことができる。このように,障害が発生したサーバーの情報を引き継いで作業を継続することを,「フェールオーバー」と呼ぶ。

 HAクラスタリング技術の代表的な実装形態が,「Active-Standby構成」である(図2左)。Active-Standby構成とは,複数台のサーバーの中から1台以上を待機系として休眠状態にする方法である。

図2●「Active-Standby構成」と「Active-Active構成」の仕組み
図2●「Active-Standby構成」と「Active-Active構成」の仕組み
HAクラスタリング技術は大きく2種類に分けられる。稼働系(Active)と待機系(Standby)を組み合わせて構成する「Active-Standby構成」と,稼働系だけで構成する「Active-Active構成」である。Active-Active構成の場合,正常時に負荷分散による高速化が見込める
[画像のクリックで拡大表示]

 Active-Standby構成を採用した場合,障害時には,「クラスタリング・ソフト」と呼ばれるミドルウエアが休眠状態のサーバー機を稼働状態に切り替え,フェールオーバーする。障害の発生を検出するため,クラスタリング・ソフトは,ほかのサーバー機を定期的に監視している。この定期的な死活監視は,心臓の鼓動に例えて「ハートビート」と呼ぶ。クラスタリング・ソフトはほかに,各サーバー機から共有ディスクに読み書きする際の排他制御などを実施している。

 Active-Standby構成とは別に,「Active-Active構成」と呼ぶ方法もある(図2右)。この構成は,複数台配置したサーバーのすべてを稼働させ,それらで並列処理する方式だ。前述した負荷分散クラスタリング技術と似ているが,障害が発生したサーバー機のデータや状態はほかのサーバー機で引き継げる。負荷分散クラスタリング技術の長所と,Active-Standby構成の長所を組み合わせたイメージだ。Tomcatでイluster?v素を設定した場合はActive-Active構成となる。

 こう説明すると,Active-Standby構成よりもActive-Active構成の方が優れていると感じるかもしれないが,そうとも言い切れない。確かにActive-Standby構成は,Active-Active構成と比べると,平常時の処理の高速化は期待できないし,サーバー機やサービスの起動が必要な分だけフェールオーバーに要する時間もかかる。しかし半面,複数のWebシステムで待機系サーバーを共用するといった運用が可能なので,Webシステムの総数が多いほど,結果的にサーバー台数を減らせる(=コストを削減できる)可能性がある。また,Active-Standby構成では,障害時にサーバー台数が減らないので,縮退運転中でも通常稼働中と同等のサービス性能を保ちやすい利点もある。

 HAクラスタリング技術でサーバー機のデータや状態を保持する共有ディスクは,SAN(Storage Area Network)やNAS(Network Attached Storage)といったネットワーク共有型の物理ディスクを使うことが多い。しかし,ミラーリング(同期)を設定した複数の物理ディスクや,レプリケーション(複製)している複数のデータベースなどを,共有ディスクの代わりに使うこともできる。クラスタリング・ソフトによっては,各サーバー間のメモリー間通信を利用して,メモリー空間を共有ディスクの代わりにするケースもある。

 例えば図3では,クラスタリング・ソフト「PGCluster」を活用して複数のDBサーバーを共有ディスクの代わりに使った。この構成は,システム担当者から「障害時にサービスを止めることなく復旧したい」「多少はコスト高になっても構わない」という要求があったので採用した。PGClusterは,DBサーバーが3台以上,データベース間を同期させるレプリケーション・サーバーが1台以上,それぞれ必要になるので,導入コストは高くなる。しかし,仮に1台のDBサーバーが故障しても,残りの2台で縮退運転できるし,故障したサーバーが直ったら,2台のうちの1台から修理したサーバーにデータを同期させることで,サービスを止めずに縮退運転から通常運転へと回復できる。その代わり,もし,「導入コストをかけずに可用性を高めたい」「拡張性はあまり必要ない」「復旧時に少々のサービス停止があっても構わない」という要件であったなら,「pgpool」に落ち着いただろう。

図3●クラスタリング・ソフト「PGCluster」の構成要素と動作
図3●クラスタリング・ソフト「PGCluster」の構成要素と動作
PGClusterは,オープンソースのRDBMS「PostgreSQL」でActive-Active構成のクラスタリングを実現するソフト。負荷分散クラスタリング技術とデータ同期技術を組み合わせ,HAクラスタリング技術と同等の機能を実現する
[画像のクリックで拡大表示]

高安 厚思(たかやす あつし) オープンストリーム テクニカルコンピテンシーユニット 主管システムズアーキテクト
銀行系シンクタンクでオブジェクト指向技術の研究に携わった後,大手SI業者でアーキテクチャ構築やプロセス研究を担当。現職ではSOA(Service Oriented Architecture)を中心とする研究開発とアーキテクチャ構築に従事している