Высокая доступность SMA
Описание архитектуры
Без понимания архитектуры нет смысла в дальнейшем разговоре, потому приступим.
Web Service
Принимает запросы по http, “общается” с базой данных;
Возвращает данные “клиенту”.
Runbook Worker
Запрашивает у базы данных информацию о заданиях;
Исполняет задания;
Возвращает в базу данных полученные данные.
SQL база данных
Хранит всю информацию SMA - задания, переменные, runbook’и, данные о заданиях и результаты выполнения заданий.
“Клиент”
Любая “программа”, которая передает данные в SMA, например SMA PowerShell модуль или WAPack Портал Администраторов.
Необходимо сделать первые три компонента высокодоступными и эластичными.
Высокая доступность компонента “Web Service”
Данный компонент является “обычным” веб сервисом. Для обеспечения высокой доступности необходимо использовать технологию Network Load Balancing. Поскольку этот сервис “stateless” никаких сложностей с этим возникнуть не должно. При необходимости новые ноды можно добавить или убрать, Microsoft рекомендует 3 ноды.
Высокая доступность компонента “Runbook Worker”
С данным компонентом все немного сложнее, этот компонент не совсем “stateless”. Каждый Runbook Worker отвечает за определенные задания в SMA. Распределением заданий между worker’ами занимается “Runbook Worker Deployment”.
Для создания новых worker’ов необходимо использование командлета New-SmaRunbookWorkerDeployment. Но нельзя вносить изменения пока какой-либо воркер выполняет задания, таким образом, изменение конфигурации worker’ов возможно только с полной остановкой сервиса. Заменить worker’а можно без остановки сервера. Если, по каким-либо причинам, worker не может выолнять задания, Вам необходимо его заменить.
У вас всего 2 варианта
-
Удалить данного worker’а и добавить новый вместо него, но для этого необходимо останавливать сервис;
-
Создать новую виртуальную машину с таким же именем (естественно не у виртуальной машины, а у операционной системы) и установить на неё роль “SMA Worker”. Перед этим убедитесь что виртуальная машина, которую Вы заменили не включится. Потому что в этом случае у Вас могут возникнуть проблемы (задания выполняются дважды, например). SMA отслеживает worker’ов только по имени хоста, таким образом замена SMA worker’а, задача “тривиальная” и не требует остановки сервиса.
Рекомендация Microsoft’а - 3 виртуальные машины с ролью SMA Worker. Вы можете использовать те же виртуальные машины что и для компонента “Web Service”.
Высокая доступность компонента “SQL база данных”
Все довольно просто, SQL Always On или SQL Clustering.