我build立一个电子邮件系统,并考虑一些文件系统,支持在线resize,停电时安全,并不限制每个目录的文件数量(或者至less可以容纳每个目录几百万文件)
我想知道哪种文件系统最适合这种情况。 你能帮我吗? 提前致谢!
PS:我分层为我的电子邮件存储为:
在drbd(/ dev / drbd0)之上的第三层: 文件系统(XFS,JFS,Btrfs,Reiser4,…)
第2层: LVM2逻辑卷上的DRBD(双主模式)
第1层: 物理卷上的LVM2(/ dev / sdc,/ dev / sdd,…)
第0层: 物理卷(sdc,sdd,…)是硬件RAID10(启用“写入caching模式”) (每个“物理卷”实际上是4个HDD)
编辑:我使用3.2内核的Ubuntu 12.04 LTS。
XFS多年来一直是我可靠的主力。 我所说的邮件系统正在愉快地运行拥有5万个帐户的Cyrus IMAP服务器(最高处有近10万个帐户)和大约30万个邮箱。 有数以千万计的邮件文件。 一切工作顺利,服务器负载大部分空闲。
但是…每个目录有几百万个文件? 我们在谈论什么样的邮件系统? XFS可能会以某种方式处理,但没有文件系统被devise为这种行为。
我的build议是XFS。 您没有提供Linux发行版信息,但是假设CentOS或Red Hat,XFS现在已经有点集成了。 这是一个成熟的文件系统,并提供在线碎片整理,并可以在飞行中增长(而不是缩小)。 我很less听说JFS … Reiser是一个赌博,已经失去了巨大的分心…… Btrfs还不够成熟,不能相信这一点。 ext4有什么问题吗?
也请参考这些post:
Linux上生产就绪,高度可靠的文件系统:ext4 ext3 XFS或JFS(或ZFS)?
什么是Maildir文件夹存储的最佳文件系统?
如果低层是冗余的并且得到适当的照顾,select文件系统的唯一考虑因素就是抽象文件系统的速度和可靠性(因为人们可以假定没有什么物理上的中间层在较低层上有这样的冗余)。
对于这些要求,老的ext3仍然赢了(只有元数据日志) – XFS在操作系统故障方面performance不佳,ext4也不够成熟 – 我以前的ext4版本出现了严重的FS错误,没有合乎逻辑的理由。
也就是说,“每个目录数百万个文件”的要求来自哪里?
电子邮件存储为mbox或maildir(或最近的dbox); 没有一个需要每个目录数以百万计的文件 – 事实上,maildirs每个目录都有一个逻辑邮箱文件夹,我不知道每个文件夹有几千个文件的人。
mbox是每个邮箱的一个巨大文件,一段时间,根本不适合今天的邮件存储。
在大多数情况下,这个块上的新孩子dbox应该胜过mbox和maildirs,但同样不会将“数百万个文件”存储在一个目录中。
我发现由于使用DRBD的“双主模式”,我的文件系统只能有两种select:GFS2(来自RedHat)和OCFS2(来自Oracle)。 我很好奇地知道在Ubuntu 12.04 LTS上哪个选项更稳定…
我听说有关OCFS2的一些问题; 我不确定OCFS2 v1.6可以更好吗?
编辑:我决定在XFS上使用GlusterFS镜像。 谢谢大家!
您列出的一些设置与我工作的许多电子邮件系统相匹配。 唯一不足的是,由于问题的原因,我们一直在尽可能慢地提取DRDB。 对于99.99%的时间来说,这是完美的,失败者很好地工作,但那些时候,它不只是造成一堆痛苦。
正如其他人所评论的,每个目录的邮件数量会大大减缓。 我们通过提供自动归档解决scheme来解决这个问题。 在一个非常基本的层面上,它是一个通过imap连接的脚本,然后使用imap将较旧的邮件移动到按date划分的归档子文件夹中。 对于大多数邮箱来说,这可以让事情保持相对干净,但仍然是有组织的。
对于文件系统select,根据您select的邮箱格式,调整参数会有相当大的差异。 随着maildir,noatime可以与一些客户有所作为,虽然像它的内置caching达夫科特这些天取消这种收益。
对于LVM设置,请参阅LVM危险和注意事项 ,其中涵盖了LVM正常运行所需的各个方面。