Мне нужно настроить удаленное зеркало для постфиксного сервера (где содержимое обоих почтовых серверов должно быть одинаковым в любое время).
Идея состоит в том, что если главный сервер в какой-то момент выйдет из строя, его место займет зеркальный сервер, который будет управлять новыми входящими сообщениями, а когда сервер электронной почты снова появится, он обновит его новыми сообщениями электронной почты и вернется. это средство управления новыми входящими сообщениями.
Почтовые серверы будут размещены в разных местах (например, maindomain.com, themirrorsite.com).
Получить простой резервный сервер не так уж сложно:
Но проблема в том, что эта конфигурация не сделает резервный сайт полным зеркалом основного почтового сервера (он будет хранить только полученные электронные письма, пока основной сервер не работает).
Есть ли способ добиться требуемой конфигурации?
Результат, которого вы хотите достичь, и способ, которым вы решили это сделать, - это разные вещи. Откровенно говоря, то, что вы хотите реализовать, - плохая идея, и если вам удастся каким-то образом заставить это работать, это не будет работать очень долго (или очень хорошо).
Что затрудняет ответ на этот вопрос, так это то, что вы сразу перешли к реализации и не описали что-нибудь полезно для вашего окружения или того, чего вы действительно пытаетесь достичь. Пожалуйста, не делайте этого, вы получите здесь гораздо лучшие результаты, если «покажете свою работу».
Однако позвольте мне представить пару сценариев, чтобы вы почувствовали, что возможно, практично и полезно:
В основном последний вариант болезненный и надоедливый. Мое личное предпочтение, если вам это сойдет с рук (и вы будете удивлены, насколько часто это удастся), - это класть все яйца в одну корзину, предварительно убедившись, что у вас действительно хорошая, прочная корзина (правильная системная инженерия ), держа под рукой запас патчей и инструментов (уделяя особое внимание Высокая восстанавливаемость) и чтобы люди знали, что время от времени несколько яиц могут сломаться, и вам действительно жаль, но жизнь не идеальна (не давайте гарантии SLA, которые не являются разумными).
Бывают случаи, когда вам нужна сверхвысокая доступность, и я создал системы, которые это обеспечивают, но они непростые и во многих случаях нерентабельны, и именно для этого мы здесь. Да, HA - это круто и сексуально, и вы получаете кредит компьютерных фанатов за то, что построили какое-то чудовищное чудовище сложности, но мы здесь не для того, чтобы задеть наше эго. Мы здесь, чтобы приносить пользу для бизнеса, и мне очень жаль, но высокодоступный многосайтовый почтовый кластер Руба Голдберга вряд ли будет иметь такую же ценность, как простая и надежная почтовая служба и случайные «мы» Извините за перерыв в работе почты, мы вернем системы через час, пожалуйста, не стесняйтесь выпить нам кофе и выпить кекс ».
Я использовал dbmail для достижения аналогичного решения. dbmail хранит всю электронную почту в базе данных. Вы можете настроить репликацию базы данных, чтобы убедиться, что ваши электронные письма также хранятся в удаленном месте. Это усложняет управление почтовой системой, так как вам нужно управлять как базой данных, так и электронной почтой.
Вы можете добиться этого с помощью MX DNS failover + системы репликации данных.
Для аварийного переключения MX: Два почтовых сервера, нужна помощь с настройкой DNS для резервного
Для репликации данных: http://www.drbd.org/docs/install/
- $
Вам нужна репликация Postfix, которую, как мне кажется, Postfix изначально не поддерживает. Решение, которое я видел другими людьми, - это репликация файлов данных Postfix между серверами с использованием распределенной файловой системы.
Я не знаю об обычном подходе к кластеризации, который был бы здесь применим.
Для входящей почты решением будет несколько серверов (активный-активный с одинаковым приоритетом MX).
Для исходящей почты используйте VIP для службы SMTP (это также альтернативное решение для входящей почты) или с помощью haproxy, настроенного для поиска работающей службы в качестве посредника.
Остается только проблема с помещением почты в очередь на сервере.