Maildir和Mbox之间的实际区别是什么?


39

尽管我了解两种存储格式的基础(Maildir下每个电子邮件1个文件,mbox下每个邮箱1个单个文件),但我想知道这里有什么实际意义-

  • 一种存储格式是否比另一种更具可伸缩性?
  • 是否存在数据完整性问题/差异?
  • 是否有明确定义的情况,您应该使用一种格式而不是另一种格式?

Answers:


21

不要通过后缀管理邮箱。决不。重定向邮件以通过具有适当功能的POP / IMAP服务器进行传递。对于dovecot,dovecot-ldadeliver可以做很多事情,例如用户控制的消息过滤,配额管理,自动回复等。

无论如何,由于与maibox相比有很多改进,maildir是一种更新且更可取的格式。Maildir为每个文件夹都有一个索引,该索引可以控制重复项,到期时间甚至全文本搜索。同样,在大量邮件中,maildir的速度明显更快。Dovecot可以轻松操作包含30万条消息的maildir,而不会出现任何明显的速度下降。这么大的邮箱本身就是一个问题。而且,大多数现代POP / IMAP服务器都有许多实用程序,可用于大型基础架构中的常见任务。


14

如果您使用NFS进行邮件存储,无论任何情况都不要使用mbox。如果您想要一个可扩展的解决方案,Maildir是您的理想之选。

mbox格式的主要问题是文件锁定的问题-如果您有多个邮件服务器,或者有多个试图同时访问该邮箱的进程,则冒着损坏邮箱的巨大风险。在邮箱中删除大量邮件也很困难,例如当您遇到退信风暴时。

当您有多个邮件服务器或一台服务器上的多个进程,并且IMAP或POP服务器正在访问同一帐户时,将电子邮件同时发送到同一帐户时,Maildir可以正常工作。

Maildir的主要问题是,如果您使用的文件系统在处理过多的inode时会变慢,并且您的备份系统在处理多个文件时表现不佳。至于文件系统,早在我在ISP处进行电子邮件系统管理时,VXFS就是最好的选择。对于备份,我没有任何建议。不幸的是,它们中的大多数似乎是为处理数据库服务器而不是庞大的小文件而设计的。


4

Postfix不在乎,主要是。它只是将邮件填充到某个文件中。当您想通过IMAP(或POP3)从计算机中获取邮件时,就会遇到有趣的部分。大多数IMAP服务器(我尝试过)都喜欢Maildir,因为它们可以更轻松地扩展IMAP服务器所需的各种元数据,同时仍保持基本的“这是Maildir”结构,因此您可以在不中断IMAP服务器的情况下进行替换太多(您显然会丢失元数据,其中还包括邮件标志,因此,如果您要真正切换,则应阅读IMAP服务器的迁移文档)。


4

要解决特定问题:

一种存储格式是否比另一种更具可伸缩性?

mbox变得越来越难以管理。由于它将所有内容存储在一个大Blob中,因此很难进行增量备份,并且这种访问将锁定mbox防止发生写操作。如果存在一些损坏,则尝试修复或恢复将变得更加困难-您可能会说,随着存储更多邮件,这种风险会增加。

Maildir依靠底层文件系统来实现可伸缩性,因为它通常会创建许多小文件,每条消息一个。如果您有很多电子邮件,Maildir通常更容易,更快地处理。

是否存在数据完整性问题/差异?

是的,主要的问题是mbox需要对整个归档文件进行读/写文件锁定,这意味着读必须等待写,而每个写操作都必须等待所有其他访问。如果使用的方式无法进行锁定(例如通过NFS共享),则存档可能会损坏。任何随机损坏都会影响整个存档,而不是单个消息。

使用Maildir,对于大多数操作,锁定可以处于单个邮件的级别,并且任何文件中的损坏只会影响该邮件。如果需要,可以从消息本身重新构建消息中的任何索引。

是否有明确定义的情况,您应该使用一种格式而不是另一种格式?

Maildir更倾向于将mbox替换为普遍首选的格式,而没有明显的缺点。

它的主要局限性是创建了许多小文件,这些文件有能力使某些文件系统承受压力和/或效率低下,具体取决于文件系统群集的大小。对于现代文件系统而言,这不再是一个问题。它也可以为您的备份策略提供信息,但总的来说,它确实为您选择备份策略提供了更大的灵活性。


3

在邮箱中搜索文本并将新邮件添加到邮件文件中时,Mbox速度很快,但是Mbox易于损坏邮件,并且网络文件系统可能会出现问题。另外,文件锁定可能是一个问题。

使用Maildir,检索特定邮件的速度更快,并且不会因文件锁定或网络文件系统而出现问题(示例:使用Maildir,您可以将不同的邮件文件夹存储在不同的NFS共享中,而使用Mbox则无法实现)。当文件系统无法有效处理大量文件时,Maildir可能会出现问题。

我了解您需要一个可扩展的解决方案,在选择一个或另一个之前,请务必阅读以下文档:(即使您没有使用Courier)

对Mbox和Maildir进行基准测试


客观地说,该基准主要是两个不同IMAP服务器之间的基准,由Courier IMAP服务器(使用Maildir)的作者完成,并于2001年至2003年完成。“高端计算机”在带有256 MB PC-100 SDRAM和ext2文件系统的奔腾II时代的赛扬上进行了测试。但是,它对Maildir可伸缩性所做的断言如今可能比过去更为真实。
thomasrutter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.