无需重新启动主机即可更新磁盘可用大小

Kan*_*han 24 partition rhel lvm disk-usage deleted-files

我使用带有 LVM2 的 RHEL4。有时即使在删除超过 GB 的大文件后,使用该df命令时分区大小也不会更新。

-bash-3.00$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/sys-root  3.9G  1.4G  2.3G  39% /
/dev/cciss/c0d0p1     251M   19M  219M   8% /boot
/dev/mapper/sys-home  250G  125G  113G  53% /home
/dev/mapper/sys-tmp   3.9G   41M  3.7G   2% /tmp
/dev/mapper/sys-var   3.9G  3.6G   98M  98% /var
Run Code Online (Sandbox Code Playgroud)

但是当我使用 du 检查时,它显示了正确的大小

-bash-3.00$ sudo du -sh /var/
 179M   /var/
Run Code Online (Sandbox Code Playgroud)

您可以在那里看到 df 输出显示 /var 分区使用了 3.6Gb,但 du 显示它只有 179Mb。

现在的问题是 sync 或 partprobe 都没有更新信息。但肯定重启主机会解决这个问题。但由于这是一台生产服务器,我无法重新启动它。有什么方法可以在不重新启动主机的情况下手动更新磁盘信息?

小智 30

当一个文件被移除/删除/取消链接时,如果它仍然被任何进程保持打开状态,那么只会删除文件的目录条目,而不是文件的数据。当所有进程完全关闭文件时,数据将返回到空闲空间池。这是一项功能,因为您可以通过这种方式获得匿名文件。

要查看文件系统上是否有任何打开的已删除文件,请运行以下命令之一,/mount/point挂载点/var在哪里(在您的情况下):

lsof +L1 /mount/point
Run Code Online (Sandbox Code Playgroud)

条开放的,无关联的文件应有助于解释这一些。

  • 我正在删除日志,但在我重新启动服务器进程之前,`df` 没有显示任何可用空间。谢谢! (2认同)