如果 df 显示已满但 du 显示空闲,如何释放磁盘?

如果 df 显示已满但 du 显示空闲,如何释放磁盘?

我有一个cvm,最近一天磁盘已满。我使用df -h,它说磁盘几乎已满:

> df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        99G   87G  7.2G  93% /
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G   11M   16G   1% /dev/shm
tmpfs            16G   18M   16G   1% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/vdb1       394G  317G   58G  85% /data

但是当我用来du -sh查找应该删除哪个文件以释放磁盘时,我得到了不同的结果,这表明已使用的空间少于 50%:

> du -sh / --exclude=/data --exclude=/proc
38G /

我还检查了没有删除的文件:

> lsof | grep delete
[no output]

根目录中也没有隐藏目录/

> ls .[^.]*
.autorelabel

我还检查了没有交换空间:

> free -h
              total        used        free      shared  buff/cache   available
Mem:           31Gi       708Mi        21Gi        30Mi       8.5Gi        30Gi
Swap:            0B          0B          0B

按照@telcoM的指示,我检查了文件系统是EXT4:

> lsblk -o +fstype
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT FSTYPE
sr0     11:0    1 18.8M  0 rom             iso9660
vda    252:0    0  100G  0 disk
└─vda1 252:1    0  100G  0 part /          ext4
vdb    252:16   0  400G  0 disk
└─vdb1 252:17   0  400G  0 part /data      ext4

按照@xhienne 的指示,我调用了dumpe2fs

> dumpe2fs -h /dev/vda1 | grep ^Reserv
dumpe2fs 1.42.9 (28-Dec-2013)
Reserved block count:     1100904
Reserved GDT blocks:      1017
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

我还应该执行哪些操作来释放磁盘?

相关内容