Nimmt Postfix E-Mails an wenn das Dateisystem unerwarteterweise plötzlich read-only ist?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Nimmt Postfix E-Mails an wenn das Dateisystem unerwarteterweise plötzlich read-only ist?

Hubert Schölnast-2
Hallo

Ich habe Postfix auf einem virtuellen Server laufen und habe heute
morgen erfahren, dass das Dateisystem meines Servers gegen Mitternacht
in den read-only-Modus geschalten wurde. (Warum konnte man mir nicht
sagen). Erst kurz nach 9 Uhr morgens wurde mein Server dann rebootet,
seitdem läuft er wieder normal.

Angeblich ist er in diesen 9 Stunden weitergelaufen, konnte aber nichts
(weder empfangene E-Mails noch Log-Einträge noch sonst etwas) auf die
Festplatte schreiben.

Nun frage ich mich, wie Postfix in so einem Fall auf eingehende E-Mails
reagiert. Ich halte zwei Varianten für denkbar:

A)
Postfix erkennt noch vor Ende des SMTP-Dialogs, dass es keine E-Mails
speichern kann und meldet dem Client einen temporären Fehler. Dann ist
alles gut, der Client wird später nocheinmal versuchen die E-Mail
zuzustellen, so lange bis es endlich klappt oder bis ein Timeout
abläuft. In diesem Fall erhält der Absender vom Client eine Nachricht
die ihn über die Unzustellbarkeit informiert.

B)
Postfix bemerkt das nicht vor Ende des SMTP-Dialogs.
Der Client baut eine TCP-Verbindung zu meinem Postfix auf, dieser meldet
sich mit 220. Auf HELO usw. antwortet Postfix mit 250, dann sendet der
Client DATA und Postfix antwortet mit 354.
Jetzt sendet der Client die eigentliche E-Mail und Postfix empfängt die
Daten und hält sie zumindest während des Empfangens im RAM-Speicher vor.
Und jetzt kommt die entscheidende Frage:
Schreibt Postfix die empfangenen Daten auf die Festplatte bevor es an
den Client 250 (oder 4xx/5xx) sendet?
Wenn nein, erhält nämlich der Client die Information, dass er die E-Mail
erfolgreich zugestellt hat (250). Es folgen QUIT und 221, dann wird die
TCP-Verbindung abgebaut und die Verbindung ist damit getrennt. Der
Client kann die E-Mail aus seinem Speicher löschen, weil er ja von
meinem Postfix die Meldung bekommen hat, dass die E-Mail empfangen
worden ist.
Aber Postfix wird scheitern wenn es versucht die E-Mail auf die
schreibgeschützte Festplatte zu schrieben und hat keine Möglichkeit
mehr, nachträglich den Client zu informieren. Die E-Mail wäre in diesem
Fall verloren.

Ich vermute ja, dass Postfix erst die empfangenen Daten wirklich
physisch in den Permanentspeicher schreibt und erst dann den Empfang der
Nachricht bestätigt, aber das ist eben nur eine Vermutung.

Kann das jemand definitiv bestätigen?

Danke!

LG
Hubert Schölnast
Reply | Threaded
Open this post in threaded view
|

Re: Nimmt Postfix E-Mails an wenn das Dateisystem unerwarteterweise plötzlich read-only ist?

lst_hoe02

Zitat von Hubert Schölnast <[hidden email]>:

> Hallo
>
> Ich habe Postfix auf einem virtuellen Server laufen und habe heute  
> morgen erfahren, dass das Dateisystem meines Servers gegen  
> Mitternacht in den read-only-Modus geschalten wurde. (Warum konnte  
> man mir nicht sagen). Erst kurz nach 9 Uhr morgens wurde mein Server  
> dann rebootet, seitdem läuft er wieder normal.
>
> Angeblich ist er in diesen 9 Stunden weitergelaufen, konnte aber  
> nichts (weder empfangene E-Mails noch Log-Einträge noch sonst etwas)  
> auf die Festplatte schreiben.
>
> Nun frage ich mich, wie Postfix in so einem Fall auf eingehende  
> E-Mails reagiert. Ich halte zwei Varianten für denkbar:
>
> A)
> Postfix erkennt noch vor Ende des SMTP-Dialogs, dass es keine  
> E-Mails speichern kann und meldet dem Client einen temporären  
> Fehler. Dann ist alles gut, der Client wird später nocheinmal  
> versuchen die E-Mail zuzustellen, so lange bis es endlich klappt  
> oder bis ein Timeout abläuft. In diesem Fall erhält der Absender vom  
> Client eine Nachricht die ihn über die Unzustellbarkeit informiert.
>
Hallo,

E-Mail (genauer SMTP) ist "Transactions orientiert" d.h. der MTA  
(Postfix) muß sicherstellen das die E-Mail sicher verwahrt ist bevor  
der dem Client eine positive Rückmeldung gibt. Postfix verwendet dazu  
syncrone Schreibvorgänge, welche blockieren bis die Daten tatsächlich  
die Platte erreicht haben, vorrausgesetzt die Hardware lügt nicht.

Also kein Problem solange dir nicht bei einer vollen Queue die Platte  
stirbt ist nicht verloren.

Gruß

Andi



smime.p7s (7K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Nimmt Postfix E-Mails an wenn das Dateisystem unerwarteterweise plötzlich read-only ist?

Jan P. Kessler-2
In reply to this post by Hubert Schölnast-2

> Nun frage ich mich, wie Postfix in so einem Fall auf eingehende
> E-Mails reagiert. Ich halte zwei Varianten für denkbar:

Tor A) Es gibt einen queue-file-write error, der in der data oder
end_of_data stage einen 451er Fehler erzeugt.

Reply | Threaded
Open this post in threaded view
|

Re: Nimmt Postfix E-Mails an wenn das Dateisystem unerwarteterweise plötzlich read-only ist?

Lars Täuber
In reply to this post by Hubert Schölnast-2
Hallo!

Fri, 10 Oct 2014 12:52:24 +0200
Hubert Schölnast <[hidden email]> ==> [hidden email] :
> Hallo
>
> Ich habe Postfix auf einem virtuellen Server laufen und habe heute
> morgen erfahren, dass das Dateisystem meines Servers gegen Mitternacht
> in den read-only-Modus geschalten wurde. (Warum konnte man mir nicht
> sagen).

Ich würde sagen typisches SAN-Problem. Sowas kommt vor, wenn am SAN gespielt wird oder es kurzzeitig nicht erreichbar ist, sei es durch Fehler im SAN selbst oder auf der Netzwerkebene innerhalb oder zum SAN.

Grüße
Lars