大多数主流Linux版本都配置了对完整 ext4 文件系统的支持功能。所以有必要探讨一下 ext4文件系统在升级和企业决策实施方面带来的影响。
2008年以来,主要的Linux版本都支持ext4文件系统。ext4支持很大的文件(可以达到16TB),也可以支持容量极大的文件卷(支持大小为1,048,576 TB的文件系统)。 而且,ext4还支持就地升级,只需运行一些命令(tune2fs 和e2fsck)就可以将现有的 ext2 或ext3升级为ext4。就地升级功能不需要将大容量文件卷进行备份就可以完成升级,不过,将文件备份始终是稳妥的做法。
使用ext4可兼容引导程序
每次启动电脑时,都要有一个启动过程,首先是 BIOS(基本输入输出系统),还有硬盘上的启动磁区。对于Linux来说,下一步操作是LILO(LInux载入程序)或GRUB。当前的大多数Linux版本都使用了GRUB程序。GRUB2具有支持ext4启动分区的功能。这项功能有一定的好处,可以避免在一个启动分区上同时运行两个不同的文件系统。经过标准化处理后,只运行一个文件系统,可以使工作简化,也不用将硬盘分为多个启动分区。另外,多个启动分区共用一个磁盘转轴会降低系统的性能。
Fedora的最新版本利用升级后的GRUB,可以直接支持ext4上的启动分区功能。 Ubuntu 9.10也支持ext4的启动分区功能,不过需要用户在就地升级后运行grub-install命令(详见Ubuntu 9.10发行公告)。用户如果没有运行grub-install命令,会发现系统处于不稳定状态。
ext4的性能
安装使用了ext4的系统,在某些情形下,使用标准检查程序进行检测时,会出现性能降低的情况(例如PostgreSQL和Linux 2.6.31之后的内核版本)。这是由以下原因产生:为了进一步提高整个文件系统的可靠性,核心层上进行了额外的工作。理解特定的标准检测程序使用什么样的测试来评估性能,以及关注那些与自己的特殊要求相关的结果,都是很重要的。文件的数量、文件的大小和应用(比如,大型的数据库和为网页服务相适应)在密闭环境下进行的测验与实际环境中相比相差甚大。
了解ext4的一些新性能有利于做出合理的升级决定。核对总和日记是ext4的一项新功能,在执行写入过程时,该功能可以确保磁盘区域的完整性。这也让检验日志块是否犯错误成为可能(这些错误会破坏文件提交进程)。此外,该过程是一个单向事件,可以将文件系统性能提高20%。如果用户对增强的可靠性和性能都不感兴趣的话,可以将写入功能关闭。Barriers是另一项关闭后可以提高性能的可靠性功能,但是如果磁盘不能处理该部分数据的话,用户会有潜在的资料损坏风险。
与较早版本的文件系统相比,ext4在运行fsck(文件系统检查)时显得格外优越。在ext3和更早版本的文件系统中,fsck 需要穿越许多索引节点来确定文件系统是不是完好的。利用 ext4,可以越过已知为空的索引节点。可以观察到,在一些为Linux系统设计的ext4标准检查程序中,系统性能提高了100% 以上。
文件系统决策
是否要将现有的Linux版本升级为ext4,要视具体情况而定。如果要支持大的文件 (> 2TB),文件系统(> 16 TB)或一定数目的子目录(ext3限制为32000),那么用户肯定要升级了。而且,新的安装程序或许在使用ext4的情况下才有意义。现有的生产系统不存在容量超限情况的,可以选择延缓升级。
想要了解关于ext4的更多信息,可以阅读 IBM开发工作上的一篇关于扩展 (ext)文件系统的综述文章。那篇文章还对Linux文件系统的历史做了简要介绍。对ext4提供的强大功能,用户要确信自己已经做到全部了解。