Ubuntu 服务器 12.04 存在 7​​GB 磁盘使用差异

Ubuntu 服务器 12.04 存在 7​​GB 磁盘使用差异

我全新安装了 ubuntu server 12.04 作为 KVM 虚拟客户机。我使用 kickstart 文件来自动执行安装,我已包含创建客户机的命令以及 kickstart 文件的分区部分。这些数字是在全新安装后立即获取的,唯一正在运行的主要服务是 ssh 服务器。有 7GB 的磁盘使用量我无法解释。

Kickstart 分区部分

part /boot --fstype ext4 --size 200 
part / --fstype ext4 --size 1 --grow 

KVM 安装命令

virt-install -n bigtest -r 4096 
--disk path=/var/lib/libvirt/images/bigtest.img,bus=virtio,size=500 \
-c ubuntu-12.04.1-server-amd64.iso --accelerate 
--network=bridge:br0 --connect=qemu:///system  \
--vnc --noautoconsole -v --os-type linux

磁盘使用情况

运行 df 和 du 报告不同的磁盘使用情况,我知道这种情况是可能发生的。不过 8G 和 512M 之间的差异约为 7G。

root@ubuntu:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda5       500G  8.0G  467G   2% /
udev            2.0G  4.0K  2.0G   1% /dev
tmpfs           792M  220K  791M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
/dev/vda1       188M   34M  146M  19% /boot
root@ubuntu:~# du -hs /
512M    /

小客测试

在名为 bigtest 的客户机中,虚拟磁盘为 500GB。当我创建另一个名为 smalltest 的客户机,其虚拟磁盘大小为 10GB 时,df 和 du 的数字分别为 764M 和 512M。

KVM 主机报告

现在,如果我们查看主机文件系统上的 kvm 映像文件的大小,我们会发现另一个有趣的故事。

root@vbox1:/var/lib/libvirt/images# du -hs *
753M    bigtest.img
744M    smalltest.img

保留文件系统块

为了尽可能地排除其他因素,所有这些数字都是在我将保留块百分比设置为 0% 后获取的。

root@ubuntu:~# tune2fs -m 0  /dev/vda5
tune2fs 1.42 (29-Nov-2011)
Setting reserved blocks percentage to 0% (0 blocks)

问题

什么占用了这 7GB 的物理空间。如果使用了,为什么没有反映在主机文件系统磁盘使用率中。

更新 1

我发现了一些非常有趣的事情。如果我运行以下命令并重新启动,df 和 du 的新数字分别为 1.1G 和 875M!这在正常预期之内。

apt-get update
apt-get upgrade
apt-get dist-upgrade

以下是我对此的一些观察:

  1. 全新安装后,我尝试重启多次,但 8GB 的​​使用量没有改变
  2. 运行 apt-get update 和 upgrade 不会减少磁盘使用量,即使重新启动也是如此。
  3. 仅当使用 apt-get dist-upgrade 更新内核时,并且只有在系统使用新内核重新启动后,使用率才会恢复到正常水平。

更新2

我在 virtualbox 中独立测试了这个问题,也出现了同样的情况。所以这个问题与 Ubuntu Server 有关,与 KVM 或 virtualbox 没有特别关系。

更新 3

一些附加命令按照下面的答案中的建议在机器上运行。

root@ubuntu:/# du --apparent-size -sh --exclude=/proc /
963M    /

使用 ncdu

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help           
--- / ----------------------------------------------------------------
  230.6MiB [##########] /usr                                          
  202.4MiB [########  ] /lib
  193.0MiB [########  ] /var
   23.7MiB [#         ] /boot
    8.6MiB [          ] /bin
    6.7MiB [          ] /sbin
    4.9MiB [          ] /etc
  220.0KiB [          ] /run
   28.0KiB [          ] /root
   20.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /media
    4.0KiB [          ] /dev
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /tmp
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

 Total disk usage: 670.2MiB  Apparent size: 128.0TiB  Items: 54464    

dist-upgrade 前后的 Linux 内核版本如下:

Linux ubuntu 3.2.0-29-generic #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012
Linux ubuntu 3.2.0-30-generic #48-Ubuntu SMP Fri Aug 24 16:52:48 UTC 2012

答案1

稀疏文件?

報告什麼du --apparent-size -sh /

尝试ncdu公用事业深入目录树。

实际涉及的内核版本是什么?也许这只是一个错误。无论如何,您都应该将内核更新到最新版本,对吗?

相关内容