Linux 磁盘使用情况和磁盘大小不一致

Linux 磁盘使用情况和磁盘大小不一致

我在 Xen VM 上遇到一个问题,其中(以 root 身份运行)df 和 baobab 同意我的磁盘使用了 94%(28G 中的 25G),但 du 仅计算总磁盘利用率的一小部分(3.3G)。

该服务器具有一个简单的 LVM 配置:一个 28G 的分区挂载到 /。lvdisplay 和 vgdisplay 都显示整个卷都已被占满。

我怎么会丢失将近22G的空间呢?

df Output
=========
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/vg_dns-lv_root
                  29241444  25924244   1831788  94% /

df -h Output
============
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_dns-lv_root
                   28G   25G  1.8G  94% /

`du --max-depth=1 -h` Output
============================
96K     ./tmp
128K    ./home
23M     ./root
...
94M     ./etc
4.0K    ./.pulse
3.4G    .

答案1

如果您删除(取消链接)某个进程保持打开状态的文件,您将看到 的使用情况消失du,但仍在 中使用df。一旦最后一个进程关闭该文件(最晚发生在该进程退出时),该文件使用的空间将被释放并可用df

答案2

Linux 保留一个缓冲区空间,只有 root 才能使用。运行sudo tune2fs -l /dev/sda1将在其输出中显示保留块的数量。

要完全关闭保留块,只需使用以下命令:

sudo tune2fs -m 0 /dev/sda1

答案3

@wurtel 的信息修复了这个问题。

Output of `lsof -n | grep deleted`
================================== 
rsyslogd 943 root 1w REG 253,0 20649662640 122793 /var/log/messages.20140731 (deleted). 

20649662640b 转换为 20.64G。重新启动 rsyslog 即可修复该问题!

谢谢大家!!

相关内容