Заметки о Windows и других программных продуктах Microsoft...

Обновление серверов Exchange в DAG

Обновление серверов Exchange в DAG

Database Availability Group (DAG) — это технология обеспечения высокой доступности mailbox-серверов Exchange, появившаяся в Exchange 2010. Принцип ее работы заключается в создании нескольких копий одной базы, размещенных на разных серверах. При выходе из строя сервера с активной копией база автоматически активируется на другом сервере, обеспечивая непрерывную работу почты. Кроме того, базы можно переключать и вручную, что может пригодится при установке на сервер обновлений или регламентных работах.

В принципе для обслуживания можно воспользоваться готовыми скриптами, которые находятся в директории установки Exchange, папке Scripts: StartDagServerMaintenance.ps1 для перевода сервера в режим обслуживания и StopDagServerMaintenance.ps1 для вывода из этого режима. Однако, по опыту, эти скрипты не всегда отрабатывают корректно, поэтому я предпочитаю все действия производить вручную, тем более что их не так и много. Для перевода сервера, в ходящего в DAG, надо:

1) Убрать с него активные копии баз;
2) Запретить их активацию на время обновления;
3) Перевести Primary Active Manager на другой сервер (если он находится на данном сервере).

Примечание. Active Manager отслеживает состояние баз данных в DAG и отвечает за их переключение в случае проблем. Он может быть в двух состояниях — Primary Active Manager и Standby Active Manager. Состояние Primary Active Manager одновременно может быть только на одном из серверов в DAG, на остальных Active Manager в состоянии Standby.  Независимо от состояния, Active Manager наблюдает за состоянием баз на сервере, однако решение о переключении в случае проблем принимает PAM.

Начнем с переключения Primary Active Manager. Одновременно он может быть только на одном из серверов в DAG и нам надо выяснить, на каком именно. Для этого сначала получаем название группы DAG командой:

Get-DatabaseAvailabilityGroup

И затем выводим свойства этой группы:

Get-DatabaseAvailabilityGroup -Identity ″dag″ -Status | fl name, servers, primaryactivemanager

Как видите, PAM находится на сервере MBX01, который мы собираемся обновлять.

определение PrimaryActiveManager

 

Для переноса Primary Active Manager нам потребуется модуль управления кластером. В Windows Server 2012 он подгрузится сам, в более ранних ОС надо импортировать его вручную, командой:

Import-Module FailoverClusters

Далее выводим список групп кластера:

Get-ClusterGroup

Переносим Primary Active Manager на сервер MBX02:

Move-ClusterGroup -Name ″Cluster Group″ -Node mbx02

И проверяем, что Primary Active Manager успешно переехал.

перенос PrimaryActiveManager

 

Теперь надо убрать с сервера все активные копии баз и убедиться в том, что пассивные копии не смогут быть активированы во время установки обновлений. Проверяем состояние баз на сервере командой:

Get-MailboxDatabaseCopyStatus -Server mbx01

Базы должны быть либо в состоянии Mounted (активные копии), либо Healthy (пассивные копии). Запрещаем активацию баз:

Get-MailboxDatabaseCopyStatus -Server mbx01 | Suspend-MailboxDatabaseCopy -ActivationOnly -Confirm:$false

И выносим с сервера все активные базы:

Move-ActiveMailboxDatabase -Server mbx01 -Confirm:$false

На всякий случай проверяем результат:

Get-MailboxDatabaseCopyStatus -Server mbx01 | ft name, activ*

И приступаем к установке обновлений.

перевод сервера в режим обслуживания

 

После завершения установки обновлений возвращаем сервер в строй. Сначала разрешаем активацию копии базы на сервере командой:

Get-MailboxDatabaseCopyStatus -Server mbx01 | Resume-MailboxDatabaseCopy -Confirm:$false

И переносим на него активные копии базы, либо по одной:

Move-ActiveMailboxDatabase -Identity db01 -ActivateOnServer mbx01 -Confirm:$false

Либо можем сразу перенести все активные базы с сервера mbx02 на сервер mbx01:

Move-ActiveMailboxDatabase -Server mbx02 -ActivateOnServer mbx01 -Confirm:$false

возвращение сервера в рабочий режим

 

Дальше повторяем процедуру для следующего сервера DAG.

 
 
Комментарии

А если МВ и КАС совмещены на серверах (для Е2013) — процедура такая же? Никаких доптелодвижений не нужно?

Для mailbox-серверов в Exchange 2010\2013 процедура одинаковая, а что касается серверов CAS — то тут зависит от типа балансировки нагрузки. Если используется DNS round-robin, то наверное надо убрать запись сервера из DNS, чтобы на него не приходили клиентские подключения.
Впрочем я с такой конфигурацией не работал, так что могу ошибаться 🙂

Относительная сложность установки обновлений на DAG в том, чтобы обеспечить непрерывность работы сервиса. Если все роли на одном сервере, то просто устанавливайте обновления и перезапускайте сервер, предварительно предупредив пользователей о недоступности сервиса.

Можно так:
cd $exscripts
.\StartDagServerMaintenance.ps1 Имя_сервера_MB

По окончании обновления:
.\StopDagServerMaintenance.ps1 Имя_сервера_MB

Находясь в соотв. папке, набирать полностью название скрипта необязательно, достаточно первые три буквы и [Tab].

Подскажите, а если не предлагает альтернативный сервер для переноса PAM,

PS C:\Windows\system32> get-clustergroup

Name OwnerNode State
—- ——— ——
Cluster Group gs-mbx05 Online
Available Storage gs-mbx05 Offline

В принципе этот пункт можно пропустить. Достаточно свезти базы и запретить активацию.

Leave a Reply to Kirill