サーバ・クラスタは別名フェイルオーバー・クラスタ、HAクラスタ(High Availabilityクラスタ)などとも呼ばれる。“HA”が示すとおり、サーバ・クラスタは高可用性ソリューションである。つまり、限りなくサーバを停止させずに稼働させることが目的である。
さて、高可用性でいうところの「限りなく」とはどのようなものを指すのか。一般的にITでいう高可用性は99〜99.99%(最近では99.999%と定義することもある)の年間稼働率を求めることを指す。一見99.99%というと、ほとんど止まらないように思えるが、1年間で約1時間の停止が見込まれることになる。
安定稼働してしまえば、それほどサーバは停止しないと思うかもしれないが、ビルなどの停電対応やセキュリティ・パッチの適用、ハードウェア・メンテナンスなど、停止する機会は案外と多い。そのようなサーバを停止せざるを得ない作業について、停止時間を極力短くしようというのが高可用性の考え方である。高可用性ソリューションを適用する場合には、ある程度の停止時間を考慮し、設計、構築、運用する必要がある。ちなみに、99.999%以上の稼働率のシステムは、High Availability(ハイ・アベイラビリティ)システムに対して、Fault Tolerance(フォルト・トレランス)システムと呼ばれる。
稼働率 | 停止時間(年間) | 補足 |
---|---|---|
99.9999% | 32秒 | Fault Tolerance:宇宙飛行・航空管理・高度医療などで求められる。高コスト |
99.999% | 5分15秒 | |
99.99% | 52分34秒 | High Availability:多くのビジネス・アプリケーションで使用。低コスト |
99.9% | 8時間46分 | |
99% | 87時間36分 | |
表2 稼働率と停止時間 |
クラスタを直訳すると「群れ・集団・集合体」という意味で、サーバ・クラスタとはサーバの集合体を意味する。クライアントへは共通のインターフェイス(仮想サーバ)を提供することで、あたかも1台のサーバに見せ掛けている。そして、複数台あるサーバのうち、いずれかのサーバが稼働していれば、クライアントにサービスを提供できる状態にすることで高可用性を実現する。
サービスを提供するサーバの切り替えは、サーバ単位やアプリケーション単位などある程度自由に構成が可能だ。例えば、ノードAとノードBという名前の2台のサーバでサーバ・クラスタを構築し、かつデータベース・サービスを構成しているとする。そして、DBServerという仮想サーバ名を付けたとしよう。この場合、クライアントはDBServerという名前でアクセスすることで、ノードAとノードBのどちらのサーバがデータベース・サービスを提供しているかを意識せずにアクセスできる。
なお、複数台のサーバが同じサービスを提供するためには、情報(データ・ファイル)の共有が必要となるため、サーバ間で共有使用できる共有ディスクが必要となる。
サーバ・クラスタがどのようなシステムやアプリケーションで利用されているかを説明する前に、サーバ・クラスタと似たような構成である負荷分散システム(ロード・バランシング・システム)との違いについて明確にしておこう。負荷分散システムは、サーバ・クラスタと同じく複数台のサーバで1台の仮想サーバを構成し、クライアントからの処理をいずれかのサーバで応答する。ここまでは、サーバ・クラスタとほとんど同じである。
ではいったい何が異なるのか。決定的な違いは、共有ディスクを持つか持たないかである。共有ディスクを持つということは、データをリアルタイムで共有できるということである。複数のノードからデータが更新されたとしても、同じディスクを参照しているため、不整合は発生しない。しかし、負荷分散システムでは、通常この共有ディスクは持たないため、データの書き込みに対応できない。その代わり負荷分散システムでは、静的なデータで構成し、クライアントからの要求を振り分けるだけなので 、サーバ台数の拡張(スケールアウト)が比較的容易に行える。このため、クライアントからの要求を分散して処理するのに優れている。主に、静的な情報を提供するWebサーバなどのアプリケーション・サーバでよく利用される。
一方、サーバ・クラスタのような共有ディスクを保持する仕組みは、複数のサーバからのディスク書き込みを制御するため複雑化しやすく、負荷分散システムと比べスケールアウトは容易ではない。負荷を分散する目的としては不適切である。従って主な用途としては、データ更新が必要なデータベース・サーバ、メール・サーバ、ファイル・サーバなどが挙げられる。
整理すると、サーバ・クラスタは、データ更新が必要なシステムの高可用性を実現し、負荷分散システムは読み取り専用の負荷分散と高可用性を提供するシステムといえる。一般的な構成としては、次の図のように、Webサーバのようなフロント・サイドは負荷分散システムで構成し、そこから発生する書き込みはサーバ・クラスタで行う構成を採用することが多い。
Copyright© Digital Advantage Corp. All Rights Reserved.