Availability:多くのビジネス・アプリケーションで使用。稼働率と停止時間クラスタを直訳すると「群れ・集団・集合体」という意味で、サーバ・クラスタとはサーバの集合体を意味する。クライアントへは共通のインターフェイス(仮想サーバ)を提供することで、あたかも1台のサーバに見せ掛けている。複数台あるサーバのうち、いずれかのサーバが稼働していれば、クライアントにサービスを提供できる状態にすることで高可用性を実現する。サービスを提供するサーバの切り替えは、サーバ単位やアプリケーション単位などある程度自由に構成が可能だ。ノードAとノードBという名前の2台のサーバでサーバ・クラスタを構築し、かつデータベース・サービスを構成しているとする。DBServerという仮想サーバ名を付けたとしよう。この場合、クライアントはDBServerという名前でアクセスすることで、ノードAとノードBのどちらのサーバがデータベース・サービスを提供しているかを意識せずにアクセスできる。複数台のサーバが同じサービスを提供するためには、情報(データ・ファイル)の共有が必要となるため、サーバ間で共有使用できる共有ディスクが必要となる。一般的なサーバ・クラスタ構成クライアントに対して仮想サーバを提供することで、複数台あるサーバをあたかも1台のサーバに見せ掛ける。これにより、いずれかのサーバが稼働していればクライアントにサービスが提供でき、高可用性が実現可能となる。(1)クライアントからの要求は仮想サーバが受け付ける。(2)仮想サーバが受け付けたリクエストを適切なサーバで処理する。(3)複数のサーバからの共有ディスクへの要求を調整してアクセスする。負荷分散システムとの違いサーバ・クラスタがどのようなシステムやアプリケーションで利用されているかを説明する前に、サーバ・クラスタと似たような構成である負荷分散システム(ロード・バランシング・システム)との違いについて明確にしておこう。負荷分散システムは、サーバ・クラスタと同じく複数台のサーバで1台の仮想サーバを構成し、クライアントからの処理をいずれかのサーバで応答する。ここまでは、サーバ・クラスタとほとんど同じである。決定的な違いは、共有ディスクを持つか持たないかである。共有ディスクを持つということは、データをリアルタイムで共有できるということである。複数のノードからデータが更新されたとしても、同じディスクを参照しているため、不整合は発生しない。負荷分散システムでは、通常この共有ディスクは持たないため、データの書き込みに対応できない。サーバ台数の拡張(スケールアウト)が比較的容易に行える。このため、クライアントからの要求を分散して処理するのに優れている。静的な情報を提供するWebサーバなどのアプリケーション・サーバでよく利用される。サーバ・クラスタのような共有ディスクを保持する仕組みは、複数のサーバからのディスク書き込みを制御するため複雑化しやすく、負荷分散システムと比べスケールアウトは容易ではない。負荷を分散する目的としては不適切である。従って主な用途としては、データ更新が必要なデータベース・サーバ、メール・サーバ、ファイル・サーバなどが挙げられる。整理すると、サーバ・クラスタは、データ更新が必要なシステムの高可用性を実現し、負荷分散システムは読み取り専用の負荷分散と高可用性を提供するシステムといえる。一般的な構成としては、次の図のように、Webサーバのようなフロント・サイドは負荷分散システムで構成し、そこから発生する書き込みはサーバ・クラスタで行う構成を採用することが多い。目的によって負荷分散とサーバ・クラスタを使い分けるとよい。(1)Webサーバは4台のサーバで処理を振り分けることで負荷分散する。(2)データベース・サーバは2台のサーバで共有ディスクを制御し、可用性を高める。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。