XFS 是一种高性能的文件系统, 广泛应用于 Linux 服务器和存储设备中。尽管 XFS 采用了延迟写入、分配组 (AG) 等技术来降低文件碎片的产生。虽然 XFS 文件系统在设计时引入了减少碎片化的机制, 但长时间运行且文件操作频繁时, 碎片化仍然不可避免, 影响读写性能。
很多人认为 XFS 无需做碎片整理, 这是误解。对于文件操作频繁的服务器来说, 碎片整理是提升 XFS 文件系统性能的必要手段。特别是使用多年的服务器, 若未进行过碎片整理, 可能会导致文件访问速度下降、磁盘操作延迟增加等问题。
软件包
xfsdump - Administrative utilities for the XFS filesystem
xfslibs-dev - XFS filesystem-specific static libraries and headers
xfsprogs - Utilities for managing the XFS filesystem
文件系统碎片检查
在对 XFS 文件系统进行碎片整理前, 首先需要查看文件系统的碎片率。可以通过以下命令来检查
# 查看 /dev/sdc1 的碎片情况
# 如果碎片率 (fragmentation factor) 超过 50%, 建议进行碎片整理
xfs_db -c frag -r /dev/sdc1
actual 93133, ideal 8251, fragmentation factor 91.14%
# 查看 /dev/sdb1 的碎片情况
# 碎片率较低, 无需进行碎片整理
xfs_db -c frag -r /dev/sdb1
actual 905607, ideal 900507, fragmentation factor 0.56%
通过交互式命令检查文件碎片
xfs_db -r /dev/sdd1
xfs_db> frag
actual 117578, ideal 116929, fragmentation factor 0.55%
查看特定文件的块映射情况
xfs_bmap -v case19.dat
case19.dat:
EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL
0: [0..9551]: 592061576..592071127 1 (103696496..103706047) 9552
1: [9552..86039]: 599312816..599389303 1 (110947736..111024223) 76488
2: [86040..170399]: 599655400..599739759 1 (111290320..111374679) 84360
3: [170400..256799]: 599751632..599838031 1 (111386552..111472951) 86400
4: [256800..340079]: 1185490752..1185574031 2 (208760592..208843871) 83280
5: [340080..592703]: 1185577976..1185830599 2 (208847816..209100439) 252624
文件系统碎片整理
使用 xfs_fsr
命令可以对 XFS 文件系统进行碎片整理。需要注意的是, 该命令不属于 xfsprogs
包, 而是在 xfsdump
包中。因此, 使用前需先安装 xfsdump
yum install xfsdump -y
然后使用 xfs_fsr
进行碎片整理
整理 /dev/sdc1
的碎片
该操作将尝试将分散的文件块重新组合, 从而减少文件系统中的碎片, 提高文件读写性能
xfs_fsr /dev/sdc1
碎片整理后的性能提升实例
Wow! Thanks. That’l teach me to use a non-default tech without researching it.
Over the years, my MythTV box had gotten inexplicably slow with lots of disk access for many operations like starting playback of a recorded video. With the advice here, I measured 98.6% fragmentation. A few sample files I checked that were 1-6GB captured MPEG-2 videos were stored on over 30,000 extents!
After 2 nights of de-fragmenting, I’m down to 17% fragmented and startup time of playing a video is noticeably faster with less hard drive activity.
根据某位用户的经验分享, 长期使用的 XFS 文件系统可能会出现严重的碎片化现象。经过 xfs_fsr
整理后, 该用户的磁盘访问性能有了显著提升
- 原始碎片率: 98.6%
- 整理后碎片率: 17%
- 优化效果: 视频文件的启动时间缩短, 硬盘活动减少, 文件读写速度明显提升。
常见 XFS 管理命令
以下为 XFS 文件系统管理的常用命令, 可用于检查、修复、优化 XFS 文件系统
xfs_admin 调整 XFS 文件系统的各种参数
xfs_copy 将 XFS 文件系统的内容并行拷贝到一个或多个目标系统
xfs_db 调试或检测 XFS 文件系统 (例如查看碎片情况)
xfs_check 检测 XFS 文件系统的完整性
xfs_repair 修复受损的 XFS 文件系统
xfs_fsr 整理 XFS 文件系统碎片
xfs_quota 管理 XFS 文件系统的磁盘配额
xfs_metadump 将 XFS 文件系统的元数据 (metadata) 拷贝到文件中
xfs_mdrestore 从文件中恢复 XFS 文件系统的元数据
xfs_growfs 扩展 XFS 文件系统大小 (仅支持扩展)
xfs_info 查看文件系统信息
原文
Use xfs_fsr to keep your XFS filesystem optimal 文章备份
XFS文件系统碎片整理
http://blog.sina.com.cn/s/blog_b87700f50102wpug.html