Wie erstelle ich ein hochverfügbares Postfix-System?


12

Ich muss einen Remote-Spiegel für einen Postfix-Server einrichten (wobei der Inhalt beider Mail-Server jederzeit identisch sein sollte).

Die Idee ist, dass wenn der Hauptserver irgendwann ausfällt, der Spiegelserver seinen Platz einnimmt, die neuen eingehenden Mails verwaltet und wenn der E-Mail-Server wieder hochfährt, ihn mit den neuen E-Mails aktualisiert und zurückkehrt Es ist die Steuerung, um die neuen eingehenden Mails zu verwalten.

Die Mailserver werden an verschiedenen Orten gehostet (zB maindomain.com, themirrorsite.com).

Es scheint nicht allzu schwierig, einen einfachen Backup-Server zu bekommen:

Das Problem ist jedoch, dass diese Konfiguration die Backup-Site nicht zu einer vollständigen Spiegelung des Haupt-Mail-Servers macht (sie enthält nur die empfangenen E-Mails, während der Haupt-Server inaktiv ist).

Gibt es eine Möglichkeit, die erforderliche Konfiguration zu erreichen?

Antworten:


22

Das Ergebnis, das Sie erzielen möchten, und die Art und Weise, wie Sie sich dazu entschlossen haben, sind sehr unterschiedliche Dinge. Um ehrlich zu sein, was Sie implementieren möchten, ist eine schlechte Idee, und wenn Sie es irgendwie schaffen, es zum Laufen zu bringen, wird es nicht sehr lange (oder sehr gut) funktionieren.

Was die Beantwortung dieser Frage schwierig macht, ist, dass Sie direkt zur Implementierung gesprungen sind und nichts Nützliches über Ihre Umgebung oder das, was Sie tatsächlich erreichen möchten, beschrieben haben. Tun Sie das bitte nicht, Sie werden hier viel bessere Ergebnisse erzielen, wenn Sie "Ihre Arbeit zeigen".

Lassen Sie mich jedoch ein paar Szenarien aufstellen, um Ihnen einen Eindruck davon zu geben, was möglich, praktisch und nützlich ist:

  • Stellen Sie sicher, dass keine E-Mails verloren gehen: (Ich glaube nicht, dass Sie dies benötigen, da die Dokumentation, auf die Sie verweisen, dies angemessen abdeckt.) Sie möchten hier lediglich die Gewissheit haben, dass Sie dies nicht tun, unabhängig davon, wie lange Ihre Mail-Zustellungs- und Verwaltungsinfrastruktur inaktiv ist Bounce jede Mail, und Sie können steuern, wann die Zustellung erfolgt. Hierfür wird eine "einfache" MX-Sicherung außerhalb des Standorts ausreichend funktionieren. Ich sage "einfach", weil Sie eine Menge Daten in das Backup replizieren müssen (alle Anti-Spam-Logik, gültige Benutzer- / Alias-Informationen, damit Sie ungültige E-Mails zur SMTP-Zeit ordnungsgemäß bouncen können), aber alles ist skriptfähig , automatisierbar und mit ein wenig Sorgfalt ziemlich einfach zu implementieren. Solange Sie über genügend Festplatten verfügen, um alle E-Mails in die Warteschlange zu stellen,
  • Gewährleistung der vollständigen Verfügbarkeit des Mailsystems : Es hört sich so an, als ob Sie es möchten, aber es ist nicht einfach oder hübsch. Grundsätzlich möchten Sie in der Lage sein, Ihren Userbase einen "vollständigen" Mail-Service für den Fall eines vollständigen Site-Ausfalls zur Verfügung zu stellen. Im Prinzip ist dies tatsächlich unmöglich, da die Replikation nicht sofort erfolgt, aber Sie können zumindest ein angemessenes Maß an Zuverlässigkeit erreichen. Das Schwierige ist jedoch nicht der MTA. es ist der Postladen selbst. Sie müssen einen Weg finden, um alle E-Mail-Speichervorgänge (neue E-Mail-Zustellung, Änderungen des Nachrichtenstatus, Löschen) nahezu in Echtzeit auf den zweiten Standort zu replizieren - und zwar auf beide Arten, je nachdem, welcher Standort aktiv ist . Sie können die kostengünstige Option einer regelmäßigen Synchronisierung wählen (mit dem Risiko, dass alles, was seit der letzten Synchronisierung getan wurde, für immer verloren geht)Wenn ein Failover erforderlich ist, oder verschiedene Replikationstechniken auf Datei- oder Blockebene, um die Daten nahezu in Echtzeit synchron zu halten (Reduzierung des Datenverlusts im Gegenzug für eine erheblich kompliziertere Konfiguration und Operation). . Einige Mail-Systeme unterstützen eine Art integrierte Replikation, die das Leben erleichtern kann. Dann gibt es die ganze Frage des Failover und wie tun Sie das, und dann andernfalls zurück , das härter ist wieder, und schließlich haben Sie , es regelmäßig zu testen, um sicherzustellen , dass OS - Upgrade Sie haben vor einiger Zeit nicht tat alles kaputt machen ...

