Was sind die praktischen Unterschiede zwischen Maildir und Mbox?

39

Obwohl ich die Grundlagen der beiden Speicherformate verstehe (1 Datei pro E-Mail unter Maildir vs. 1 einzelne Datei pro Postfach unter mbox), frage ich mich, welche praktischen Auswirkungen dies hat -

  • Ist ein Speicherformat skalierbarer als das andere?
  • Gibt es Bedenken / Unterschiede in Bezug auf die Datenintegrität?
  • Gibt es klar definierte Situationen, in denen Sie ein Format über dem anderen verwenden sollten?
olympe26
quelle

Antworten:

21

Verwalten Sie Postfächer nicht über Postfix. Noch nie. Leiten Sie Nachrichten zur Zustellung über einen POP / IMAP-Server mit entsprechender Funktionalität um. Im Falle von Dovecot gibt es dovecot-ldaauch deliversolche, die alles und noch viel mehr tun, z. B. benutzergesteuerte Nachrichtenfilterung, Kontingentverwaltung, automatische Abrechnung und so weiter.

Trotzdem ist maildir aufgrund der vielen Verbesserungen im Vergleich zu maibox ein neueres und besseres Format. 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 großen Stapel von Nachrichten erheblich schneller. Dovecot kann maildir mit 300.000 Nachrichten ohne sichtbare Verlangsamung problemlos bedienen. Ein so großes Postfach ist selbst ein Problem. Außerdem verfügen die meisten modernen POP / IMAP-Server über zahlreiche Dienstprogramme für allgemeine Aufgaben in großen Infrastrukturen.

Kondybas
quelle
14

Wenn Sie NFS für Mail - Speicher verwenden, nicht verwenden mbox- unter keinen Umständen auch immer. Und wenn Sie eine skalierbare Lösung wünschen, ist Maildir der richtige Weg.

Das Hauptproblem des mbox-Formats ist das Sperren von Dateien. Wenn Sie mehr als einen Mailserver oder mehr als einen Prozess gleichzeitig auf das Postfach zugreifen, besteht ein hohes Risiko, dass Sie ein beschädigtes Postfach erhalten. Es ist auch schwierig, eine Mailbox zu durchsuchen und eine große Anzahl von Nachrichten zu löschen.

Maildir funktioniert einwandfrei, wenn Sie mehrere Mailserver oder mehrere Prozesse auf einem Server haben und E-Mails an dasselbe Konto senden, während der IMAP- oder POP-Server auf das Konto zugreift.

Das Hauptproblem bei Maildir ist, wenn Sie ein Dateisystem verwenden, das bei der Verarbeitung zu vieler Inodes langsamer wird, und wenn Ihr Backup-System bei der Verarbeitung mehrerer Dateien schlecht ist. Was Dateisysteme betrifft, war VXFS das Beste, als ich bei einem ISP E-Mail-Systemadministrator war. Für Backups habe ich keine Empfehlung; Leider scheinen die meisten von ihnen so konzipiert zu sein, dass sie eher mit Datenbankservern als mit einer Unmenge kleiner Dateien umgehen können.

Jenny D sagt Reinstate Monica
quelle
4

Postfix kümmert das meist nicht. Es stopft die Mail einfach in eine Datei. Der interessante Teil kommt, wenn Sie die E-Mails über IMAP (oder POP3) vom Computer abrufen möchten. Die meisten IMAP-Server (ich habe es versucht) bevorzugen Maildirs, da diese einfacher mit verschiedenen Metadaten erweiterbar sind, die der IMAP-Server haben möchte, und trotzdem eine grundlegende "Dies ist ein Maildir" -Struktur beibehalten, so dass Sie den IMAP-Server ersetzen können, ohne ihn zu beschädigen zu viel (Sie werden offensichtlich die Metadaten verlieren, die auch Mail-Flags enthalten, daher sollten Sie die Migrationsdokumente des IMAP-Servers lesen, wenn Sie wirklich wechseln möchten).

zhenech
quelle
4

Um die spezifischen Fragen zu beantworten:

Ist ein Speicherformat skalierbarer als das andere?

mbox wird immer schwieriger zu verwalten, je größer es wird. Da es alles in einem großen Blob speichert, kann es schwierig sein, inkrementelle Sicherungen durchzuführen, und ein solcher Zugriff sperrt die mbox gegen Schreibzugriffe, während dies geschieht. Wenn etwas beschädigt ist, ist es sehr viel schwieriger, es zu reparieren oder wiederherzustellen. Man könnte sagen, dass das Risiko steigt, wenn mehr E-Mails gespeichert werden.

Maildir verlässt sich für seine Skalierbarkeit auf das zugrunde liegende Dateisystem, da es typischerweise viele kleine Dateien erstellt, eine pro Nachricht. Wenn Sie viele E-Mails haben, ist Maildir in der Regel einfacher und schneller zu verarbeiten.

Gibt es Bedenken / Unterschiede in Bezug auf die Datenintegrität?

Ja, die Hauptsache ist, dass mbox das Sperren von Lese- / Schreibdateien 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 das Sperren nicht möglich ist, z. B. über eine NFS-Freigabe, ist das Archiv beschädigt. 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 Nachrichten erfolgen, und eine Beschädigung in einer Datei wirkt sich nur auf diese Nachricht aus. Alle Indizes in den Nachrichten können bei Bedarf anhand der Nachrichten selbst neu erstellt werden.

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

Es ist eher so, dass Maildir anfängt, mbox als das allgemein bevorzugte Format zu ersetzen, ohne wesentliche Nachteile.

Die Hauptbeschränkung besteht darin, dass viele, viele kleine Dateien erstellt werden, die einige Dateisysteme belasten und / oder je nach Größe des Dateisystem-Clusters ineffizient sind. Dies ist bei modernen Dateisystemen weniger ein Problem. Es kann auch Ihre Sicherungsstrategie beeinflussen, bietet jedoch insgesamt mehr Flexibilität bei der Auswahl der Sicherungsstrategie.

thomasrutter
quelle
3

Mbox ist schnell, wenn Sie einen Text in einem Postfach suchen und eine neue Mail an die Mail-Datei anhängen. Es kann jedoch zu einer Beschädigung der Mail kommen und Probleme mit Netzwerk-Dateisystemen verursachen. Auch das Sperren von Dateien kann ein Problem sein.

Mit Maildir können bestimmte E-Mails schneller abgerufen werden und es treten keine Probleme aufgrund von Dateisperrung oder Netzwerkdateisystemen auf (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 eine große Anzahl von Dateien nicht effizient verarbeitet.

Ich verstehe, dass Sie eine skalierbare Lösung benötigen, bevor Sie sich für die eine oder andere entscheiden, lesen Sie dieses Dokument unbedingt durch: (Auch wenn Sie Courier nicht verwenden)

Benchmarking von mbox und maildir

Gabriel Talavera
quelle
Um die Dinge ins rechte Licht zu rücken, dieser Benchmark ist in erster Linie ein Benchmark zwischen zwei verschiedenen IMAP-Servern. Er wird vom Autor des Courier IMAP-Servers (der Maildir verwendet) durchgeführt und wurde von 2001 bis 2003 durchgeführt. Der "High-End-Computer" Getestet wurde auf einem Pentium-II-Celeron mit 256 MB PC-100-SDRAM und dem ext2-Dateisystem. Die Behauptungen über die Skalierbarkeit von Maildir sind jedoch heute wahrscheinlich noch zutreffender als damals.
Thomasrutter