マイクロソフトのサーバ・クラスタは、「MSCS(Microsoft Cluster Service)」という名称で提供されているアクティブ−パッシブ型だ。Windows Server 2008からは「フェイルオーバー・クラスタ」と名称を変えたため「MSFC(Microsoft Failover Cluster)」と略すこともあるが、2008年11月現在ではMSCSと呼ぶのが一般的だ。
MSCSは、Windows Server製品の中でもEnterprise系以上のエディションのみで提供されてきた。Enterprise以上のエディションはMSCSが無償で利用できるわけだ。
Windows Server | MSCSサポート・エディション |
---|---|
Windows NT Server 4.0 | Enterprise Edition |
Windows 2000 Server | Advanced Server/Datacenter Server |
Windows Server 2003 | Enterprise Edition/Datacenter Edition |
Windows Server 2008 | Enterprise Edition/Datacenter Edition |
表5 WindowsのMSCS対応 |
MSCSは、Windowsのサービスの1つとして動作するソフトウェアによる制御のサーバ・クラスタだ。各サーバのクラスタ・サービス同士が通信をし合って、サーバ同士が調停することで、クラスタ・グループを形成する。この際の調停作業には共有ディスクが非常に重要な役割を果たしている。
MSCSは、アクティブ−パッシブ型のクラスタであるため、共有ディスクが単一のノードからしか参照できない。そこで共有ディスクが参照できるかどうかで、クラスタ・サービスのオーナーシップを制御している。正確にはクラスタ構成を管理するデータベースの構成情報(クォーラム・リソースと呼ぶ)を保持している共有ディスクの所有者が、稼働系ノードとしてサービスを提供することになる。
Windows NT Server 4.0、Windows 2000 Serverでは、共有ディスクにSCSIインターフェイスのみをサポートしていたが、Windows Server 2003からはSANやiSCSIといったネットワーク・ストレージもサポートされ、さらにWindows Server 2008からはSCSIのサポートが除かれ、ネットワーク・ストレージのみのサポートとなった。これはストレージの需要に沿った結果だろう。Windows Server 2003まではSCSIでの接続が主流であったため、ハードウェアによる互換性が懸念され、高価なクラスタ専用機を用いることが多かったが、今後はネットワーク・ストレージでの展開が多くなるため、高価なクラスタ専用機の需要は減る傾向になるかもしれない。
■MSCSの利点
MSCSの利点としては、ほとんどがHAクラスタの利点に当てはまる。MSCS固有の利点としてはWindowsならではの標準管理ツール、インストール・ウィザード、Active Directoryやほかのアプリケーションとの連携などがある。
●高可用性
MSCSでもHAクラスタで定義される一般的な99〜99.99%の可用性を実現する。MSCSの障害検知フローとしては、ノード停止、数回のハートビートによる検知、稼働系ノードのサービスダウン、共有ディスクの切り替え、待機系ノードのサービス起動という手順を踏むため、フェイルオーバーが完了するためには数十秒〜数分かかるものの、99.99%以上の高可用性を実現することが可能だ。
●最小限のダウンタイムによるメンテナンス
システムの運用では必ずソフトウェア、ハードウェアに関係なく定期的なメンテナンスが必要となる。その頻度は月次であったり、四半期であったり、はたまた重要な脆弱性や障害が発生したときなどさまざまである。その都度、サービス停止のプランニングや利用者への周知などを行うのは非常に手間がかかる。そこで、MSCSではローリング・アップグレードという考え方によるメンテナンスの手法が用意されている。ローリング・アップグレードは、メンテナンスを行うノードをフェイルオーバーさせ、待機系ノードがサービスを提供しているうちに、メンテナンスを行う手法だ。メンテナンスが終わったら同じようにフェイルオーバーして切り替え、順番にメンテナンスすることで最小限のダウンタイムでメンテナンスが可能になる。
■補足
Windows 2000 ServerのMSCSとWindows Server 2003のMSCSの混在環境がサポートされているため、Windowsのアップデートでさえローリング・アップグレードで対応可能であった。ただしWindows Server 2008は、ほかのWindowsバージョンとのMSCSの互換性がないため、ローリング・アップグレードはサポートされない。これは、Windows Server 2008が共有ディスクにSCSIをサポートしなくなったことによる考慮と思われる。
●拡張性
MSCSは、基本的にはクラスタ専用のハードウェアを必要としないため、ローリング・アップグレードと組み合わせることで、ハードウェアの限界まで拡張が可能だ。また、MSCSのノード追加は、すでに構成されているMSCSに「参加」という方式を取るため、ノード数の拡張も容易だ。つまり、スケールアップとスケールアウトがともに容易にできるメリットがある。
●容易な管理
MSCSはほかのWindowsサービスの管理と同様に、MMC(Microsoft Management Console)としてクラスタ・アドミニストレータという管理ツールが提供されている。そのため、専用の管理ツールを別途用意する必要はなく、ほかの管理ツールと同様に統合管理することも可能だ。また、MSCSの実態はサービスであるため、Windowsのサービスから確認できるなど、Windowsの管理に慣れていれば、比較的受け入れやすい。
●クラスタAPI
クラスタAPIというMSCSの管理を行うためのAPIが備わっているため、カスタマイズした管理が可能だ。例えばWebからMSCSを管理することも可能である。特にWindows Server 2008からは、PowerShellのサポートが行われているため、以前のライブラリによるAPI利用に比べ、カスタマイズのハードルも格段に下がったといえる。
●容易なセットアップと構成
MSCSに限らずWindowsを利用する利点としては、各種サービスや機能・役割のインストールや設定のほとんどにはウィザードが用意されており、容易に構成することができることにある。MSCSでも同様に専用のウィザードが用意されており、インストールから各種設定が可能だ。また、Active Directoryなどとの連携によるアカウント管理などをMSCSでも利用可能ということも利点の1つとして挙げられる。UNIX系のHAクラスタ・ソフトウェアなどでは、各種コマンドを実行して構成しなくてはならないため、事前学習などによる手間がかかる(ただし、スクリプト化などの再利用性のメリットはある)。MSCSではウィザード形式で環境の検証から構築までを実施できるため、容易に構成することが可能だ。
●容易なリソース構成
MSCSでは、クラスタ上で実行するアプリケーションやサービスの構成サポートが行われている。特にSQL ServerやExchange Serverなどのマイクロソフトのサーバ製品については、製品ごとにMSCS対応が加えられているため、細かい設定をせずともインストール・ウィザードで容易に構成できる。また、こういった製品でなくとも、ファイル・サーバやプリント・サーバの構成においても、数ステップの構成ウィザードを用いることで、必要なリソース構成をMSCSが自動的に行ってくれるため、構築にほとんど悩むことがない。
●簡単なトラブルシューティングと障害回復
MSCSの状態は、Windows上のほかのサービスと同様にイベント・ログに記録される。またMSCSは専用のロギング機構を持っており、コンポーネントによるアクション単位での詳細なログが出力されるので、障害を追及するための情報を集めやすい。これらの情報をマイクロソフトのサポートに連絡すればさらに解決が早い。
また、前述したようにMSCSはクラスタへの参加という形でクラスタ・ノードを構成できるため、障害が発生したノードを切り離し、新しいノードを加えるなどで暫定対応し、その間に落ち着いて障害の分析などを行えばよいという利点もある。
今回はMSCSを理解する事前準備として、一般的なサーバ・クラスタ(HAクラスタ)の概要を説明した。一般的に高可用性を実現するクラスタは無停止ではないということを理解してもらえれば、実際の運用設計にも支障はないだろう。MSCSについては、この時点ではアクティブ−パッシブ型のサーバ・クラスタであることを理解していただければ十分だ。次回以降、MSCSのシステム要件と各種機能を整理し、MSCSの構築方法について説明していく。
Copyright© Digital Advantage Corp. All Rights Reserved.