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

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

Embora eu entenda o básico dos dois formatos de armazenamento (1 arquivo por e-mail no Maildir versus 1 arquivo único por caixa de correio no mbox), estou me perguntando quais são as implicações práticas aqui -

  • Um formato de armazenamento é mais escalonável que o outro?
  • Existem preocupações/diferenças com a integridade dos dados?
  • Existem situações claramente definidas em que você deve usar um formato em vez de outro?

Responder1

Não gerencie caixas de correio do postfix. Nunca. Redirecione mensagens para entrega via servidor POP/IMAP que possua funcionalidade apropriada. No caso do dovecot existe dovecot-ldaum aka deliverque faz 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, maildir é um formato mais novo e preferível devido às muitas melhorias comparativamente ao maibox. Maildir possui um índice para cada pasta que permite controlar duplicatas, prazos de validade e até busca 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 300 mil mensagens sem qualquer lentidão visível. Uma 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.

Responder2

Se você estiver usando NFS para armazenamento de e-mail,nãouse o mbox em qualquer circunstância. E se você deseja uma solução escalonável, Maildir é a escolha certa.

O principal problema com o formato mbox é o bloqueio de arquivos - se você tiver mais de um servidor de e-mail ou mais de um processo tentando acessar a caixa de correio ao mesmo tempo, você 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 de devoluções.

Maildir foi projetado para funcionar sem falhas quando você tem vários servidores de e-mail, ou vários processos em um servidor, entregando e-mails para a mesma conta ao mesmo tempo que o servidor IMAP ou POP acessa a conta.

O principal problema com o Maildir é se você estiver usando um sistema de arquivos que fica lento ao lidar com muitos inodes e se o seu sistema de backup não consegue lidar com vários arquivos. Quanto aos sistemas de arquivos, quando eu administrava sistemas 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.

Responder3

Para responder às questões específicas:

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

O mbox tende a se tornar difícil de gerenciar à medida que aumenta. 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 acontece. 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.

Maildir depende do sistema de arquivos subjacente para sua escalabilidade, pois caracteristicamente criará 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 com a integridade dos dados?

Sim, a principal delas é que o mbox requer bloqueio de arquivo de leitura/gravação em todo o arquivo, o que significa que as leituras devem esperar pelas gravações e cada gravação individual deve esperar por todos os outros acessos. Se for usado de forma que o bloqueio não seja possível, como em um compartilhamento NFS, o arquivo estará 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 ocorrer no nível da mensagem individual, para a maioria das operações, e a corrupção em qualquer arquivo afetará 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 em vez de outro?

É mais verdade que o Maildir está começando a substituir o mbox como o formato universalmente preferido, sem desvantagens significativas.

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

Responder4

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

Com o Maildir, a recuperação de e-mails 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 diferentes pastas de e-mail em diferentes compartilhamentos NFS, isso não pode ser conseguido 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 se você não estiver usando Courier)

Comparando mbox com maildir

informação relacionada