Database Availability Groups
Database Availability Groups (DAG) — это технология отказоустойчивости и репликации почтовых баз данных на уровне серверов, реализованная в платформе Microsoft Exchange Server, начиная с версии 2010. DAG представляет собой группу из двух и более серверов Exchange (роль Mailbox), которые совместно обеспечивают высокую доступность (High Availability, HA) и аварийное восстановление (Site Resilience) почтовых ящиков пользователей за счёт непрерывной репликации баз данных на уровне журналов транзакций.
История и развитие
Концепция DAG была введена компанией Microsoft в 2009 году с выходом Exchange Server 2010. До этого в Exchange 2007 для обеспечения отказоустойчивости использовались кластерные технологии на основе службы Cluster Service (Windows Failover Cluster), которые были сложны в настройке и обслуживании. DAG заменила устаревшие кластерные модели (Single Copy Cluster, SCC и Cluster Continuous Replication, CCR), предложив более гибкое и простое решение.
В Exchange 2013 и Exchange 2016 технология DAG была значительно улучшена. Была добавлена поддержка до 16 копий базы данных (в Exchange 2010 — до 16, но практический лимит был ниже), улучшены механизмы автоматического переключения (AutoFailover) и балансировки нагрузки. В Exchange 2019 DAG остаётся ключевым компонентом для обеспечения высокой доступности, хотя Microsoft активно продвигает гибридные и облачные решения на базе Microsoft 365 (Exchange Online).
Архитектура и принцип работы
DAG базируется на технологии Windows Failover Clustering, но использует её только для координации и мониторинга, а не для общего хранилища данных. Каждый сервер в DAG хранит свои копии баз данных локально (на собственных дисках). Репликация данных между серверами осуществляется асинхронно на уровне журналов транзакций (log shipping).
Основные компоненты
- Узел DAG (DAG Member) — сервер Exchange с ролью Mailbox, входящий в группу.
- Копия базы данных (Database Copy) — дубликат активной базы данных, хранящийся на другом сервере DAG. Каждая база данных может иметь до 16 копий (включая активную).
- Активная копия (Active Copy) — копия базы данных, которая в данный момент обслуживает запросы пользователей (чтение/запись).
- Пассивная копия (Passive Copy) — копия, которая синхронизируется с активной, но не обслуживает запросы.
- Свидетеля (Witness Server) — внешний сервер (не входящий в DAG), используемый для достижения кворума при чётном количестве узлов. Обычно это файловый сервер или сервер с ролью Client Access в Exchange.
Процесс репликации
- Транзакции, выполняемые на активной копии базы данных, записываются в журнал транзакций (transaction log).
- Файлы журналов (log files) асинхронно копируются на серверы с пассивными копиями той же базы данных.
- На пассивных серверах журналы применяются к копии базы данных (replay), поддерживая её в актуальном состоянии.
- Репликация может быть как синхронной (Seeding), так и асинхронной (Incremental). В режиме синхронной репликации транзакция считается завершённой только после подтверждения записи на всех целевых серверах.
Автоматическое переключение (AutoFailover)
При отказе сервера с активной копией базы данных DAG автоматически инициирует процесс переключения (failover). Одна из пассивных копий становится активной. Критерии для переключения:
- Потеря связи с сервером (heartbeat timeout).
- Сбой службы хранения (Information Store).
- Ошибка диска или файловой системы.
- Потеря кворума кластера.
Переключение происходит в течение нескольких секунд (обычно 30–120 секунд) и не требует вмешательства администратора.
Классификация и типы DAG
DAG можно классифицировать по нескольким признакам:
По географическому расположению
- Локальный DAG (Local DAG) — все серверы находятся в одном дата-центре или на одной площадке. Обеспечивает отказоустойчивость на уровне серверов, но не защищает от аварии всего центра.
- Распределённый DAG (Multi-site DAG) — серверы размещены в нескольких географически удалённых дата-центрах (site resilience). Позволяет пережить полный выход из строя одного центра. Требует настройки сети с низкой задержкой (обычно не более 5–10 мс) и высокой пропускной способностью.
По количеству копий
- DAG с двумя копиями — минимальная конфигурация (один активный, один пассивный). Обеспечивает базовую защиту, но не защищает от сбоя диска на пассивном сервере.
- DAG с тремя и более копиями — стандартная рекомендация для критичных систем. Позволяет пережить отказ нескольких серверов или дисков.
По режиму репликации
- Синхронная репликация (Synchronous Replication) — транзакция считается завершённой только после записи на всех целевых серверах. Обеспечивает нулевую потерю данных (RPO=0), но увеличивает задержки записи.
- Асинхронная репликация (Asynchronous Replication) — транзакция завершается сразу после записи на активном сервере. Снижает задержки, но допускает потерю данных при сбое (RPO > 0).
Применение и значение
DAG является основным механизмом обеспечения высокой доступности в корпоративных средах Exchange. Она используется организациями любого масштаба — от средних компаний (2–4 сервера) до крупных предприятий (десятки серверов, распределённые по континентам).
Основные сценарии использования
- Отказоустойчивость на уровне сервера — выход из строя одного сервера не приводит к простою почтовой службы.
- Плановое обслуживание — администратор может перевести активные копии на другой сервер без прерывания работы пользователей (database mobility).
- Аварийное восстановление — при катастрофе в одном дата-центре почтовая система продолжает работу из другого центра.
- Балансировка нагрузки — активные копии баз данных могут быть распределены между серверами для равномерной загрузки.
Преимущества
- Простота управления — DAG настраивается через графический интерфейс Exchange Admin Center или PowerShell.
- Автоматизация — переключение происходит без участия администратора.
- Экономия — не требуется дорогостоящее общее хранилище (SAN), используются локальные диски.
- Масштабируемость — до 16 серверов в одной группе и до 16 копий базы данных.
Недостатки
- Сложность сети — требует высокоскоростной и надёжной сети между серверами (особенно для синхронной репликации).
- Потребление ресурсов — репликация создаёт дополнительную нагрузку на процессор, память и сеть.
- Ограничение на количество копий — на практике более 4–6 копий редко оправданы из-за роста сложности и затрат.
- Зависимость от Windows Failover Clustering — ошибки в кластерной службе могут привести к сбоям DAG.
Примеры конфигураций
Типовая конфигурация для среднего предприятия
- 2 сервера Exchange в локальном DAG.
- 2 копии каждой базы данных (активная на первом сервере, пассивная на втором).
- Синхронная репликация для критичных баз, асинхронная для менее важных.
- Свидетель (Witness Server) — файловый сервер в той же сети.
Конфигурация для крупного предприятия с двумя дата-центрами
- 4 сервера Exchange: 2 в основном центре (Site A), 2 в резервном (Site B).
- 4 копии каждой базы данных: активная и одна пассивная в Site A, две пассивные в Site B.
- Асинхронная репликация между центрами, синхронная внутри центра.
- Свидетель — сервер в третьем, нейтральном центре (для кворума).
Критика и ограничения
Несмотря на широкое распространение, DAG имеет ряд критических замечаний:
- Сложность настройки сети — для распределённых DAG требуется низкая задержка (менее 5 мс) и высокая пропускная способность, что не всегда достижимо в глобальных сетях.
- Управление кворумом — при чётном количестве серверов требуется внешний свидетель, который может стать единой точкой отказа.
- Производительность — синхронная репликация может снижать производительность записи на 10–30% в зависимости от нагрузки и сети.
- Ограниченная поддержка в облаке — в Exchange Online (Microsoft 365) DAG не используется напрямую; Microsoft использует собственную архитектуру высокой доступности.
Интересные факты
- Название «Database Availability Group» было выбрано, чтобы подчеркнуть отличие от классических кластеров — DAG фокусируется на доступности баз данных, а не серверов.
- В Exchange 2010 максимальное количество серверов в DAG составляло 16, но на практике Microsoft рекомендовала не более 8.
- В Exchange 2013 была добавлена возможность автоматического восстановления повреждённых копий баз данных (AutoReseed).
- DAG может работать без единого общего хранилища, что делает его экономически эффективным по сравнению с SAN-кластерами.
Источники
- Microsoft Docs: «Database Availability Groups» (Exchange Server 2016/2019)
- Microsoft TechNet: «Understanding Database Availability Groups»
- Книга: «Microsoft Exchange Server 2016: Inside Out» (Tony Redmond, Paul Cunningham)
- Книга: «Exchange Server 2010: Administrator's Pocket Consultant» (William R. Stanek)
- Статья: «High Availability and Site Resilience in Exchange Server» (Microsoft, 2015)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →