性能·磁盘 / 命令文档
ext4 vs XFS 文件系统
概述
Linux企业级存储的两大主力文件系统深度对比
ext4
第四代扩展文件系统
定位:Linux默认文件系统,成熟稳定,向下兼容性强
适用:桌面系统、中小型服务器、通用场景
特色:日志功能、延迟分配、多块分配器
XFS
高性能64位日志文件系统
定位:企业级高性能存储,大文件处理专家
适用:数据库、大数据、高并发I/O场景
特色:动态分配、在线扩展、优秀的大文件性能
基本结构
ext4 结构
超级块:存储文件系统元信息
块组:将磁盘划分为多个块组
inode表:存储文件属性和位置
数据块:存储实际文件内容
日志:记录未提交的更改
XFS 结构
分配组:独立的分配单元
B+树索引:高效的空间管理
实时子卷:专用实时数据区域
日志区域:独立的日志存储
延迟分配:写入时才分配空间
核心特点
| 特性 | ext4 | XFS |
|---|---|---|
| 最大文件大小 | 16TB | 8EB |
| 最大文件系统 | 1EB | 8EB |
| 大文件性能 | 良好 | 优秀 |
| 小文件性能 | 优秀 | 一般 |
| 在线调整 | 仅扩展 | 仅扩展 |
| 碎片整理 | 支持 | 不需要 |
ext4优势
成熟稳定、向下兼容、小文件处理优秀、资源占用少、修复工具完善
XFS优势
高并发性能、大文件处理、动态分配、在线扩展、企业级可靠性
运维管理
ext4 管理
mkfs.ext4 /dev/sdb1
tune2fs -l /dev/sdb1
e2fsck -f /dev/sdb1
resize2fs /dev/sdb1
dumpe2fs /dev/sdb1 | head -20
XFS 管理
mkfs.xfs /dev/sdb1
xfs_info /dev/sdb1
xfs_repair /dev/sdb1
xfs_growfs /mount/point
xfs_db -r /dev/sdb1
性能监控
iostat -x 1
监控磁盘I/O性能
iotop -o
查看进程I/O使用情况
df -Th
查看文件系统类型和使用情况
性能调优
mount -o noatime,nodiratime /dev/sdb1 /mnt
禁用访问时间更新提升性能
echo deadline > /sys/block/sdb/queue/scheduler
设置I/O调度器(XFS推荐)
运维要点
ext4注意事项: • 大文件场景性能不如XFS,考虑文件系统选型 • 在线缩小不支持,扩展前需要充分测试 • 日志损坏时修复较复杂,定期备份超级块 • 默认预留5%空间给root,大磁盘浪费明显
XFS注意事项: • 一旦创建无法缩小,规划存储容量需谨慎 • 意外断电可能导致零长度文件,做好备份策略 • 小文件性能不如ext4,混合负载需评估 • 修复工具较少,故障恢复难度相对较高
选择建议: 选择ext4:桌面系统、小型服务器、兼容性优先、小文件多 选择XFS:数据库服务器、大数据处理、大文件存储、高并发场景
最佳实践: • 生产环境使用前充分测试文件系统性能 • 定期检查文件系统健康状态和碎片情况 • 根据工作负载选择合适的块大小和参数 • 建立完善的备份和恢复策略 • 监控I/O性能指标,及时发现问题