区别:1、单个文件的大小,EXT4可以是16GB到16TB,而XFS可以是16TB到16EB;2、最大文件系统大小,EXT4可以是1EB,而XFS是8EB;3、EXT4受限制于磁盘结构和兼容问题,可扩展性和scalability不如XFS。
本教程操作环境:CentOS 6系统、Dell G3电脑。
centos7.0开始默认文件系统是xfs,centos6是ext4,centos5是ext3。
EXT4
Ext4是第四代扩展文件系统的缩写,它是2008年推出的。它是一个真正可靠的文件系统,它几乎在过去几年的大部分发行版中一直是默认选项,它是由比较老的代码生成的。它是一个日志文件系统,意味着它会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录。如果系统崩溃,得益于journal技术,文件系统很少会损坏。
XFS
XFS是一种非常优秀的日志文件系统,它是SGI公司设计的。 XFS具有各种改进,使其能够在文件系统群体列表中脱颖而出,例如用于元数据操作的日志记录,可扩展/并行I / O,挂起/恢复I / O,在线碎片整理,延迟性能分配,等等
大概在2002年,XFS被合入Linux内核,2009年RHEL Linux版本5.4使用了XFS文件系统。 由于其高性能,架构可扩展性和鲁棒性,XFS一直是很多企业系统的首选,特别是拥有大量数据的企业系统。 现在,RHEL / CentOS 7和Oracle Linux使用XFS作为其默认文件系统。
缺点:XFS文件系统不能缩小,当删除大量文件时会性能下降。
xfs和ext4的区别:
区别一:单个文件的大小
EXT4可以是16GB到16TB,而XFS可以是16TB到16EB。
区别二:最大文件系统大小
EXT4可以是1EB,而XFS可以是8EB。
区别三:
EXT4受限制于磁盘结构和兼容问题,可扩展性和scalability不如XFS。
说明:
由于历史磁盘结构原因Ext4 的inode 个数限制(32位数)最多只能有大概40多亿文件。而且Ext4的单个文件大小最大只能支持到16T(4K block size) ,目前来说已经是瓶颈。XFS使用64位管理空间,文件系统规模可以达到EB级别。
性能测试
测试了一下4k随机读写的性能,direct=1,numjobs=20,iodepth=128
磁盘信息
Disk /dev/sdc1: 4000.8 GB, 4000785104896 bytes, 7814033408 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
测试数据
文件系统 | 4k-randread | 4k-read | 4k-randwrite | 4k-write |
---|---|---|---|---|
XFS | iops=426 | iops=42773 | iops=313 | iops=24732 |
EXT4 | iops=430 | iops=41636 | iops=315 | iops=19095 |
在4k这个量级上IOPS基本没啥区别,4k随机写XFS略好于EXT4。