我已经在各种Linux服务器上将XFS文件系统作为数据/增长分区运行了近10年。
我注意到最近运行6.2+版本的CentOS / RHEL服务器出现了一个奇怪的现象。
从EL6.0和EL6.1迁移到较新的操作系统版本后,稳定的文件系统使用变得高度可变。最初安装有EL6.2 +的系统表现出相同的行为。显示XFS分区上磁盘利用率的剧烈波动(请参见下图中的蓝线)。
我开始检查文件系统中是否有大文件和失控的进程(可能是日志文件?)。我发现最大的文件报告了与du
和不同的值ls
。du
有无--apparent-size
开关运行说明了差异。
# du -skh SOD0005.TXT
29G SOD0005.TXT
# du -skh --apparent-size SOD0005.TXT
21G SOD0005.TXT
使用ncdu实用工具对整个文件系统进行快速检查得出:
Total disk usage: 436.8GiB Apparent size: 365.2GiB Items: 863258
文件系统中充满了稀疏文件,与先前版本的OS /内核相比,丢失了将近70GB的空间!
我仔细研究了Red Hat Bugzilla并更改日志,以查看是否有关于XFS的相同行为的报告或新公告。
娜达
升级期间,我从内核版本2.6.32-131.17.1.el6转到了2.6.32-220.23.1.el6;次要版本号无变化。
我使用该filefrag
工具检查了文件碎片。XFS分区上一些最大的文件具有数千个扩展区。在xfs_fsr -v
活动缓慢的情况下运行联机碎片整理有助于暂时减少磁盘使用(请参见上方第一张图表中的周三)。但是,一旦系统活动繁忙,使用率便迅速增加。
这是怎么回事