У меня есть куча служб Windows и запланированных задач, запущенных на одном сервере. Поскольку некоторые из этих служб объединяют внешний ресурс, я оставляю его отключенным на резервном сервере, чтобы сэкономить пропускную способность. Как активировать его автоматически, когда основной сервер выходит из строя в следующих сценариях:
- Служба Windows
- Дела по расписанию
решение1
Это был бы классический сценарий отказоустойчивой кластеризации, так что это должен быть правильный путь; но я знаю, что не все приложения поддерживают MSCS.
Единственное решение, которое я могу придумать, — это служба «контроллера», запущенная на резервном сервере, которая будет периодически опрашивать основной сервер и запускать все заново, если он некоторое время не отвечает.
Но это выглядит проще, чем есть на самом деле, и я видел, как «избыточное» программное обеспечение (даже довольно дорогое) пыталось это сделать и терпело неудачу.
решение2
Если вы используете Windows Server Enterprise или Datacenter, вы можете установить кластер, в котором вы можете настроить службы как кластеризованные ресурсы. Если активный узел выйдет из строя, службы будут запущены на неактивном узле.
Запланированные задачи не выглядят как что-то, что можно кластеризовать, исходя из моего опыта и чтения файла справки. Существуют сторонние пакеты планирования на уровне предприятия и BPA (Business Process Automation), которые могут обрабатывать сбои и перепланировать задания на других узлах. Вы также можете попробовать реализовать некую связь в ваших запланированных задачах, которая может определить, вышел ли узел из строя, и оставшийся узел должен начать выполнять задания.
Windows Cluster Services имеет ряд других требований, поэтому он может быть не лучшим вариантом для вас. Без лучшего описания желаемого вами конечного состояния, это все, что я могу вам сейчас дать.