DAG (Database Availability Group) — позволяет обеспечить отказоустойчивость Баз Данных почтовых ящиков. Суть его работы заключается в том, что создаются копии базы и при выходе из строя одного сервера база автоматически активируется на другом.
Впервые DAG появился в Exchange 2010, а в Exchange 2013 он получил некоторые улучшения.
Итак, рассмотрим схему нашей инфраструктуры. Она очень простая.
У нас есть Контроллер Домена (без него никуда) и два сервера Exchange 2013, на которых установлены обе роли Exchange – Mailbox и Client Access.
Также хочу обратить внимание, что у нас есть отдельная сеть для репликации — 172.16.0.0/24.
Итак, начинаем подготовку.
Так как работа DAG реализована на службе Microsoft Failover Cluster, нам нужен свидетель (witness). В нашем случае это будет Контроллер Домена, у вас это может быть любой рядовой сервер. На сервере-свидетеле в группу локальных администраторов нам нужно добавить группу Exchange Trusted Subsystem. (Если у Вас в роли свидетеля выступает еще один сервер Exchange, то этого делать не нужно).
Так как на Контроллере Домена локальных групп нет, то я добавляю в доменную группу Administrators.
Потом идем в Active Directory Users and Computers и создаем объект типа «Компьютер» с именем нашего будущего DAG и задисейблим его.
Потом открываем свойства этого объекта и на вкладке «Безопасность» даем права полного доступа первому члену группы DAG.
Теперь займемся сетью.
У каждого Exchange сервера по 2 сетевых адаптера. Первый смотри в общую сеть (LAN). Тут обычные настройки, дополнительно ничего делать не нужно.
Второй — в изолированную (HB), которая будет использоваться для репликации. Вот тут есть некоторые доработки.
Шлюз и DNS не указываем — они не нужны. Так же снимаем галочку Register this connection’s address in DNS.
И снимаем галочки с Client for Microsoft Networks и File and Printer Sharing for Microsoft Networks.
Устанавливаем LAN на первое место.
Проверяем
Все ОК.
Еще нужно на сервере свидетеле создать каталог, который будем указывать при создании DAG. У меня это папка DAG—Witness в корне диска C: на контроллере домена.
Теперь можно создавать DAG. Идем в консоль управления Exchange (ECP), заходим Servers => Database Availability Groups, и жмем +.
Заполняем все поля. И жмем Save.
Теперь добавляем сервера в группу
Когда мастер успешно закончит свою работу мы сможем увидеть, что членами групп являются наши два сервера, и так же есть 2 сети, одна их которых для репликации.
Это так же можно увидеть, если открыть стандартную оснастку Failover Cluster Manager и зайти в раздел Network и Nodes
Теперь можно добавлять копии БД. Заходим Servers => Database, нажимаем три точки, чтобы увидеть доп. меню и в нем выбираем Add database copy
В мастере выбираем, на какой сервер будем реплицировать. У меня выбор не большой.
Нажимаем Save и ждем окончания процесса создании копии базы.
Аналогичным способом добавляем и остальные базы.
В результате увидим следующую картину: список баз, на каком сервере база сейчас активна, и на каких серверах есть копия.
Есть еще возможность сделать копию базы с задержкой в несколько дней (от 1 до 14 дней).
При необходимости можно активировать базу на другом сервере в ручном режиме (для выполнения каких-либо плановых работ на сервере).
На этом все. Теперь админу можно спать спокойней.
Напоследок некоторые заметки:
- Каждый сервер может нести на себе лишь одну копию конкретной базы данных;
- DAG повышает отказоустойчивость базы почтовых ящиков, но это не означает, что нужно отказываться от резервного копирования. Backup must have!;
- Буквы дисков, на котором находится база и логи на исходном сервере, должны быть и на реплицируемом. К примеру, если у вас база находится на диске D:, а логи на диске E: — то на сервере, который будет держать копии этой базы, должны быть такие же диски с такими же буквами.
Автору спасибо! Очень информативно все описано, пошагово и доступно. DAG — действительно полезная штука, но, как сказано выше Backup must have! 🙂
Вопрос, может глупый но все же, на данный момент есть 1 рабочий Exch сервер, если подниму второй на отдельной машине, и выполню все эти инструкции оно заработает? на сколько знаю в АД пользователям прописываются БД почты, их я так понимаю нужно будет ручками править?
Конечно заработает. И не нужно ничего править. Вы подымаете новый сервер, создает DAG. И включаете копирование на существующей БД.
В данной статье это и было описано. В DAG добавлялась MailDB-01, в которой были уже пользователи.
блин. чето какая то фигня, добавляю сервера, основной сервер в кластер добавляется а когда начинается добавления второго сервера, долллго думает а потом выдает «An error occurred while attempting a cluster operation. Error: Cluster API failed: «AddClusterNode() (MaxPercentage=100) failed with 0x5b4. Error: «
Вы гуглить пробовали?
http://www.msexchange.org/blogs/bhargavs/exchange-server/createcluster-failed-with-0x5-adding-members-to-dag-in-exchange-2013.html
http://blogs.technet.com/b/meamcs/archive/2014/02/13/exchange-2013-and-windows-2012-error-when-try-to-add-server-to-the-dag.aspx
Спасибо за статью! Подскажите пожалуйста, на пункте создания DAG, есть поле Database Availability Group IP address. Какой айпишник там нужно указывать? Исходя из чего он должен формироваться. По логике нужно создать некий NLB, который будет перебирать все сервера с копиями баз данных? Или я в неправильном направлении мыслю? Спасибо.
Свободный, не из пула DHCP. При создании DAG — создается кластер, у которого должно быть свое имя и IP.
Спасибо, был затык в настройке сети, статья помогла разобраться.
Доброго времени! Статья бомба. Единственное что не понятно. Теперь надо поставить в настройках ДНС отправка писем с ДАГ IP?
Нет.
А как тогда письмо попадет на второй сервер с ексченджем? К примеру: Есть сервер 10.0.0.1 А и 10.0.0.2 В, подняли ДАГ на 10.0.0.3. В настройках домена для МХ указан IP 213.213.213.213 (Наш внешний IP где расположен сервер) …. В Маршрутизаторе почтовые службы направлены на Сервер А. Как в случае выхода Сервера А, письма начнут ходить через Сервер В??? Прописать в настройках MX два сервера с разными приоритетами? Или оно работает на автомате?
В предыдущем коменте Вы спрашивали об отрпавке писем. Сейчас пишете про входящие. В Вашем случае — да, можно сделать две МХ записи: первую как Вы писали. А вторую на IP 213.213.213.214 и на маршрутизаторе сделать проброс на сервер В.
Второй вариант – поставить балансировщик перед Exchange.
Советую Вам почитать тему транспорта почты.
Спасибо за статью.
Возник вопрос.
Имею один сервер WS 2012 R2, Exchange 2013. Все роли и службы на нём (MailBox, CAS, HUB, SQL etc).
Решил организовать DAG и CAS HA из трёх серверов:
1) Тот, что первый
2) Mailbox, CAS
3) Mailbox
Короче, аналогично этой статьи: https://practical365.com/exchange-server/exchange-2013-client-access-server-high-availability/
Поднял два WS 2012 R2. Установил как и планировал на один Maibox + CAS, на второй только Mailbox.
И тут меня осенило: «СТОП! А почему во время установки Exchange он ничего не спрашивал про SQL Server?»
Так вот вопрос: SQL Server же тоже надо ставить на все сервера? Или нет? А как тогда будет отрабатывать отказоустойчивость?
Уже несколько мануалов прочитал по DAG, что-то про SQL нигде не пишут, как будто достаточно просто Exchange….???
Разъясните, пожалуйста.
SQL не нужен. Exchange сам создаст БД (*.edb ).
Добрый день. Статья очень хорошая, сделал все поней. Репликация работает.Есть вопрос, есть 2 сервера в dag кластере, на обоих роль cas и mailbox. Не пойму как сделать так что бы при падении одного из серверов клиенты могли переключатся на второй?
Добрый день. сделайте в ДНС две А записи на ИП этих серверов (DNS Round Robin)
Пример
mail.mydomain.com 192.168.25.54
mail.mydomain.com 192.168.25.55
ну или перед Экчами ставить балансировщик
Добрый день. В днс есть записи на оба сервера. Однако при выключении master клиенты не могут подключится к slave.Для уточнения нескольких вопросов хотелось бы поговорить с Вами в личке, почта или скайп. Такое возможно?
Здравствуйте, появилась проблема. На Echange 2013 есть DAG из 3 баз на 3 mailbox. C некоторого времени все три базы активны на одном сервере mailbox, т.к. при активации любой из баз на двух других серверах на клиентах, настроенных по протоколу POP3 и IMAP появляется запрос логина и пароля. И еще перестала работать проверка подлинности, галочку у клиента ставишь — письма не отправляются, галочку убираешь — отправляются. Откуда начинать копать? Или же стоит переустанавливать эти два mailbox?
Добрый день.
Трабелшутинг — это отдельная тема.
нужно все проверять — все ли службы запущены, как настроены конекторы, нормально ли синкаютяс все БД, все ли ОК с сертификатыми, и есть ли свободное место в конце концов…
Рекомендую задавтаь такие вопросы на спец. форумах или в группе ФБ,
как пример:
https://www.facebook.com/groups/exchangeserverru/