¿Cuáles son las diferencias prácticas entre Maildir y Mbox?

39

Aunque entiendo los conceptos básicos de los dos formatos de almacenamiento (1 archivo por correo electrónico en Maildir frente a 1 archivo individual por buzón en mbox), me pregunto cuáles son las implicaciones prácticas aquí:

  • ¿Es un formato de almacenamiento más escalable que el otro?
  • ¿Existen problemas / diferencias de integridad de datos?
  • ¿Existen situaciones claramente definidas en las que debería usar un formato sobre el otro?
olympe26
fuente

Respuestas:

21

No administre buzones de postfix. Nunca. Redirija los mensajes para su entrega a través del servidor POP / IMAP que tenga la funcionalidad adecuada. En el caso de dovecot, hay dovecot-ldaaka deliverque hace todo y mucho más, como el filtrado de mensajes controlado por el usuario, la gestión de cuotas, la respuesta automática, etc.

De todos modos, maildir es un formato más nuevo y preferible debido a la gran cantidad de mejoras en comparación con maibox. Maildir tiene un índice para cada carpeta que permite controlar duplicados, tiempos de vencimiento e incluso búsqueda de texto completo. Además, maildir es significativamente más rápido en una gran pila de mensajes. Dovecot puede operar fácilmente maildir con 300k mensajes en él sin ninguna desaceleración visible. El buzón tan grande es un problema en sí mismo. Además, la mayoría de los servidores POP / IMAP modernos tienen muchas utilidades para tareas comunes en grandes infraestructuras.

Kondybas
fuente
14

Si está utilizando NFS para el almacenamiento de correo, no use mbox bajo ninguna circunstancia. Y si desea una solución escalable, Maildir es el camino a seguir.

El principal problema con el formato mbox es el bloqueo de archivos: si tiene más de un servidor de correo o más de un proceso que intenta acceder al buzón al mismo tiempo, corre un gran riesgo de tener un buzón dañado. También es difícil pasar por un buzón y eliminar una gran cantidad de mensajes, por ejemplo, cuando ha sufrido una tormenta de rebote.

Maildir está diseñado para funcionar sin fallas cuando tiene varios servidores de correo, o varios procesos en un servidor, entregando el correo electrónico a la misma cuenta al mismo tiempo que el servidor IMAP o POP está accediendo a la cuenta.

El principal problema con Maildir es si está utilizando un sistema de archivos que se ralentiza cuando maneja demasiados inodos, y si su sistema de respaldo es malo para manejar múltiples archivos. En cuanto a los sistemas de archivos, cuando escribí sysadmining por correo electrónico en un ISP, VXFS fue lo mejor para esto. Para las copias de seguridad, no tengo ninguna recomendación; desafortunadamente, la mayoría de ellos parecen estar diseñados para manejar servidores de bases de datos en lugar de miles de millones de archivos pequeños.

Jenny D dice Reinstate Monica
fuente
4

A Postfix no le importa, en su mayoría. Simplemente rellena el correo en algún archivo. La parte interesante viene cuando desea recuperar el correo de la máquina a través de IMAP (o POP3). La mayoría de los servidores IMAP (lo intenté) prefieren Maildirs, ya que estos son más fáciles de ampliar con varios metadatos que el servidor IMAP podría desear, manteniendo una estructura básica "esto es Maildir", por lo que puede reemplazar el servidor IMAP sin romper demasiado (obviamente perderá los metadatos, que también incluyen banderas de correo, por lo que debe leer los documentos de migración del servidor IMAP si realmente desea cambiar).

zhenech
fuente
4

Para abordar las preguntas específicas:

¿Es un formato de almacenamiento más escalable que el otro?

mbox tiende a volverse difícil de administrar a medida que crece. Dado que almacena todo en un gran blob, puede ser difícil hacer una copia de seguridad incremental, y dicho acceso bloqueará el mbox contra las escrituras mientras sucede. Si hay algo de corrupción, es mucho más difícil intentar repararlo o recuperarlo, lo que se podría decir que es un riesgo que aumenta a medida que almacena más correo.

Maildir confía en el sistema de archivos subyacente para su escalabilidad, ya que característicamente creará muchos archivos pequeños, uno por mensaje. Si tiene muchos correos electrónicos, Maildir suele ser más fácil y rápido de tratar.

¿Existen problemas / diferencias de integridad de datos?

Sí, la principal es que mbox requiere el bloqueo de archivos de lectura / escritura en todo el archivo, lo que significa que las lecturas deben esperar a las escrituras, y cada escritura individual debe esperar a todos los demás accesos. Si se usó de tal manera que el bloqueo no es posible, como en un recurso compartido NFS, el archivo está sujeto a corrupción. Cualquier corrupción aleatoria puede afectar todo el archivo en lugar de un solo mensaje.

Con Maildir, el bloqueo puede estar en el nivel del mensaje individual, para la mayoría de las operaciones, y la corrupción en cualquier archivo solo afectará ese mensaje. Cualquier índice en los mensajes se puede reconstruir si es necesario a partir de los mensajes mismos.

¿Existen situaciones claramente definidas en las que debería usar un formato sobre el otro?

Es más el caso de que Maildir está comenzando a reemplazar mbox como el formato universalmente preferido, sin inconvenientes significativos.

Su principal limitación es la creación de muchos, muchos archivos pequeños, que tenían la capacidad de ejercer presión sobre algunos sistemas de archivos y / o ser ineficientes dependiendo del tamaño del clúster del sistema de archivos. Esto no es un problema con los sistemas de archivos modernos. También puede informar su estrategia de respaldo, pero en general le da más flexibilidad a su elección de estrategia de respaldo.

thomasrutter
fuente
3

Mbox es rápido cuando busca un texto dentro de un buzón y agrega un nuevo correo al archivo de correo, pero es propenso a la corrupción del correo y puede tener problemas con los sistemas de archivos de red. Además, el bloqueo de archivos puede ser un problema.

Con Maildir, recuperar correos específicos es más rápido y no tiene problemas debido al bloqueo de archivos o los sistemas de archivos de red (Ejemplo: con Maildir, puede almacenar diferentes carpetas de correo en diferentes recursos compartidos de NFS, esto no se puede lograr con Mbox). Puede tener problemas con Maildir cuando un sistema de archivos no es eficiente al manejar una gran cantidad de archivos.

Entiendo que necesita una solución escalable, antes de elegir una u otra, asegúrese de leer este documento: (incluso si no está utilizando Courier)

Benchmarking mbox versus maildir

Gabriel Talavera
fuente
Para poner las cosas en perspectiva, ese punto de referencia es principalmente un punto de referencia entre dos servidores IMAP diferentes, y es realizado por el autor del servidor Courier IMAP (que usa Maildir), y se realizó entre 2001 y 2003. La "computadora de gama alta" se probó en un Celeron de la era Pentium-II con 256 MB de PC-100 SDRAM, con el sistema de archivos ext2. Las afirmaciones que hace sobre la escalabilidad de Maildir, sin embargo, probablemente sean aún más ciertas hoy de lo que eran entonces.
thomasrutter