在linux中,一切皆为文件,无论是对硬件设备执行新建、写入、读取、修改等操作,都是依靠文件系统来完成的。而文件系统最最要的作用就是对硬盘设备进行合理的规划,以满足用户的正常使用。
在linux中,系统能够支持的文件系统比windows系统中还要多,多达数十种的文件系统支持,也从一定程度说明linux系统还是非常出色的。那么到底什么是文件系统呢?文件系统是指操作系统用于明确存储硬盘设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。简单来说,规定用怎么样的形式来存放文件,是一种规范、规则。
Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。
Ext4:Ext3的改进版本,是RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。
上图是ext4 与 xfs文件系统的对比测试结果数据,横坐标是测试模式,纵坐标是测试耗时,越小越好。总体来说,体现了三个方面的结果:
因此,我们并不能很明确地说 ext4 好还是 xfs 好,根据实际使用场景,选择最适合的文件系统才是最好的。比如数据库、大型图片后台存储等对随机IO性能要求较高的环境下,可以使用ext4。