Grundsätzlich ist die letztere Option schmerzhaft und ärgerlich. Meine persönliche Präferenz, wenn Sie damit durchkommen können (und Sie wären überrascht, wie oft Sie können), ist es, alle Ihre Eier in einen Korb zu legen, nachdem Sie sichergestellt haben, dass Sie einen wirklich guten, robusten Korb haben (richtige Systemtechnik) ), einen Vorrat an Korbflecken und Werkzeugen bereithalten (mit dem Schwerpunkt auf hoher Wiederherstellbarkeit ) und sicherstellen, dass die Leute von Zeit zu Zeit wissen, dass ein paar Eier zerbrechen können und es Ihnen wirklich leid tut, dass das Leben nicht perfekt ist (Machen Sie keine SLA-Garantien, die nicht zumutbar sind.)

Es gibt Zeiten, in denen Sie ultrahohe Verfügbarkeit benötigen, und ich habe Systeme entwickelt, die dies sicherstellen, aber sie sind nicht einfach und in vielen Fällen nicht kostengünstig. Deshalb sind wir hier. Ja, HA ist cool und sexy, und man bekommt den Verdienst, eine gewaltige Monstrosität der Komplexität aufgebaut zu haben, aber wir sind nicht hier, um unser Ego zu streicheln. Wir sind hier, um geschäftlichen Nutzen zu liefern, und es tut mir leid, aber ein hochverfügbarer Mail-Cluster mit mehreren Standorten von Rube Goldberg bietet wahrscheinlich nicht so viel Wert wie ein einfacher, zuverlässiger Mail-Service und gelegentlich "wir". Entschuldigen Sie den Mail-Ausfall, wir haben die Systeme in einer Stunde wieder, bitte zögern Sie nicht, einen Kaffee und einen Muffin auf unserer Ankündigung zu trinken.


2
Ich hätte es nicht besser sagen können.
Voretaq7

4
Sorry, dass ich nur eine +1 anbieten kann
mailq 21.08.11

Ich denke, dass ein NAS das Problem der Mail-Speicherung und Synchronisierung im Grunde löst, nicht wahr? Vor allem, wenn Ihr E-Mail-Shop groß wird und Sie E-Mails für zahlreiche Domains hosten.
Ernie

Nein, ein NAS macht etwa 5% des gesamten Problems aus und beeinträchtigt Ihre Leistung und Skalierbarkeit.
womble

1

Sie können dies durch MX DNS-Failover + ein Datenreplikationssystem erreichen.

Für MX-Failover: Zwei Mail-Server benötigen Hilfe bei der DNS-Konfiguration für den Backup-Server

Für die Datenreplikation: http://www.drbd.org/docs/install/

- $


Würde DRBD mit Servern funktionieren, die sich nicht im selben LAN befinden? Der Hauptserver und der Failover-Server sollten nur über das Internet kommunizieren, daher bin ich mir nicht sicher, ob dies in diesem Fall funktioniert.
VanHackman

DRBD verfügt über ein proprietäres Proxy-Produkt, das die WAN-Replikation erheblich verbessert. Es ist nicht billig und garantiert nicht überall auf dem neuesten Stand.
womble

1

Ich habe Dbmail verwendet , um eine ähnliche Lösung zu erreichen. dbmail speichert alle E-Mails in einer Datenbank. Sie können die Datenbankreplikation einrichten, um sicherzustellen, dass Ihre E-Mails auch am Remotestandort gespeichert werden. Dies erschwert die Verwaltung des Mail-Systems, da Sie sowohl die Datenbank als auch die E-Mail verwalten müssen.


0

Was Sie wollen, ist die Postfix-Replikation, die Postfix meiner Meinung nach nicht nativ unterstützt. Die Lösung, die ich bei anderen Benutzern gesehen habe, ist das Replizieren der Postfix-Datendateien zwischen Servern mithilfe eines verteilten Dateisystems.


3
Das Spiegeln von Postfix ist ganz einfach. Das ist aber nicht das Problem. Die Schwierigkeit besteht darin, den Mail-Speicher (mbox oder Maildir) zu synchronisieren. Das Speichern von E-Mails in NFS für IMAP ist nahezu unmöglich und führt zu einem erneuten Single-Point-of-Failure.
mailq
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.