最近两年,Linux文件系统得到了很大的发展。Sun有开源的ZFS以及收购的Lustre文件系统。Quantum、Panasas、IBM、惠普、NetApp和Red Hat也都增强了文件系统开发力度。NFS(网络文件系统)正在经历大的变动,主要代表就是pNFS(并行网络文件系统)。毫不奇怪的是,所有这些开发行动促使开源社区推出针对Linux的更高性能的文件系统。
现在我们看看Linux开发的两个前沿:BTRFS文件系统–也被称为Butter FS或B-tree FS–以及ext4。
Illuminata的分析师Gordon Haff表示:”Ext4是对广泛使用的ext3的升级,它从诸多方面提高了功能,并改善了性能。在相对近期,ext4将可能成为下一个在Linux上广泛部署的新的文件系统。”
虽然ext4的开发时间始于2006年,但是ext4直到最近一年才开始真正稳定,而且现在才刚刚开始看到有批量部署。例如,最近发布的ext4版本有Fedora。这种Linux文件系统提高了存储容量上限(容量增加至1EB),同时还有其他各种性能上的调整。
Ext4很大程度上是对流行的ext3文件系统的演进。Ext3限制于16TB的存储,而ext4的设计可以处理更大的存储。Ext4增加了数据完整性功能,支持针对内部日常事务的校验和,这使得它在面临存储错误的时候拥有更强的稳定性。
但是至少从潜能上来看,ext4的发展不如BTRFS那么显著。BTRFS可能最终会给ZFS和其他文件系统带来更大的威胁,不过该文件系统目前还尚未完成。该文件系统拥有在线碎片整理功能,针对固态驱动器(SSD)的运行模式,写时复制日志,以及各种压缩、镜像、条带和快照功能。
Haff表示:”BTRFS是下一代文件系统,这意味着它使用的管理模式和传统的文件系统有所不同。”
他的意思是BTRFS的管理和可用性模式不同于现有文件系统所使用的模式。他举了一个例子:BTRFS基本上将卷管理–过去是单独的产品–整合进了该文件系统本身。该文件系统还拥有各种可靠性和可用性功能,比如快照。
从数据存储的角度来看,BTRFS前进的步伐要比ext4大。BTRFS的一些功能过去通常是由逻辑卷管理器(LVM)和RAID(独立磁盘冗余阵列)硬件所执行的。该系统可以同时为其内部元数据和用户数据进行校验和检验,而且该系统还内置了对快照的支持(就像一个LVM)。Ext4也可拥有其中一些功能,但是需要文件系统和逻辑卷管理器之间的互动。
有趣的是,BTRFS最初是Oracle开发的–该公司正在收购Sun–但现在是以GPL(GUN通用公共许可证)的形式发放许可证,而且完全融入开源社区,接受任何人的代码贡献。在BTRFS项目主页上对自己是这么描述的:”一个新的针对Linux的写时复制文件系统,致力于实施高级的功能,同时关注容错、修复和管理方便性。”
BTRFS是否做好企业级应用准备?
那么BTRFS是否可以成为Linux领域梦寐以求的企业级文件系统,并对ZFS形成竞争呢?一些人表示,比起Sun同等的文件系统,BTRFS包含了更多功能,拥有更好的性能。不过,这很大程度上还是假设。ZFS在许多企业都得到了成功的部署和运行,而BTRFS还没有做好企业级应用的准备。
Haff表示:”BTRFS和ZFS是有一些类似的概念,但是BTRFS仍然还处于发展阶段。有可能在几年以后,BTRFS会做好企业级部署的准备。”
那么BTRFS现在的表现如何?早期标杆显示该文件系统还需要提高性能,不过现在该系统已经可以在读取和写入上提供和ext4同样水准的性能。人们希望BTRFS可以在快照和校验和功能上与ZFS一较长短。ZFS在每次数据发生变化时进行写时复制快照,新的数据还要进行校验和操作以检验有效性并防止数据损坏。BTRFS拥有所有这些功能,而且已经整合进Linux内核。
但是Sun不会因此而感到担忧。BTRFS可能还要几年以后才能从开发阶段进入主流部署。
Haff表示:”鉴于文件系统推出的速度一般比较慢,即使到2011年或2012年BTRFS才得以生产部署,那也是乐观的估计了。虽然ZFS名义上已经做好了准备,Sun还是有两年时间可以认真地推广ZFS。”
Red Hat已完成整合
Red Hat已经将这些新的文件系统整合进自己的产品。Fedora就是Red Hat支持的开源Linux系统,该系统可以免费下载。Red Hat上个月发布了Fedora 11。Fedora 11是Red Hat Red Hat Enterprise Linux(RHEL)的技术基础。BTRFS和ext4都包含在Fedora 11内。
Red Hat文件系统内核经理Ric Wheeler表示:”ext4是Fedora 11缺省的文件系统,所有新用户都会自动成为ext4用户,除非他们选择非缺省的文件系统。虽然Fedora 11也内置了BTRFS,但是由于BTRFS目前很大程度上还是实验性质的文件系统,因此需要专门的启动时间选项才能启用,而且该系统不用于用户的关键数据。”
Red Hat看起来乐意尝试实验性的文件系统,但是不会将赌注都押在一个文件系统上。虽然Fedora 11以ext4为基础,但是Red Hat Enterprise Linux缺省使用的是ext3。此外,Fedora还支持其他的文件系统,比如XFS–Wheeler称这个文件系统拥有丰富的功能而且经历了严格的测试。RHEL目前的技术预演是ext4,而现在则根本不支持BTRFS。
Wheeler表示:”RHEL采用了更为谨慎的步骤。Fedora的用户或许希望获得最新最前沿的功能,但是我们的RHEL客户群则要求更为成熟的技术。”
他同时指出ext4和BTRFS这两种新的Linux文件系统都不是Red Hat的Global File System(GFS:全局文件系统)的直接竞争对手。GFS为高可用性集群提供了构建基石,以便让多个服务器可以并行地读取和写入同一个文件系统。这样的并行操作通常是直接在共享的存储光纤架构上进行,比如光纤通道。BTRFS和ext4,甚至ZFS都不支持集群功能。因此RHEL将ext3用于非集群工作负荷,将GFS用于集群用户的工作负荷。
Wheeler表示:”选择哪种文件系统要根据不同情况而定。随着ext4和BTRFS的成熟,我们将逐步掌握这两种文件系统最适合哪种企业工作负荷。文件系统的用户都可以测试文件系统,并根据专门的工作负荷来调整文件系统,他们还可以参与文件系统的开发流程。”
他对BTRFS尤其热心,认为明年开始BTRFS就可以被一些专门用户用于生产用途。
Wheeler表示:”BTRFS的亮点在于这些新功能使得文件系统可以动态地自我调整,以适应各种类型的存储设备,比如SSD设备或大型RAID阵列。”