Postfix Failover

  • Themenstarter Themenstarter Anonymouse
  • Beginndatum Beginndatum
A

Anonymouse

Guest
Bin gerade an der Planung eines Postfix Failovers. Platt ausgedrückt: Zwei Server mit identischer Konfiguration. Fällt der eine aus übernimmt der andere dessen Aufgabe.

Einer der MTA's soll im Idealfall dann immer von der Außenwelt erreichbar sein und auch für die Mail-Zustellung für die Clients (über dovecot).

Jetzt bin ich kein Freund von komplizierten Lösungen, die eine Wartung bzw. Support nur erschweren, falls es wirklich zu einem Ausfall des primären MTA's kommen sollte.

Mein bisher Favorit ist daher folgende Variante:
- beide Server haben die identische Hardware
- Debian Linux als OS
- identische Konfiguration von Postfix / dovecot
- Verwendung von UCARP

Mit UCARP ist es möglich eine virtuelle IP-Adresse zwischen zwei Hosts zu teilen. Beide werden also mit UCARP konfiguriert. Die MTA's werden unter der virtuellen IP-Adresse bekannt gemacht. Fällt ein MTA aus (nicht mehr erreichbar) übernimmt UCARP den Wechsel zur zweiten, nur UCARP bekannten IP-Adresse. Weder Clients noch andere MTAs sollten von einem Ausfall also etwas mitbekommen.

Jemand schonmal so ein Setup aufgesetzt? Vor-/Nachteile? Oder andere Tips?

Danke! :)
 
Ich hab schon diverse Mail-Systeme aufgesetzt und habe die besten Erfahrungen mit 2 Varianten gemacht.

Variante 1: 2 Mailserver hinter einem Loadbalancer mit einem zentralen Storage. Da auch Loadbalancer und Storage redundant sein müssen, ist das eher für grössere Mailsysteme geeignet.

Variante 2: Setup der Maschinen mit Heartbeat. Da prinzipiell nur 2 Maschinen notwendig sind, wovon eine als Hot-Standby läuft, ist das ganz brauchbar für kleinere Mailsysteme. Aber auch hier muss man einen zentralisierten Storage dahinter klemmen, damit beide Server an die Mailboxen kommen. Dafür kann man aber auch Webdrives u.ä. nutzen, solange man einen deutschen Anbieter nutzt, der verschlüsselte Übertragung anbietet.

Die Frage ist halt, was man erreichen will und welche Infrastruktur vorhanden ist. Ein einfaches IP-Failover wird nicht reichen, da man einen zentralen Storage braucht, damit beide Mailserver an die gleichen Mails kommen ohne dass man sie parallel an beide zustellen muss. Bei kommerziellen "Projekten" hat man ja evtl. durch die restliche Infrastruktur bereits einen redundanten Storage zur Verfügung. Bei einem privaten Projekt kann man Cloud-Speicher wie S3 nutzen. Will man auf einen zentralen Storage verzichten, muss dafür gesorgt werden, dass die Emails an beide Mailserver zugestellt werden. Ein Mailserver-Netzwerk mit Loadbalancing oder Mailproxy ist da zumeist die brauchbarste Lösung. Sonst beisst sich das mit dem IP-Failover.
 
In diesem Fall sollte ein einfaches IP-Failover sogar tatsächlich ausreichen. Die Clients holen ihre Mails mit POP3 vom Server ab. Es muss also nur sichergestellt werden, dass immer einer der beiden erreichbar und funktionstüchtig ist.

Geht man zu IMAP über, dann würde ich die von dir vorgeschlagene Lösung 2 favorisieren inklusive einem Storage auf den beide MTAs Zugriff haben.

Aber danke dir bitmuncher. Deckt sich ungefähr mit meinen Überlegungen. :thumb_up:
 
Was ist mit den Mails, die von den Clients vor einem Crash nicht abgeholt wurden? Über POP3 fetch't man ja auch nicht jede Sekunde oder Minute. Die wären ohne redundanten Storage oder parallele Zustellung zu beiden Servern verloren.
 
Was ist mit den Mails, die von den Clients vor einem Crash nicht abgeholt wurden? Über POP3 fetch't man ja auch nicht jede Sekunde oder Minute. Die wären ohne redundanten Storage oder parallele Zustellung zu beiden Servern verloren.

Stimmt. Daran hatte ich jetzt ehrlich gesagt gar nicht gedacht. Dann muss wohl doch ein externer Storage her, auf den beide MTAs zugreifen.
Problem hierbei nur: Der Storage sollte ja nur immer von einem MTA gemountet sein. Gibt's dafür eine Lösung, damit die sich nicht "beißen"?
 
Zurück
Oben