推荐的文件系统

过去几周,我一直在Amazon EC2上设置一个Web服务器(Ubuntu 8.04)。 因为我希望我的站点能在多个Web服务器上进行负载平衡,所以我将所有的数据放在EBS卷上。 我可以把这个卷附加到一个文件服务器,并在所有的networking服务器之间共享。

无论如何,目前我的EBS卷是EXT3。 我只是select这个文件系统,因为我最熟悉它,过去没有任何问题。 我想知道是否有另一个文件系统,任何人都可以build议,将在服务器types设置好performance?

数据完整性当然是至关重要的,我愿意为此交换性能。

Ext3是一个非常好的,通用的文件系统,适合绝大多数可以使用Linux服务器的东西。 它只有less数已知的性能怪癖,主要是匆匆删除数以万计的文件。 也不build议将大量文件(如DVR系统中使用的运动video)或大量非常小的文件(数万个)存储在单个目录中。

更好地应对这些极端情况的select是XFS和JFS,但是如果你不太可能需要这三种情况中的任何一种,那么ext3就可以。 (ReiserFS也处理大量的小文件问题,并很好地删除许多文件的问题,但不能处理大量的强大的大文件。)

而且,如果你正在做文件系统速度很重要的磁盘活动,EC2将是一个比文件系统更大的问题。

EXT3很难被击败。 还有其他不错的日志logging文件系统,但是从稳定性的angular度来看,最好的方法是尽可能的去实现。 在目录中存储大量文件(比如说,超过10,000个)存在已知的性能问题,但其中一些问题已经在最新的内核中解决,通常不会成为问题。 当你在等待Ext4的时候,记住Ext2有很多很多的工具,这意味着他们可以select一个Ext3文件系统并运行它。

XFS速度很快,处理大文件的效果很好,但是在日志恢复过程中,它确实有一个趋势。 虽然在video和audiostream编辑中这可能是完全可以接受的,但是在其他环境中可能会导致悲伤。 (不要误解我的意思,我非常喜欢XFS,我只是认为人们需要理解他们使用的文件系统的含义)。

Reiser3(和4)对于小文件都非常好。 Reiser的缺点是,如果你在同一个卷上有多个Reiser文件系统,并且你不知道怎么去掉分区表信息,那么为了所有的事情都不要试图修复你的R3文件系统–Reiser的fsck基本上是扫描磁盘寻找似乎是文件系统的开始,然后从那里重build它。 如果碰巧find的文件系统不是你想要的,那么哦,它只是把它们拼在一起。 换句话说,它很容易被混淆。

Ext3真的非常慢,大文件和许多文件在同一个目录中。 我不知道EC2是如何显示的,但是当物理磁盘上有大文件时,寻道时间真的会让我失望。

这是由于它没有范围。 寻求一个100GB文件的结尾将需要一大堆寻求 – 读 – 寻求 – 读取在物理磁盘上杀死你。

我几乎总是运行XFS。 JFS速度也很快,但我发现它是越野车。 我已经跑了几年了,现在可能没事了。

XFS也有在线碎片整理。 这并不意味着它比ext3更容易受到碎片化的影响。 但是当你把你的fs碎片化时,ext3上的最好方法就是“碎片整理”的备份还原。 有一个ext2 / ext3碎片整理,但没有人使用它,所以我不会指望它。 你可以指望XFS碎片整理。 再次,我不知道这对于EBS是否重要,因为两者都可能最终成为SAN上碎片文件,并且碎片整理将花费您的数据操作。

但是,这是所有的performance。

我从来没有用XFS丢失数据。 我已经运行了很多。 我已经(和由于)UFS(OpenBSD .. agh),JFS,ReiserFS和ext2(最后一个没有logging)丢失数据。 而且我运行的XFS比任何其他的都要多。

但是我真的很渴望在Linux上使用ZFS或类似的东西。

最后的话:ext3是很好的稳定性。 如果这对您的性能和function都有好处,那就留下来吧。