Quali sono le differenze pratiche tra Maildir e Mbox?


39

Sebbene comprenda le basi dei due formati di archiviazione (1 file per e-mail in Maildir contro 1 file singolo per cassetta postale in mbox), mi chiedo quali siano le implicazioni pratiche qui -

  • Un formato di archiviazione è più scalabile dell'altro?
  • Ci sono dubbi / differenze sull'integrità dei dati?
  • Esistono situazioni chiaramente definite in cui è necessario utilizzare un formato rispetto all'altro?

Risposte:


21

Non gestire le cassette postali da Postfix. Mai. Reindirizzare i messaggi per il recapito tramite il server POP / IMAP con funzionalità appropriate. In caso di dovecot c'è dovecot-ldaaka deliverche fa tutto e molto altro, come il filtraggio dei messaggi controllato dall'utente, la gestione delle quote, l'autoreplicazione e così via.

Comunque maildir è il formato più nuovo e preferibile a causa dei numerosi miglioramenti rispetto a maibox. Maildir ha un indice per ogni cartella che consente di controllare i duplicati, i tempi di scadenza e persino la ricerca full-text. Inoltre, maildir è significativamente più veloce su una grande pila di messaggi. Dovecot può facilmente far funzionare maildir con 300k messaggi al suo interno senza alcun rallentamento visibile. La cassetta postale così grande è un problema in sé. Inoltre, la maggior parte dei moderni server POP / IMAP ha molte utilità per attività comuni in grandi infrastrutture.


14

Se si utilizza NFS per l'archiviazione della posta, non utilizzare mbox in nessun caso. E se vuoi una soluzione scalabile, Maildir è la strada da percorrere.

Il problema principale con il formato mbox è quello del blocco dei file: se si dispone di più di un server di posta o più di un processo che tenta di accedere alla cassetta postale contemporaneamente, si corre un grosso rischio di ottenere una cassetta postale danneggiata. È anche difficile passare attraverso una cassetta postale ed eliminare un gran numero di messaggi, ad esempio quando hai subito una tempesta di rimbalzo.

Maildir è progettato per funzionare senza errori quando si dispone di più server di posta o più processi su un server, consegnando e-mail allo stesso account contemporaneamente a quando il server IMAP o POP accede all'account.

Il problema principale con Maildir è se stai usando un file system che rallenta quando gestisci troppi inode e se il tuo sistema di backup non è in grado di gestire più file. Per quanto riguarda i file system, quando facevo il sysadmining di posta elettronica su un ISP, VXFS era il migliore per questo. Per i backup, non ho alcuna raccomandazione; sfortunatamente la maggior parte di loro sembra essere progettata per gestire server di database piuttosto che un file di dimensioni ridotte.


4

A Postfix non importa, per lo più. Riempie la posta in qualche file. La parte interessante viene quando si desidera recuperare la posta dalla macchina tramite IMAP (o POP3). La maggior parte dei server IMAP (ho provato) preferisce Maildir, poiché questi sono più facilmente estendibili con vari metadati che il server IMAP potrebbe desiderare, pur mantenendo una struttura "questo è un Maildir" di base, in modo da poter sostituire il server IMAP senza rompere troppo (ovviamente perderai i metadati, che includono anche i flag di posta, quindi dovresti leggere i documenti di migrazione del server IMAP se vuoi davvero cambiare).


4

Per rispondere alle domande specifiche:

Un formato di archiviazione è più scalabile dell'altro?

mbox tende a diventare difficile da gestire più diventa grande. Poiché memorizza tutto in un unico grande BLOB, può essere difficile eseguire il backup in modo incrementale e tale accesso bloccherà l'mbox contro le scritture mentre accade. Se c'è un po 'di corruzione, è molto più difficile provare a riparare o recuperare, il che si potrebbe dire che è un rischio che aumenta man mano che immagazzina più posta.

Maildir si affida al filesystem sottostante per la sua scalabilità, in quanto crea tipicamente molti piccoli file, uno per messaggio. Se hai molte e-mail, Maildir è generalmente più facile e veloce da gestire.

Ci sono dubbi / differenze sull'integrità dei dati?

Sì, il principale è che mbox richiede il blocco dei file di lettura / scrittura sull'intero archivio, il che significa che le letture devono attendere le scritture e ogni singola scrittura deve attendere tutti gli altri accessi. Se è stato utilizzato in modo che il blocco non fosse possibile, ad esempio tramite una condivisione NFS, l'archivio è soggetto a corruzione. Qualsiasi corruzione casuale può influire sull'intero archivio anziché su un singolo messaggio.

Con Maildir, il blocco può essere a livello del singolo messaggio, per la maggior parte delle operazioni, e la corruzione in qualsiasi file influirà solo su quel messaggio. Eventuali indici nei messaggi possono essere ricostruiti, se necessario, dai messaggi stessi.

Esistono situazioni chiaramente definite in cui è necessario utilizzare un formato rispetto all'altro?

È più il caso che Maildir stia iniziando a sostituire mbox come formato universalmente preferito, senza svantaggi significativi.

Il suo limite principale è la creazione di molti, molti piccoli file, che hanno avuto la capacità di mettere a dura prova alcuni filesystem e / o essere inefficienti a seconda delle dimensioni del cluster di filesystem. Questo è meno un problema con i moderni filesystem. Può anche informare la tua strategia di backup, ma nel complesso offre una maggiore flessibilità alla scelta della strategia di backup.


3

Mbox è veloce durante la ricerca di un testo all'interno di una cassetta postale e l'aggiunta di una nuova posta nel file di posta, ma è soggetto alla corruzione della posta e potrebbe avere problemi con i file system di rete. Inoltre, il blocco dei file potrebbe essere un problema.

Con Maildir, il recupero di messaggi specifici è più rapido e non presenta problemi dovuti al blocco dei file o ai file system di rete (Esempio: con Maildir è possibile archiviare cartelle di posta diverse in diverse condivisioni NFS, ciò non è possibile con Mbox). Puoi avere problemi con Maildir quando un filesystem non è efficiente nella gestione di un gran numero di file.

Comprendo che hai bisogno di una soluzione scalabile, prima di scegliere l'uno o l'altro, assicurati di leggere questo documento: (Anche se non stai usando Courier)

Benchmarking di mbox contro maildir


Per mettere le cose in prospettiva, quel benchmark è principalmente un benchmark tra due diversi server IMAP, ed è fatto dall'autore del server Courier IMAP (che usa Maildir), ed è stato fatto dal 2001 al 2003. Il "computer di fascia alta" è stato testato su un Celeron dell'era Pentium II con 256 MB di SDRAM PC-100, con il filesystem ext2. Le affermazioni fatte sulla scalabilità di Maildir, tuttavia, probabilmente oggi sono ancora più vere di quanto non fossero allora.
thomasrutter,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.