Frage Was sind die praktischen Unterschiede zwischen Maildir und Mbox?


Obwohl ich die Grundlagen der zwei Speicherformate verstehe (1 Datei pro Mail unter Maildir vs. 1 einzelne Datei pro Mailbox unter mbox), frage ich mich, was die praktischen Auswirkungen hier sind -

  • Ist ein Speicherformat skalierbarer als das andere?
  • Gibt es Datenintegritätsbedenken / Unterschiede?
  • Gibt es klar definierte Situationen, in denen Sie ein Format gegenüber dem anderen verwenden sollten?

33
2018-01-01 14:44


Ursprung


Hier nach einer Präferenz zu fragen ist kontraproduktiv - so ist es Schlechtes Subjektiv (Eine Frage "Was ist deine Lieblingsfrage?"). Ich habe Ihre Frage neu geschrieben, um dies aus einem konstruktiveren / objektiveren Blickwinkel zu betrachten. Wenn Sie weitere Punkte hinzufügen möchten, fügen Sie sie bitte der Aufzählung hinzu :) - voretaq7


Antworten:


Verwalten Sie keine Postfächer von Postfix. Noch nie. Umleiten von Nachrichten für die Zustellung über POP / IMAP-Server mit entsprechender Funktionalität. Im Falle von Taubenschlag gibt es dovecot-lda aka deliver die alles und noch viel mehr tun, wie benutzergesteuerte Nachrichtenfilterung, Kontingentverwaltung, Autoreplying und so weiter.

Wie auch immer, Maildir ist neuer und vorzuziehen wegen der vielen Verbesserungen im Vergleich zu maibox. Maildir verfügt über einen Index für jeden Ordner, mit dem Duplikate, Ablaufzeiten und sogar die Volltextsuche gesteuert werden können. Außerdem ist maildir auf einem riesigen Stapel von Nachrichten bedeutend schneller. Dovecot kann problemlos Maildir mit 300.000 Nachrichten ohne sichtbare Verlangsamung betreiben. Mailbox so groß ist ein Problem an sich. Außerdem verfügen die meisten modernen POP / IMAP-Server über zahlreiche Dienstprogramme für allgemeine Aufgaben in großen Infrastrukturen.


19
2018-01-01 15:05





Wenn Sie NFS für den Mailspeicher verwenden, unterlassen Sie Verwenden Sie mbox unter keinen Umständen. Und wenn Sie eine skalierbare Lösung wünschen, ist Maildir der richtige Weg.

Das Hauptproblem mit dem mbox-Format ist das Sperren von Dateien. Wenn Sie mehr als einen Mail-Server haben oder mehrere Prozesse gleichzeitig versuchen, auf das Postfach zuzugreifen, besteht ein hohes Risiko, dass ein beschädigtes Postfach entsteht. Es ist auch schwierig, durch ein Postfach zu gehen und eine große Anzahl von Nachrichten zu löschen, zum Beispiel wenn Sie einen Bounce-Sturm erlebt haben.

Maildir ist so konzipiert, dass es fehlerfrei funktioniert, wenn mehrere Mail-Server oder mehrere Prozesse auf einem Server E-Mails an dasselbe Konto senden, während der IMAP- oder POP-Server auf das Konto zugreift.

Das Hauptproblem von Maildir besteht darin, dass Sie ein Dateisystem verwenden, das bei der Verarbeitung zu vieler Inodes langsamer wird und wenn Ihr Backup-System mehrere Dateien nicht ordnungsgemäß verarbeitet. Wie bei Dateisystemen war VXFS, als ich per E-Mail die Systemadministration bei einem ISP sendete, die beste Lösung dafür. Für Backups habe ich keine Empfehlung; Leider scheinen die meisten von ihnen eher für Databas-Server als für eine Vielzahl von kleinen Dateien ausgelegt zu sein.


13
2018-01-02 09:36





Postfix ist meistens egal. Es stopft die Mail einfach in eine Datei. Der interessante Teil kommt, wenn Sie die Mail über IMAP (oder POP3) von der Maschine holen wollen. Die meisten IMAP-Server (ich habe es ausprobiert) bevorzugen Maildirs, da diese leichter erweiterbar sind mit verschiedenen Meta-Daten, die der IMAP-Server haben könnte, während sie immer noch eine grundlegende "Dies ist eine Maildir" Struktur haben, so dass Sie den IMAP Server ersetzen können zu viel (Sie werden offensichtlich die Meta-Daten verlieren, die auch Mail-Flags enthalten, also sollten Sie die Migrationsdokumente des IMAP-Servers lesen, wenn Sie wirklich wechseln wollen).


