Предыстория. Мы будем использовать Exchange 2010 для доставки своевременных оповещений по электронной почте известным пользователям за пределами нашей организации (давайте назовем нашу организацию «internal.loc»).
Проект требует некоторой возможности аварийного переключения, но без использования служб кластеризации MS.
У нас есть две машины с Windows Server 2008 Standard. Exchange установлен на обоих, и оба настроены как Hub Trasnports. Назовем эти две машины EXCH-A и EXCH-B.
Уведомления по электронной почте будут генерироваться нашим собственным бизнес-приложением. У нас также есть еще один домен (назовем его alerts.foo), который будет действовать как отправитель предупреждений и получатель ответного электронного письма.
Итак, вот основная схема почтового потока:
Приложение Biz> EXCH-A> SMTP-A> Кому: user@external.com ОТ: alert@alerts.foo
Если EXCH-A выходит из строя, значит, у нас есть EXCH-B в режиме ожидания. Наше бизнес-приложение сначала опрашивает EXCH-A на предмет сердцебиения. Если нет активности, наше бизнес-приложение будет использовать EXCH-B для доставки предупреждений.
Вот более конкретное описание почтового потока:
1) Приложение Biz проверяет работоспособность EXCH-A.
2) Если EXCH-A в порядке, перейдите к использованию SMTP-A для доставки TO: user@external.com ОТ: alert@alerts.foo.
3) Если EXCH-A недоступен, используйте EXCH-B / SMPT-B для доставки на адрес user@external.com.
ВОПРОС: Как мы обрабатываем ответное электронное письмо? В частности, что касается настройки почтового ящика и конфигурации DC / AD.
Предположим, что и у EXCH-A, и у EXCH-B есть почтовые ящики, и предположим, что у нас есть один внутренний пользователь - alert@alerts.foo - действующий как отправитель и получатель для ответного письма.
С одной машиной это более или менее обычная установка. С двумя машинами (в нашей настройке аварийного переключения для бедняков), как бы мы маршрутизировали обратную почту, если EXCH-A недоступен. Можно ли настроить два незаметных почтовых ящика для пользователя alert@alerts.foo, по одному на каждой машине? Или, возможно, два почтовых ящика должны быть «синхронизированы»?
Буду благодарен за любую помощь и, конечно же, буду рад уточнить при необходимости.
Лично я бы использовал балансировку нагрузки TCP в сочетании с группами доступности баз данных, что-то вроде использования HAProxy для балансировки нагрузки SMTP, что позволило бы вам в значительной степени усовершенствовать эту отработку отказа в соответствии с вашими потребностями.
Это должно дать вам решение аварийного переключения для "бедных" людей, которое вы ищете.
Вы можете настроить группу с именем alert@alert.foo и отправлять копии сообщений на оба сервера. Транспортный узел должен попытаться доставить сообщения на оба сервера и просто оставить сообщения в очереди на EXCH-B, пока не придет EXCH-A. резервное копирование. Поскольку вы можете отправлять сообщения, используя адрес электронной почты группы, это может быть один из способов сделать это ... Могут быть и другие способы.
Если бы вы использовали Enterprise, Exch справился бы с этим за вас, используя встроенные службы Exch Clustering. Они неплохо справляются с этими сценариями.