MSCS(Microsoft Clustering Service)とは
MSCS(Microsoft Clustering Service)は、
マイクロソフトが開発したWindows Server
オペレーティングシステム上で、高可用性を実現するための
フェイルオーバークラスタリング技術です。この技術は、Windows NT 4.0 Enterprise Editionで初めて導入され、その後Windows 2000 Advanced Server以降のバージョンで標準機能として実装されました。Windows Server 2008からは「Windows Server Failover Cluster (WSFC)」という名称に変更されていますが、基本的な概念はMSCSのものを引き継いでいます。
MSCSの概要
初期のクラスタリングサービスは、専用の
ソフトウェアを別途購入する必要がありましたが、MSCSはOSに標準でクラスタリング機能が組み込まれているため、より手軽に高可用性システムを構築できるようになりました。Windows Server 2003では、Enterprise EditionとDatacenter Editionで利用可能です。これにより、多くの企業が比較的低コストで冗長化システムを導入できるようになり、システムの信頼性向上に貢献しました。
構成
MSCSの基本的な構成は、2台以上の
サーバーと、共有ストレージ(SAN: Storage Area Network)で構成されます。
サーバー間では、ハートビートと呼ばれる通信を行い、他ノードの生存状況を監視します。このハートビート通信は、サービス用のネットワークとは別の専用ネットワークを使用することが推奨されています。共有ストレージには、クラスタの構成情報や、クォーラムと呼ばれる情報が格納されており、障害発生時には、このクォーラムへのアクセス権を基に、サービスを停止させるノードを決定し、スプリットブレインシンドロームを防ぎます。
ローカルクォーラムクラスタ
最小構成としては、1台の
サーバーのみで構成するローカルクォーラムクラスタがありますが、この構成では
フェイルオーバーは行われず、
ソフトウェアのテストなどに利用されます。この構成は、実際の運用環境での高可用性確保を目的としていないことに注意が必要です。
マジョリティセットノード構成
Windows Server 2003のMSCSでは、2台以上の
サーバーで共有ディスクを使用しないマジョリティセットノード構成もサポートされています。この構成では、障害発生時に、過半数(クラスタを構成する全
サーバー数の半分+1台)の
サーバーを含むパーティションがサービスを継続します。例えば、3台の
サーバーで構成されたクラスタの場合、2台以上の
サーバーが正常に動作していれば、サービスを継続できます。しかし、2台構成の場合、1台に障害が発生すると残りの1台では過半数を満たせないためサービスを継続できません。この構成は、SANがコスト面や地理的な制約で使用できない場合に有効な選択肢となります。
性能と課題
Windows NT 4.0でMSCSが導入された当初は、待機系
サーバーは
フェイルオーバーが発生するまで待機状態のままで、リソースの無駄が多いという問題がありました。また、待機系
サーバーを平常時に活用できないため、パッチ適用などの運用コストもかさみました。さらに、設定が複雑で、Windows NT 4.0自体の保守性の低さもあいまって、運用上の課題が多かったと言えます。しかし、Windows 2000以降では、双方向スタンバイが可能となり、平常時にそれぞれの
サーバーで別のアプリケーションを実行できるようになり、リソースの有効活用が進みました。
一般的なクラスタリングシステムと同様に、MSCSにおいても障害発生から
フェイルオーバー完了までの間、サービスは一時的に停止します。そのため、アプリケーション側では、このサービス停止を考慮した設計と実装が必要となります。具体的には、トランザクション処理のロールバックや、セッション情報の保持など、
フェイルオーバーを意識した開発が不可欠です。
MSCSは、可用性の高いシステム構築において重要な役割を果たしますが、その構成や動作を理解し、適切な設計と運用を行うことが、システムの安定稼働には不可欠です。