Database Availability Group¶
Database Availability Group (DAG) — это технология отказоустойчивости и высокого уровня доступности для почтовых серверов Microsoft Exchange Server, реализованная на уровне организации. DAG представляет собой группу из нескольких серверов Exchange (до 16), которые совместно реплицируют базы данных почтовых ящиков, обеспечивая автоматическое переключение при сбоях (failover) и балансировку нагрузки. Технология впервые появилась в Exchange Server 2010 и стала основным механизмом обеспечения отказоустойчивости в последующих версиях (Exchange 2013, 2016, 2019).
¶История
До появления DAG в Exchange Server 2007 использовалась технология кластеризации (Cluster Continuous Replication, CCR) и локальная непрерывная репликация (Local Continuous Replication, LCR). Эти решения были сложны в настройке, требовали общего хранилища (SAN) и не обеспечивали гибкости управления. В Exchange Server 2010 Microsoft представила DAG как универсальный механизм, основанный на технологии Windows Failover Clustering (WFC). DAG позволил отказаться от общего хранилища, перейдя к репликации на уровне баз данных (базы данных почтовых ящиков) между серверами, расположенными в одном или разных дата-центрах. В Exchange 2013 и 2016 архитектура DAG была доработана: улучшена производительность репликации, добавлена поддержка множества копий баз данных (до 16) и внедрена функция автоматического восстановления после сбоев (AutoReseed). В Exchange 2019 DAG остаётся ключевым компонентом для обеспечения непрерывности работы почтовой службы.
¶Архитектура и принцип работы
¶Основные компоненты
DAG работает на уровне организации Exchange и использует следующие компоненты:
- Серверы Exchange — участники группы (до 16), каждый из которых может содержать активные и пассивные копии баз данных.
- База данных почтовых ящиков (Mailbox Database) — основной объект репликации. Каждая база может иметь несколько копий, распределённых по серверам DAG.
- Репликация — синхронная или асинхронная передача изменений между копиями баз данных. Используется протокол TCP/IP (порт 64327 по умолчанию) и механизм непрерывной репликации (Continuous Replication).
- Windows Failover Clustering — базовая технология, обеспечивающая обнаружение сбоев, выбор активного узла и переключение ролей. DAG создаёт кластер WFC, но не требует общего хранилища.
¶Репликация данных
Репликация происходит на уровне журналов транзакций (log shipping). Когда пользователь вносит изменения в почтовый ящик, Exchange записывает транзакцию в журнал (log file) на активной копии базы данных. Затем журнал копируется на пассивные копии, где воспроизводится (replay) для обновления данных. Различают два режима репликации:
- Синхронная — подтверждение записи на пассивной копии требуется до завершения транзакции на активной. Обеспечивает нулевую потерю данных, но увеличивает задержки.
- Асинхронная — транзакция завершается на активной копии без ожидания подтверждения от пассивных. Уменьшает задержки, но возможна потеря данных при сбое.
Количество копий базы данных может варьироваться от 1 (активная) до 16 (включая активную). Рекомендуется минимум 3 копии (одна активная, две пассивные) для обеспечения отказоустойчивости.
¶Автоматическое переключение (Failover)
При сбое активного сервера или базы данных DAG автоматически инициирует переключение на одну из пассивных копий. Процесс включает:
- Обнаружение сбоя (потеря связи, сбой службы, отказ диска).
- Выбор новой активной копии на основе политики (например, приоритет активации, состояние репликации).
- Монтирование базы данных на новом сервере.
- Обновление DNS и маршрутизации для клиентов.
Переключение может занимать от нескольких секунд до нескольких минут в зависимости от размера базы данных и состояния репликации.
¶Классификация и виды
DAG классифицируется по способу развёртывания:
- Односайтовый DAG — все серверы расположены в одном физическом или логическом дата-центре. Обеспечивает отказоустойчивость на уровне серверов, но не защищает от сбоя всего дата-центра.
- Многосайтовый DAG — серверы распределены по нескольким географически удалённым дата-центрам. Обеспечивает катастрофоустойчивость (disaster recovery) за счёт репликации между сайтами. Требует настройки сети с низкой задержкой (обычно менее 5 мс) и высокой пропускной способностью.
Также DAG может быть настроен с использованием третьего сервера (witness server) для предотвращения split-brain (разделения кластера). Witness server — это отдельный сервер, не входящий в DAG, который участвует в голосовании при определении активного узла.
¶Применение и значение
DAG является основным механизмом обеспечения высокой доступности в Microsoft Exchange Server. Он применяется в организациях любого размера, где требуется минимизация простоев почтовой службы. Основные сценарии использования:
- Отказоустойчивость серверов — автоматическое переключение при сбое аппаратного или программного обеспечения.
- Плановое обслуживание — возможность переключения на пассивную копию для обновления или замены оборудования без остановки службы.
- Катастрофоустойчивость — защита от сбоя целого дата-центра за счёт репликации в удалённый сайт.
- Балансировка нагрузки — распределение активных баз данных между серверами для оптимизации производительности.
DAG позволяет достичь уровня доступности 99,999% (пять девяток) при правильной настройке, что делает его критически важным компонентом для корпоративных почтовых систем.
¶Ограничения и требования
¶Технические требования
- Все серверы DAG должны быть членами одного домена Active Directory.
- Необходима поддержка Windows Failover Clustering (требуется Windows Server Standard или Datacenter).
- Сеть между серверами должна обеспечивать низкую задержку (менее 5 мс для синхронной репликации) и высокую пропускную способность (не менее 1 Гбит/с).
- Каждый сервер должен иметь собственное хранилище (локальные диски, SAN или NAS) — общее хранилище не поддерживается.
¶Ограничения
- Максимум 16 серверов в одном DAG.
- Максимум 16 копий одной базы данных (включая активную).
- Максимум 100 баз данных на сервер (в Exchange 2019).
- DAG не поддерживает репликацию общедоступных папок (public folders) — для них используется отдельный механизм.
¶Сравнение с альтернативами
DAG является проприетарной технологией Microsoft и не имеет прямых аналогов в других почтовых системах. В сравнении с альтернативными решениями:
- Кластеризация на основе общего хранилища (например, в Exchange 2007) — требует дорогостоящего SAN, менее гибка, но обеспечивает более высокую производительность при синхронной записи.
- Репликация на уровне виртуализации (например, VMware HA) — не защищает от сбоев на уровне ОС или приложения, требует дополнительных лицензий.
- Открытые решения (например, Dovecot с репликацией на основе DRBD) — менее интегрированы, требуют ручной настройки и не имеют централизованного управления.
DAG остаётся стандартом для Exchange Server благодаря простоте управления, интеграции с Active Directory и автоматизации процессов.
¶Источники
- Microsoft Docs: «Database Availability Groups» (Exchange Server 2019)
- Microsoft TechNet: «Understanding Database Availability Groups»
- «Exchange Server 2016: High Availability and Disaster Recovery» — книга Microsoft Press
- «Exchange Server 2019: Architecture and Deployment» — официальная документация Microsoft
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


