Quais são as diferenças práticas entre Maildir e Mbox?

39

Embora eu compreenda o básico dos dois formatos de armazenamento (1 arquivo por email em Maildir vs. 1 arquivo único por caixa de correio em mbox), estou pensando quais são as implicações práticas aqui -

  • Um formato de armazenamento é mais escalável que o outro?
  • Existem preocupações / diferenças de integridade de dados?
  • Existem situações claramente definidas em que você deve usar um formato sobre o outro?
olympe26
fonte

Respostas:

21

Não gerencie caixas de correio do postfix. Nunca. Redirecione as mensagens para entrega via servidor POP / IMAP com a funcionalidade apropriada. No caso do dovecot, dovecot-ldatambém é conhecido como deliverfazer tudo e muito mais, como filtragem de mensagens controlada pelo usuário, gerenciamento de cotas, resposta automática e assim por diante.

De qualquer forma, o maildir é um formato mais recente e preferível devido às muitas melhorias em comparação ao maibox. O Maildir possui um índice para cada pasta que permite controlar duplicatas, prazos de validade e até pesquisa de texto completo. Além disso, o maildir é significativamente mais rápido em uma enorme pilha de mensagens. O Dovecot pode operar facilmente o maildir com 300k mensagens sem nenhum abrandamento visível. Caixa de correio tão grande é um problema em si. Além disso, a maioria dos servidores POP / IMAP modernos possui muitos utilitários para tarefas comuns em grandes infraestruturas.

Kondybas
fonte
14

Se você estiver usando o NFS para armazenamento de correio, não use o mbox sob nenhuma circunstância. E se você deseja uma solução escalável, o Maildir é o caminho a seguir.

O principal problema com o formato mbox é o do bloqueio de arquivos - se você tiver mais de um servidor de email ou mais de um processo tentando acessar a caixa de correio ao mesmo tempo, corre um grande risco de obter uma caixa de correio corrompida. Também é difícil acessar uma caixa de correio e excluir um grande número de mensagens, por exemplo, quando você sofre uma tempestade.

O Maildir foi projetado para funcionar sem falhas quando você possui vários servidores de email ou vários processos em um servidor, entregando email na mesma conta ao mesmo tempo em que o servidor IMAP ou POP está acessando a conta.

O principal problema do Maildir é se você estiver usando um sistema de arquivos que diminui a velocidade ao manipular muitos inodes e se o seu sistema de backup é ruim para manipular vários arquivos. Quanto aos sistemas de arquivos, quando eu enviei o sysadmining por e-mail em um ISP, o VXFS era o melhor para isso. Para backups, não tenho nenhuma recomendação; infelizmente, a maioria deles parece ter sido projetada para lidar com servidores de banco de dados em vez de um zilhão de arquivos pequenos.

Jenny D diz Restabelecer Monica
fonte
4

O Postfix não se importa, principalmente. Apenas coloca o correio em algum arquivo. A parte interessante vem quando você deseja buscar o correio da máquina via IMAP (ou POP3). A maioria dos servidores IMAP (eu tentei) prefere Maildirs, pois eles são mais extensíveis com vários metadados que o servidor IMAP poderia desejar, mantendo uma estrutura básica "isto é um Maildir", para que você possa substituir o servidor IMAP sem interromper demais (obviamente você perderá os metadados, que também incluem sinalizadores de correio, portanto, você deve ler os documentos de migração do servidor IMAP se realmente deseja alternar).

zhenech
fonte
4

Para abordar questões específicas:

Um formato de armazenamento é mais escalável que o outro?

O mbox tende a se tornar difícil de gerenciar, quanto maior for. Como ele armazena tudo em um grande blob, pode ser difícil fazer backup incremental e esse acesso bloqueará a mbox contra gravações enquanto isso ocorrer. Se houver alguma corrupção, é muito mais difícil tentar reparar ou recuperar - o que você poderia dizer que é um risco que aumenta à medida que armazena mais mensagens.

O Maildir depende do sistema de arquivos subjacente para sua escalabilidade, pois cria caracteristicamente muitos arquivos pequenos, um por mensagem. Se você tem muitos e-mails, o Maildir geralmente é mais fácil e rápido de lidar.

Existem preocupações / diferenças de integridade de dados?

Sim, o principal é que o mbox requer bloqueio de leitura / gravação em todo o arquivo, o que significa que as leituras devem aguardar gravações e cada gravação individual deve aguardar todos os outros acessos. Se ele foi usado de forma que o bloqueio não seja possível, como em um compartilhamento NFS, o arquivo está sujeito a corrupção. Qualquer corrupção aleatória pode afetar todo o arquivo, em vez de uma única mensagem.

Com o Maildir, o bloqueio pode estar no nível da mensagem individual, para a maioria das operações, e a corrupção em qualquer arquivo afeta apenas essa mensagem. Quaisquer índices nas mensagens podem ser reconstruídos, se necessário, a partir das próprias mensagens.

Existem situações claramente definidas em que você deve usar um formato sobre o outro?

É mais o caso do Maildir começar a substituir o mbox como o formato universalmente preferido, sem inconvenientes significativos.

Sua principal limitação é a criação de muitos, muitos arquivos pequenos, que foram capazes de sobrecarregar alguns sistemas de arquivos e / ou serem ineficientes dependendo do tamanho do cluster do sistema de arquivos. Esse é um problema menor nos sistemas de arquivos modernos. Ele também pode informar sua estratégia de backup, mas, em geral, oferece mais flexibilidade à sua escolha de estratégia de backup.

thomasrutter
fonte
3

O Mbox é rápido ao pesquisar um texto dentro de uma caixa de correio e anexar um novo e-mail ao arquivo, mas é propenso a corrupção de e-mail e pode ter problemas com os sistemas de arquivos da rede. Além disso, o bloqueio de arquivos pode ser um problema.

Com o Maildir, a recuperação de emails específicos é mais rápida e não apresenta problemas devido ao bloqueio de arquivos ou sistemas de arquivos de rede (exemplo: com o Maildir, você pode armazenar pastas de email diferentes em diferentes compartilhamentos NFS, isso não pode ser alcançado com o Mbox). Você pode ter problemas com o Maildir quando um sistema de arquivos não é eficiente ao lidar com um grande número de arquivos.

Entendo que você precisa de uma solução escalável, antes de escolher uma ou outra, leia este documento: (Mesmo que você não esteja usando o Courier)

Comparação mbox versus maildir

Gabriel Talavera
fonte
Para colocar as coisas em perspectiva, esse benchmark é basicamente um benchmark entre dois servidores IMAP diferentes, e foi feito pelo autor do servidor Courier IMAP (que usa o Maildir) e foi realizado em 2001 a 2003. O "computador de ponta" foi testado em um Celeron da era Pentium-II com 256 MB de SDRAM PC-100, com o sistema de arquivos ext2. As afirmações feitas sobre a escalabilidade do Maildir, no entanto, provavelmente são ainda mais verdadeiras hoje do que eram na época.
# Thomasrutter