4
2018-01-01 15:06





Um die spezifischen Fragen zu beantworten:

Ist ein Speicherformat skalierbarer als das andere?

Mbox wird schwieriger zu verwalten, je größer es wird. Da es alles in einem großen Blob speichert, kann es schwierig sein, inkrementell zu sichern, und ein solcher Zugriff wird die mbox gegen Schreibvorgänge sperren, während dies geschieht. Wenn es etwas Korruption gibt, ist es viel schwieriger zu versuchen, zu reparieren oder wiederherzustellen - was man sagen könnte, ist ein Risiko, das zunimmt, wie es mehr E-Mails speichert.

Maildir basiert auf dem zugrunde liegenden Dateisystem, da es viele kleine Dateien erstellt, eine pro Nachricht. Wenn Sie viele E-Mails haben, ist Maildir normalerweise leichter und schneller zu handhaben.

Gibt es Datenintegritätsbedenken / Unterschiede?

Ja, der Hauptgrund ist, dass mbox das Lesen / Schreiben von Dateisperren für das gesamte Archiv erfordert, was bedeutet, dass Lesevorgänge auf Schreibvorgänge warten müssen und jeder einzelne Schreibvorgang auf alle anderen Zugriffe warten muss. Wenn es so verwendet wird, dass eine Sperrung nicht möglich ist, beispielsweise über eine NFS-Freigabe, unterliegt das Archiv der Korruption. Jede zufällige Beschädigung kann sich auf das gesamte Archiv und nicht auf eine einzelne Nachricht auswirken.

Mit Maildir kann das Sperren für die meisten Vorgänge auf der Ebene der einzelnen Nachricht erfolgen, und die Beschädigung in jeder Datei wirkt sich nur auf diese Nachricht aus. Alle Indizes in den Nachrichten können bei Bedarf aus den Nachrichten selbst neu erstellt werden.

Gibt es klar definierte Situationen, in denen Sie ein Format gegenüber dem anderen verwenden sollten?

Es ist mehr der Fall, dass Maildir beginnt, mbox als das allgemein bevorzugte Format zu ersetzen, ohne wesentliche Nachteile.

Seine Hauptbeschränkung ist die Erzeugung vieler, vieler kleiner Dateien, die je nach Clustergröße des Dateisystems einige Dateisysteme belasten und / oder ineffizient sein können. Dies ist bei modernen Dateisystemen weniger ein Problem. Es kann auch Ihre Backup-Strategie informieren, aber im Großen und Ganzen gibt es mehr Flexibilität bei der Wahl der Backup-Strategie.


3
2017-10-09 22:53





Mbox ist schnell, wenn Sie einen Text in einem Postfach durchsuchen und eine neue E-Mail an die E-Mail-Datei anhängen, aber es ist anfällig für Mail-Beschädigung und kann Probleme mit Netzwerk-Dateisystemen haben. Auch das Sperren von Dateien kann ein Problem sein.

Mit Maildir ist das Abrufen bestimmter E-Mails schneller und hat keine Probleme aufgrund von Dateisperr- oder Netzwerkdateisystemen (Beispiel: Mit Maildir können Sie verschiedene E-Mail-Ordner in verschiedenen NFS-Freigaben speichern, was mit Mbox nicht möglich ist). Sie können Probleme mit Maildir haben, wenn ein Dateisystem mit einer großen Anzahl von Dateien nicht effizient umgehen kann.

Ich verstehe, dass Sie eine skalierbare Lösung benötigen, bevor Sie das eine oder andere auswählen, lesen Sie dieses Dokument: (Auch wenn Sie nicht Courier verwenden)

Benchmarking mbox versus maildir


2
2018-01-01 15:07



Um diese Dinge ins rechte Licht zu rücken, ist dieser Benchmark in erster Linie ein Benchmark zwischen zwei verschiedenen IMAP-Servern und wird vom Autor des Courier-IMAP-Servers (der Maildir verwendet) gemacht, und zwar von 2001 bis 2003. Der "High-End-Computer" Getestet wurde ein Pentium II Celeron mit 256 MB PC-100 SDRAM mit dem ext2-Dateisystem. Die Behauptungen, die es über Maildirs Skalierbarkeit macht, sind jedoch wahrscheinlich heute noch wahrer als damals. - thomasrutter