Высокая доступность SMA

Описание архитектуры

sma-ha-00

Без понимания архитектуры нет смысла в дальнейшем разговоре, потому приступим.

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 варианта

  1. Удалить данного worker’а и добавить новый вместо него, но для этого необходимо останавливать сервис;

  2. Создать новую виртуальную машину с таким же именем (естественно не у виртуальной машины, а у операционной системы) и установить на неё роль “SMA Worker”. Перед этим убедитесь что виртуальная машина, которую Вы заменили не включится. Потому что в этом случае у Вас могут возникнуть проблемы (задания выполняются дважды, например). SMA отслеживает worker’ов только по имени хоста, таким образом замена SMA worker’а, задача “тривиальная” и не требует остановки сервиса.

Рекомендация Microsoft’а - 3 виртуальные машины с ролью SMA Worker. Вы можете использовать те же  виртуальные машины что и для компонента “Web Service”.

Высокая доступность компонента “SQL база данных”

Все довольно просто, SQL Always On или SQL Clustering.

Written on July 30, 2014