Предисловие
Конфигурация Exchange DAG стала де-факто стандартом при построении инфраструктуры почтового сервиса на решении Microsoft. В современных версиях Exchange "накликать" базы данных в конфигурацию DAG не занимает много времени, но для многих из ИТ-персонала, к сожалению, остается неясным поведение систем и почтового сервиса при тех или иных типовых возможных сценариях нештатного поведения системы (обслуживание, обрыв канала итд...). По этой причине, а так же по причине необходимости проверки корректности функционирования почтового сервиса и получения информации по времени отработки DAG(восстановление после сбоя) в конкретной инфраструктуре требуется проведение тестирования.
Информации в общем доступе по существующим практикам/методикам/способам тестирования стабильности и поведения баз данных в DAG найти не удалось, по этой причине разрабатывать описание тестовых сценариев пришлось самостоятельно. Предложенная методика является универсальной и масштабируемой для тех случаев, когда конфигурация DAG содержит большее количество узлов/датацентров.
Предложенная методика указана для DAG распределенного в двух датацентрах.
Описание окружения
1. SRVEXDB1 – Exchange 2016 DB+CAS server Primary Datacenter
2. SRVEXDB2– Exchange 2016 DB+CAS server Secondary Datacenter
3. SRVEXWN - Withness SMB share in Primary Datacenter.
4. DB1 – mailbox database, primary SRVEXDB1
5. DB2 – mailbox database, primary SRVEXDB2
6. CAS servers: Primary – SRVEXDB1
7. CAS servers: Secondary – SRVEXDB2
Методика тестирования
Приведенные сценарии с описанием шагов используемых при тестировании покрывают наиболее веротные случаи возможные в инфраструктуре. В случае, если конфигурация Вашего DAG более или менее сложная, часть сценариев можно не использовать а часть шагов легко изменяются в соответствии с реалиями инфраструктуры.
Использование изложенной методики позволяет:
- Проверить функционирование отказоустойчивости почтового сервиса на уровне баз данных почтовых ящиков при типовых сценариях.
- Выявить план действий и составить сопутствующие артефакты-инструкции для дальнейшего обслуживания почтового сервиса такие как "сценарий обновления","failover сценарий".
- Проверить возможность корректного восстановления.
- Произвести тестирование/обучение обслуживающего системы персонала.
- Выявить время требуемое для восстановления после сбоя RTO.
1. Сценарий планового обслуживания систем
Сопутствующие действия: составление сценария обновлений систем
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Перевод SRVEXDB1 в maintenance mode StartDagServerMaintenance.ps1
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Проверка доступности почтового ящиков через owa на каждом из доступных CAS серверов и через MAPI.
- Перезагрузка SRVEXDB1
- Возвращение состояния SRVEXDB1 (п.3) StopDagServerMaintenance.ps1
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Перевод SRVEXDB2 в maintenance mode StartDagServerMaintenance.ps1
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Проверка доступности почтового ящиков через owa на каждом из доступных CAS серверов и через MAPI.
- Перезагрузка SRVEXDB2
- Возвращение состояния SRVEXDB2 (п.11) StopDagServerMaintenance.ps1
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Проверка доступности почтового ящиков через owa на каждом из доступных CAS серверов и через MAPI.
2. Сценарий обрыва канала связи между датацентрами
Ожидаемый результат при наступлении инцидента — автоматическая миграция копий баз данных с SRVEXDB1 активных ранее на SRVEXDB2
Сопутствующие действия: составление failover сценация
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Открытие почтового ящика в DB2 через owa на каждом из доступных CAS серверов и через MAPI
- Отключение интерфейса на уровне гипервизора на SRVEXDB2 в Secondary Datacenter
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus на обоих узлах почтового сервиса
- Проверка доступности почтового ящика из п.3 через owa на каждом из доступных CAS серверов и через MAPI.
- Перезагрузка SRVEXDB1.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Восстановление связи между узлами (возвращение рабочего состояния п.4)
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
В случае отсутствия восстановления состояния использовать Update-MailboxDatabaseCopy и Resume-MailboxDatabaseCopy
- Проверка доступности почтового ящика из п.3 через owa на каждом из доступных CAS серверов и через MAPI.
3. Сценарий выхода из строя сервера из Secondary Datacenter SRVEXDB2
Ожидаемый результат при наступлении инцидента — автоматическая миграция копий баз данных с SRVEXDB1 активных ранее на SRVEXDB2
Сопутствующие действия: составление failover сценация, сценария обновлений систем
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Создание резервной копии системы SRVEXDB2
- Открытие почтового ящика в DB2 через owa на каждом из доступных CAS серверов и через MAPI.
- Выполнение unexpected Shutdown на уровне гипервизора на SRVEXDB2 в Secondary Datacenter
- Проверка состояния Get-DatabaseAvailabilityGroupNetwork
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка доступности почтового ящика из п.3 через owa на каждом из доступных CAS серверов и через MAPI.
- Включение системы SRVEXDB2(возвращение рабочего состояния п. 5)
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus.
- В случае отсутствия восстановления состояния использовать Update-MailboxDatabaseCopy и Resume-MailboxDatabaseCopy
- Ожидание автоматического превода активной копии базы данных DB2 на SRVEXDB2
- Проверка доступности почтового ящика из п.4 через owa на каждом из доступных CAS серверов и через MAPI.
4. Сценарий выхода из строя сервера из Primary Datacenter SRVEXDB1
Ожидаемый результат при наступлении инцидента — автоматическая миграция копий баз данных с SRVEXDB2 активных ранее на SRVEXDB1
Сопутствующие действия: составление failover сценария, сценария обновлений систем
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Создание резервной копии системы SRVEXDB1
- Открытие почтового ящика в DB1 через owa на каждом из доступных CAS серверов и через MAPI.
- Выполнение unexpected Shutdown на уровне гипервизора на SRVEXDB1 в Primary Datacenter
- Проверка состояния Get-DatabaseAvailabilityGroupNetwork
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка доступности почтового ящика из п.3 через SRVEXDB2.
- Включение системы SRVEXDB2(возвращение рабочего состояния п.5)
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- В случае отсутствия восстановления состояния использовать Update-MailboxDatabaseCopy и Resume-MailboxDatabaseCopy
- Перевод активной копии базы данных DB1 на SRVEXDB1
- Проверка доступности почтового ящика из п.3 через owa на каждом из доступных CAS серверов и через MAPI.
5. Сценарий выхода Primary Datacenter площадки из строя (не доступность сервера SRVEXDB1 п.3. и withness)
Ожидаемый результат при наступлении инцидента — не активность не активных баз данных на SRVEXDB2
Требуемые действия для восстановления работоспособности — ручная активация копий баз данных на SRVEXDB2
Сопутствующие действия: составление failover сценация
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Создание резервной копии системы SRVEXDB1(проверка наличия актуальной резервной копии)
- Подготовка к настройке на firewall windows на SRVEXWN правила запрета всех подключений с SRVEXDB2 и подготовка к отключению SRVEXDB1
- Единовременное выполнение действий из п.4.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Проверка состояния Get-DatabaseAvailabilityGroupNetwork
- Проверка withness Get-DatabaseAvailabilityGroup
- Выполнение Restore-DatabaseAvailabilityGroup на SRVEXDB2
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка доступности почтовых ящиков через owa на каждом из доступных CAS серверов и через MAPI.
- Включение системы SRVEXDB1(возвращение рабочего состояния п.5)
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus на SRVEXDB1
- Проверка состояния компонент Test-ReplicationHealth SRVEXDB1
- Проверка состояния Get-DatabaseAvailabilityGroupNetwork SRVEXDB1
- Отключение на firewall windows на SRVEXWN правила запрета всех подключений с SRVEXDB2 (возвращение рабочего состояния п.5)
- Проверка состояния Get-DatabaseAvailabilityGroupNetwork
6. Сценарий недоступности Withness и перезагрузки почтовых серверов
Ожидаемый результат при наступлении инцидента — неработоспособность баз данных на рабочем почтовом сервере.
Требуемые действия для восстановления работоспособности — ручная активация копий баз данных на рабочем почтовом сервере
Сопутствующие действия: составление failover сценация
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Подготовка и активация на firewall windows на SRVEXWN правила запрета всех подключений с SRVEXDB2.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Подготовка и активация на firewall windows на SRVEXWNправила запрета всех подключений с SRVEXDB1.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка доступности почтовых ящиков в DB1 и DB2 через owa на каждом из доступных CAS серверов и через MAPI.
- Отключение на firewall windows на SRVEXWN правила запрета всех подключений с SRVEXDB2 и SRVEXDB1 (п.3).
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Единовременная ктивация на firewall windows на SRVEXWN правила запрета всех подключений с SRVEXDB2 и SRVEXDB1.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Перезагрузка SRVEXDB2
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Выполнение Restore-DatabaseAvailabilityGroup для DB2 на SRVEXDB1
- Проверка доступности почтовых ящиков в DB2 через owa на каждом из доступных CAS серверов и через MAPI.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Перезагрузка SRVEXDB1
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Выполнение Restore-DatabaseAvailabilityGroup для DB1 и DB2 на SRVEXDB2
- Проверка доступности почтовых ящиков в DB1 через owa на каждом из доступных CAS серверов и через MAPI.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Отключение на firewall windows на SRVEXWN правила запрета всех подключений с SRVEXDB2 и SRVEXDB1 (возвращение рабочего состояния п.11)
- Активация базы данных почтовых ящиков DB2 на SRVEXDB2
7. Сценарий удаления/порчи файлов баз данных в состоянии passive при failover
Ожидаемый результат при наступлении инцидента — corrupt data, невозможность failover
Требуемые действия для восстановления работоспособности — повторная репликация, восстановление баз данных
- Создание резервной копии системы SRVEXDB1 и SRVEXDB2 (проверка наличия актуальной резервной копии)
- Переименование файла D:\DB1\DB1.edb в D:\DB1\DB1.edb.old на SRVEXDB2
- Активация базы данных почтовых ящиков DB1 на SRVEXDB2
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Проверка состояния компонент Test-ReplicationHealth
- Повторная репликация копии DB1 Update-MailboxDatabaseCopy. Учёт времени.
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
- Активация базы данных почтовых ящиков DB1 на SRVEXDB2
- Сохранение копии файла D:\DB2\DB2.edb на SRVEXDB1.Порча файла D:\DB2\DB2.edb на SRVEXDB1 дописыванием информации в середину файла.
- Активация базы данных почтовых ящиков DB2 на SRVEXDB1
- Проверка состояния баз данных Get-MailboxDatabaseCopyStatus
8. Восстановление базы данных средствами используемого средства резервного копирования и восстановления
1. Выполнить восстановление средствами используемого средства резервного копирования и восстановления базы данных DB2 ( D:\DB2\DB2.edb на SRVEXDB1) после выполнения сценария 7.
Дополнительная информация по поводу проведения проверки доступности.
На шаге "Проверка доступности почтового ящика из п.3 через owa на каждом из доступных CAS серверов и через MAPI" рекомендую проверять доступность через MAPI через разные сайты и сегменты сети в которых работают клиенты. Если имеется интеграция почтового сервиса с иными сервисами (например, office, S4B, sharepoint итд...), необходима проверка интеграции клиента с данными сервисами (как пример "Проверка интеграции с SFB через UM."). Непосредственные действия и соответствующие CheckList формируются исходя из требуемого покрытия в конкретной компании для данного сервиса.
Используемые командлеты
-
Restore-DatabaseAvailabilityGroup
-
Test-ReplicationHealth
-
Get-DatabaseAvailabilityGroup
-
Get-DatabaseAvailabilityGroupNetwork
-
Resume-MailboxDatabaseCopy
-
Update-MailboxDatabaseCopy
-
Get-MailboxDatabaseCopyStatus
-
Remove-MailboxDatabaseCopy
-
StopDagServerMaintenance.ps1
-
StartDagServerMaintenance.ps1
Ещё мои статьи по диагностике, оптимизации и решению проблем с Exchange Server
Мы имеем широкий опыт по настройкам, обслуживанию, поддержке, оптимизации ИТ инфраструктуры .
В компетенциях нашей команды ТЮН-ИТ технологии Microsoft, Oracle, vmWare, Huawei, Citrix, Cisco, Astra Linux и много open source продуктов (Xen & KVM based гипервизоры, Nix системы, сетевые технологии).
Обращайтесь к нам как со сложными вопросами ИТ: мы открыты как для больших, так и малых проектов.