更新磁盘可用大小而无需重新引导主机


23

我在其上使用带有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

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

-bash-3.00$ sudo du -sh /var/
 179M   /var/

您可以看到df输出显示/ var分区已使用3.6Gb,但du显示其仅179Mb。

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


1
您可能已经打开了已删除的文件(即保留已删除文件的进程)。尝试lsof找出答案。已使用/可用不存储在分区表中,partprobe(或重新读取的任何类型的分区)根本没有帮助。
Mat

Answers:


28

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

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

lsof +L1 /mount/point

有关打开的未链接文件的这篇文章应有助于进一步解释这一点。


2
我正在删除日志,但是df直到重新启动服务器进程后才显示任何可用空间。谢谢!
英尺

最好用显示已删除文件的“ lsof + L1”调用lsof。提出了编辑建议
Nuno Pereira

那么如何关闭它们呢?
faressoft
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.