Недавно мне дали задание настроить почтовый сервер на основе IMAP, который включает переключение на резервный сервер. У меня есть опыт в этой области, но все это было для одного сервера. Я провел много исследований по вариантам, касающимся аспекта аварийного переключения, но я хотел бы получить некоторые отзывы от людей, у которых больше опыта, чем у меня, когда дело доходит до такого рода вещей.
Требования предъявляются к двум географически разнесенным серверам с настройкой аварийного переключения в активной / пассивной конфигурации. К сожалению, некоторые части решения уже были специфицированы и заказаны еще до моего участия. Есть два сервера, подключенных через канал связи с низкой задержкой и высокой пропускной способностью в соответствующей сети интернет-провайдеров. Общего хранилища / SAN нет, только две машины. Поставщику услуг Интернета было поручено предоставить систему, которая отслеживает активную машину и при необходимости переназначает виртуальный IP-адрес резервной машине. Дополнительным требованием является сохранение всех данных почтового ящика в случае переключения на резервную машину. Кажется, это исключает более простое решение, такое как периодическая синхронизация с резервной машиной (пожалуйста, поправьте меня, если я ошибаюсь!).
Проведя небольшое исследование, я придумал несколько возможных альтернатив. Я не изучил каждый из них достаточно, чтобы действительно решить, все ли они жизнеспособны, но вот они:
DRDB становится все более сложным и может оказаться вне досягаемости, учитывая мои временные ограничения.
Я также должен упомянуть, что это должно быть решение на базе Linux. Почти наверняка Centos / RHEL. Что касается того, какой пакет IMAP использовать, я готов использовать все, что соответствует моим требованиям. В настоящее время я изучаю несколько, включая Dovecot, Cyrus и парочку других.
Я действительно ищу мнения людей относительно вышеперечисленных вариантов и любых других предложений, которые я, возможно, не учел. Я понимаю, что вам может быть сложно дать однозначный ответ без полного понимания всех задействованных факторов, но мы очень ценим любой вклад. Я с радостью отвечу на любые вопросы по деталям, если это поможет вам адаптировать ваши ответы.
Большое спасибо
У Dovecot есть утилита зеркалирования почтового ящика (dsync), которая может помочь вам в этом и, вероятно, будет очень эффективной, поскольку находится на самом высоком уровне. Я не знаю, сколько ресурсов потребуется для хранения почтовых ящиков в базе данных sql, но файлы imo быстрее и проще в обслуживании.
Низкая задержка и высокая пропускная способность звучат хорошо для DRBD. Используйте режим синхронизации (C) для репликации всех связанных файлов - это будет работать, если все, что записывается на диск, сохраняется с сохранением транзакции (зависит от вашего IMAP-сервера).
Но если для вашего IMAP-сервера есть встроенные зеркальные технологии - почему бы вам их не использовать? Это, вероятно, будет более экономичным, если вы получите аварийное переключение во время транзакции.