DF报告文件系统不正确的可用空间(EXT4)

我正面临着由df报告错误的fs空间的问题。

我们正在谈论的裸机Ubuntu 14.04服务器,由LVMpipe理的/分区。

df报告的大小与由fs超块报告的大小不同。 还从du -skh (在与/ partition有关的目录上)计算大小,certificatedf显示不正确的结果。

这是由df报告的:

 Filesystem Size Used Avail Use% Mounted on /dev/mapper/rootvg-lv_root 20G 16G 2.8G 86% / 

这是超级块报告(3616906*4096/1024**2=14128 MB free)

 Last mounted on: / Filesystem magic number: 0xEF53 Filesystem state: clean Filesystem OS type: Linux Inode count: 1290240 Block count: 5242880 << exactly 20 GB Reserved block count: 227170 Free blocks: 3616906 << around 14 GB free Free inodes: 1201391 First block: 0 Block size: 4096 Fragment size: 4096 

我为df做了一个strace,发现它使用statfs syscall来获取有关特定fs的信息(962132*4096/1024**2=3758 MB free)

 statfs("/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=5129119, f_bfree=**962132**, f_bavail=730866, f_files=1290240, f_ffree=1091851, f_fsid={-456623966, 1549023591}, f_namelen=255, f_frsize=4096}) = 0 

可能是statfs的问题,或者如何获取fs信息。

为了解决这个问题,我尝试重新挂载/分区( mount / -orw,remount ),但是没有帮助。

我的问题 – 如何修复df信息而无需重新启动或干扰此服务器的正常运行?

PS

  • 没有 fd保持进程( lsof +L1 | grep deleted
  • 我知道883 MB是为UID为0的用户保留的
  • 这不是挂载点掩码问题(当挂载fs'在隐藏'文件在挂载点目录)

为了同样的问题,

我通过发出unmount /dev/mapper/rootvg-lv_root解决了这个问题。 它给了我一个错误,但在df报告正确。

看起来像umount刷新了一些内部结构。

希望它能帮助别人。