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

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

Aunque entiendo los conceptos básicos de los dos formatos de almacenamiento (1 archivo por correo electrónico en Maildir versus 1 archivo único 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 preocupaciones/diferencias sobre la integridad de los datos?
  • ¿Existen situaciones claramente definidas en las que debería utilizar un formato sobre el otro?

Respuesta1

No administre buzones de correo desde postfix. Nunca. Redirigir mensajes para su entrega a través de un servidor POP/IMAP que tenga la funcionalidad adecuada. En el caso de dovecot, existen dovecot-ldaalias deliverque hacen de todo y mucho más, como filtrado de mensajes controlado por el usuario, gestión de cuotas, 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 caducidad e incluso búsqueda de texto completo. Además, maildir es significativamente más rápido en una gran cantidad de mensajes. Dovecot puede operar fácilmente maildir con 300k mensajes sin ninguna desaceleración visible. Un buzón de correo 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.

Respuesta2

Si está utilizando NFS para el almacenamiento de correo,noUtilice mbox bajo cualquier 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 intentando acceder al buzón al mismo tiempo, corre un gran riesgo de tener un buzón dañado. También es difícil revisar un buzón y eliminar una gran cantidad de mensajes, por ejemplo, cuando ha sufrido una tormenta de rebotes.

Maildir está diseñado para funcionar sin fallas cuando tiene varios servidores de correo, o varios procesos en un servidor, entregando correo electrónico a la misma cuenta al mismo tiempo que el servidor IMAP o POP accede 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 no maneja bien múltiples archivos. En cuanto a los sistemas de archivos, cuando administraba sistemas de correo electrónico en un ISP, VXFS era el mejor para esto. Para 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 millones de archivos pequeños.

Respuesta3

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 cuanto más grande se hace. Dado que almacena todo en un gran blob, puede ser difícil realizar una copia de seguridad de forma incremental y dicho acceso bloqueará el mbox contra escrituras mientras sucede. Si hay algún daño, 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 se almacena más correo.

Maildir depende del sistema de archivos subyacente para su escalabilidad, ya que normalmente 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 manejar.

¿Existen preocupaciones/diferencias sobre la integridad de los datos?

Sí, el 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 usa de tal manera que no sea posible bloquearlo, como en un recurso compartido NFS, el archivo está sujeto a corrupción. Cualquier corrupción aleatoria puede afectar a todo el archivo en lugar de a un solo mensaje.

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

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

Es más bien el caso de que Maildir está empezando a reemplazar a mbox como el formato preferido universalmente, 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 es un problema menor con los sistemas de archivos modernos. También puede informar su estrategia de respaldo, pero en general brinda más flexibilidad a la hora de elegir la estrategia de respaldo.

Respuesta4

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

Con Maildir, recuperar correos electrónicos específicos es más rápido y no tiene problemas debido al bloqueo de archivos o sistemas de archivos de red (Ejemplo: con Maildir, puede almacenar diferentes carpetas de correo en diferentes recursos compartidos 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 necesitas una solución escalable, antes de elegir una u otra, asegúrate de leer este documento: (Incluso si no estás usando Courier)

Comparación de mbox versus maildir

información relacionada