web-dev-qa-db-ja.com

Windowsサービスの自動フェイルオーバー

Windowsサービスを実装しています。このサービスは、アプリケーションサーバーのクラスターにインストールされます。

Windowsのクラスター機能に、通常のWindowsサービスのアクティブ/パッシブフェイルオーバーを設定する方法はありますか?

または、フェイルオーバーを機能させるために、クラスターAPIへの呼び出しを使用してサービスを特別に作成する必要がありますか?

2
Bjorn Reppen

フェールオーバークラスターマネージャーで汎用サービスを構成できます。これらは要件です:

  • サービスまたはアプリケーションはステートフルである必要があります。つまり、サービスまたはアプリケーションは、長時間実行されるメモリ内状態、または大規模で頻繁に更新されるデータ状態を持っている必要があります。一例はデータベースアプリケーションです。ステートレスアプリケーション(Webサーバーフロントエンドなど)の場合、フェールオーバークラスタリングよりもネットワーク負荷分散の方がおそらく適切です。

  • サービスまたはアプリケーションは、一時的なネットワークの中断後に自動的に再試行するクライアントコンポーネントを使用する必要があります。そうしないと、アプリケーションのサーバーコンポーネントがクラスター化されたサーバーから別のサーバーにフェイルオーバーした場合、避けられない(ただし短時間の)中断により、単に再試行して再接続するのではなく、クライアントが停止します。

  • サービスまたはアプリケーションは、使用する1つまたは複数のディスクを識別できる必要があります。これにより、サービスまたはアプリケーションがクラスターストレージ内のディスクと通信し、フェイルオーバー後でも正しいディスクを確実に見つけることができます。

  • サービスまたはアプリケーションは、IPベースのプロトコルを使用する必要があります。例としては、TCP、UDP、DCOM、名前付きパイプ、RPC over TCP/IPなどがあります。

このtechnetの記事をチェックしてください:
http://technet.Microsoft.com/en-us/library/cc753938.aspx

2
Jason Berg