Я реализую службу Windows. Сервис будет установлен в кластере серверов приложений.
Есть ли способ в кластерной функциональности Windows настроить активную / пассивную отработку отказа для обычной службы Windows?
Или необходимо, чтобы служба была специально написана с вызовами API кластера для работы аварийного переключения?
Вы можете настроить универсальную службу в диспетчере отказоустойчивого кластера. Это требования:
Служба или приложение должны поддерживать состояние. Другими словами, служба или приложение должны иметь длительное состояние в памяти или большие, часто обновляемые состояния данных. Одним из примеров является приложение базы данных. Для приложения без сохранения состояния (такого как интерфейсный веб-сервер) балансировка сетевой нагрузки, вероятно, будет более подходящей, чем отказоустойчивый кластер.
Служба или приложение должны использовать клиентский компонент, который автоматически повторяет попытку после временных прерываний сети. В противном случае, если серверный компонент приложения переключается с одного кластерного сервера на другой, неизбежное (но кратковременное) прерывание приведет к остановке клиентов, а не просто к повторной попытке и повторному подключению.
Служба или приложение должны иметь возможность идентифицировать диск или диски, которые они используют. Это позволяет службе или приложению обмениваться данными с дисками в хранилище кластера и надежно находить нужный диск даже после аварийного переключения.
Служба или приложение должны использовать протоколы на основе IP. Примеры включают TCP, UDP, DCOM, именованные каналы и RPC через TCP / IP.
Ознакомьтесь с этой статьей о технике:
http://technet.microsoft.com/en-us/library/cc753938.aspx