Як створити високу доступність системи Postfix?


12

Мені потрібно встановити віддалене дзеркало для сервера Postfix (де вміст обох поштових серверів повинен бути однаковим у будь-який час).

Ідея полягає в тому, що якщо основний сервер в якийсь момент зійде, дзеркальний сервер займе своє місце, керувати новими вхідними повідомленнями, а коли сервер електронної пошти знову з’явиться, оновить його новими електронними листами та повернеться це управління для управління новими вхідними повідомленнями.

Поштові сервери розміщуватимуться в різних місцях (тобто maindomain.com, themirrorsite.com).

Отримати простий резервний сервер не здається занадто складним:

Але проблема полягає в тому, що ця конфігурація не зробить резервний сайт повним дзеркалом основного поштового сервера (він буде містити лише електронні листи, отримані, поки основний сервер не працює).

Чи є спосіб досягти необхідної конфігурації?

Відповіді:


22

Результат, якого ви хочете досягти, і спосіб, яким ви вирішили це зробити, - це дуже різні речі. Якщо бути тупим, те, що ви хочете реалізувати, є поганою ідеєю, і якщо вам вдасться якось встигнути змусити його працювати, воно не працюватиме дуже довго (або дуже добре).

На що на це питання важко відповісти, це те, що ви прискочили безпосередньо до впровадження і не описали нічого корисного щодо свого оточення або того, що ви намагаєтесь реально досягти. Не робіть цього, ви отримаєте набагато кращі результати тут, якщо "покажете свою роботу".

Дозвольте запропонувати кілька сценаріїв, щоб ви могли скуштувати, що можливо, практичне та корисне:

  • Забезпечення втрати пошти: (Я не думаю, що це саме те, що вам потрібно, оскільки документація, яку ви посилаєтеся, охоплює це належним чином). Все, що ви хочете мати тут, - це впевненість, що незалежно від того, наскільки довго працює ваша інфраструктура доставки та управління, ви не будете відмовтеся від будь-якої пошти, і ви можете контролювати, коли буде здійснена доставка. Для цього "проста" резервна копія MX буде працювати належним чином. Я кажу "просто", тому що вам потрібно копіювати багато даних для резервного копіювання (вся анти-спам-логіка, дійсна інформація користувача / псевдоніму, щоб ви могли належним чином відскакувати недійсну пошту під час SMTP, подібне), але все це написано , автоматизований і досить тривіально реалізований, з обережністю. Поки у вас є достатньо диска для черги всієї пошти,
  • Забезпечення повної доступності поштової системи : Здається, це те, що ви хочете, але це не просто і красиво. В основному, ви хочете мати можливість надати "повну" поштову послугу вашій базі користувачів у випадку повної відмови сайту. В принципі, це насправді неможливо, оскільки реплікація не миттєва, але ви можете принаймні досягти достатнього рівня надійності. Хоча важкий біт - не MTA; це сам магазин пошти. Вам потрібно буде розробити спосіб реплікації всіх операцій зберігання пошти (нова доставка пошти, зміни стану повідомлень, видалення) на другий сайт у майже-реальному часі - і робити це обома способами, залежно від того, на якому веб-сайті живе . Ви можете скористатися дешевим варіантом періодичної rsync (ризикуючи, що все, що робиться з моменту останньої rsync, втрачено назавждиякщо вам потрібно відмовитися) або перейдіть до різних методів реплікації на рівні файлів або блоків, щоб спробувати тримати речі синхронізованими в реальному часі (зменшуючи кількість втрат даних в обмін на значно складніші конфігурації та операції) . Деякі поштові системи мають підтримку вбудованої реплікації, яка може полегшити життя. Тоді є вся проблема про невдачу, і як це зробити, а потім відмова назад , що знову важче, і, нарешті, вам доведеться періодично її перевіряти, щоб переконатися, що оновлення ОС ви деякий час назад не зробили зламати що-небудь ...

В основному останній варіант болючий і дратівливий. Мої особисті переваги, якщо ви можете піти з цим (і ви здивуєтеся, як часто це можливо), - скласти всі свої яйця в один кошик, попередньо переконавшись, що у вас справді хороший міцний кошик (належна інженерія системи ), зберігаючи під рукою запаси кошиків та інструментів (орієнтуючись на високу відновлюваність ), і гарантуючи, що люди знають, що раз у раз, кілька яєць можуть зламатися, і вам дуже шкода, але життя не ідеальне (не робіть гарантій угод про угода, які не є розумними).

Бувають випадки, коли вам потрібна надвисока доступність, і я створив системи, які забезпечують це, але вони не прості, і в багатьох випадках вони не рентабельні, для чого ми тут. Так, HA - це круто і сексуально, і ви отримуєте довіру до уваги за побудову якоїсь високої чудовиськотості складності, але ми не тут, щоб погладити наше его. Ми тут, щоб доставити ділову цінність, і мені дуже шкода, але високодоступний кластерний поштовий кластер Рубе Голдберг, швидше за все, не надасть стільки цінності, як проста, міцна поштова послуга та випадкові «ми» Вибачте за відключення пошти, ми повернемось через годину, будь ласка, пийте нам каву та булочку ".


2
Я не міг би сказати це краще і сам.
voretaq7

4
Вибачте, що я можу запропонувати лише один +1
mailq

Я думаю, що NAS в основному вирішує проблему зберігання та синхронізації пошти, чи не так? Особливо, якщо ваш електронний магазин стає великим і ви розміщуєте пошту для численних доменів.
Ерні

Ні, NAS становить близько 5% всієї проблеми, і це робить погані речі вашій продуктивності та масштабованості.
живіт

1

Домогтися цього можна за допомогою відмови від MX DNS + системи реплікації даних.

Для відмови MX: Два поштові сервери потребують допомоги з налаштуванням dns для резервного копіювання

Для реплікації даних: http://www.drbd.org/docs/install/

- $


Буде drbd працювати з серверами, які не знаходяться в одній локальній мережі? Основний сервер і сервер з відмовою повинні спілкуватися лише через Інтернет, тому я не впевнений, чи спрацює це в такому випадку.
VanHackman

DRBD має власний проксі-продукт, який значно покращує реплікацію WAN; це не дешево, і не гарантується, що він буде постійно оновлювати всюди.
живіт

1

Я використовував dbmail, щоб досягти подібного рішення. dbmail зберігає всю електронну пошту в базі даних. Ви можете налаштувати реплікацію бази даних, щоб переконатися, що ваші електронні листи також зберігаються у віддаленому місці. Це ускладнює управління поштовою системою, оскільки вам доведеться керувати базою даних, а також електронною поштою.


0

Те, що ви хочете, - це реплікація Postfix, яка, на мою думку, Postfix не підтримує в основному. Я бачив таке рішення, яким я бачив інших людей, - реплікація файлів даних Postfix між серверами за допомогою розподіленої файлової системи.


3
Дзеркальний Postfix - це найпростіший. Але це не проблема. Найскладніше - як синхронізувати сховище пошти (mbox або Maildir). Збереження пошти на NFS для IMAP майже неможливо і призводить до того, що знову з’явиться одна точка відмови.
mailq
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.