Windows のクラスター (MSCS / WSFC) と Windows のネットワーク負荷分散 (NLB) は共存ができないため、クラスター環境で IIS を冗長化した構成で使う場合には、[汎用スクリプト] を登録してクラスター化された IIS を作成していました。
Windows Server 2003 までは、[C:WINDOWSSystem32inetsrv] の [ClusWeb.vbs] [ClusFtp.vbs] を使用していました。
Windows Server 2008 以降では、これらのスクリプトは使用できず以下の技術情報に記載されているサンプルスクリプトを使用します。
# 2008 では 2003 で使用していたスクリプトが含まれてしまっているのですが、使用せずに以下の技術情報 (KB970759) のスクリプトを使用します。 2008 R2 では含まれなくなっています。
IIS 7. 0 の WWW (World Wide Web 発行サービスは、Microsoft Windows Server 2008 フェールオーバー クラスターで構成します。
Contents
■スクリプトの作成
まずは、汎用スクリプトで使用するためのスクリプトを準備します。
スクリプトに関しては上記の KB970759 に記載されているスクリプトを使用します。
今回は KB に書かれているサンプルスクリプトを [ClusWeb.vbs] として [C:WINDOWSSystem32inetsrv] に保存しました。
# ローカルディスクに配置しているのでクラスターの両ノードに保存しています。
■クラスターリソースの作成
汎用スクリプトで使用するスクリプトの作成が終わったら、クラスターに汎用スクリプトのリソースを作成します。
KB の情報とは異なり、クライアントアクセスポイント (コンピューター名 + IP アドレス) は作成していません。
# 今回はコアクラスターリソースのコンピューター名と IP アドレスを使用することを想定しています。
- [サービスとアプリケーション] を右クリックして、[その他のアクション] → [空のサービスまたはアプリケーションの作成] をクリックします。
- 作成した空のグループの名前を適宜変更します。
- 作成したグループを右クリックして、[リソースの追加] → [4 – 汎用スクリプト] をクリックします。
- [スクリプト ファイル パス] に作成した汎用スクリプト用の VBS のパスを指定して [次へ] をクリックします。
- [次へ] をクリックします。
- [完了] をクリックします。
- 作成したリソースを右クリックして、[このリソースをオンラインにする] をクリックします。
以上でクラスター化した IIS の設定は完了です。
汎用スクリプト内で対象のグループの現在の所有者に対して
- オンライン時にサイトを開始
- オフライン時にサイトを停止
- IsAlive / LooksAlive でサイト / アプリケーションプールの稼働を確認
という操作をしているようなので、ある程度の可用性を持ってサービスを起動することが可能かと思います。
スクリプトを修正すれば特定のサイトにアクセスして Status 200 が返ってきたら IsAlive の結果を正常とするというように組むことも可能です。
汎用アプリケーションの場合は、汎用アプリケーションとして登録してたプロセスが起動しているかどうかぐらいでしか可用性を確保することができないのですが汎用スクリプトを使用すると、IsAlive / LooksAlive をカスタマイズして実装できるのでいろいろと便利そうですね。
このあたりに関しては以下の情報も参考になります。
Windows Server 2003 の Windows Server クラスタ コンポーネントに含まれるリソースに対する LooksAlive 関数と IsAlive 関数の動作