df -h --total 命令显示错误的磁盘总大小

df -h --total 命令显示错误的磁盘总大小

我的 Linux Centos 7.9 服务器上有 512GB 的磁盘空间,我想从服务器内部的整体磁盘大小中知道总共使用了多少磁盘大小

我尝试使用 df -h --total 命令来显示总磁盘空间和已用百分比,但它显示总磁盘空间为 224GB,已用空间为 13%,这是错误的,因为

在 Azure 监控中显示已用空间为 76%,有人可以帮忙解决吗?

我尝试了许多命令,例如 fdisk、lsblk、parted 等,但没有准确的结果

“df -h --total”的完整输出:

df -h --total
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G     0   16G   0% /dev/shm
tmpfs            16G  136M   16G   1% /run
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/sda2        30G   25G  5.8G  81% /
/dev/sdb1       126G  4.1G  116G   4% /mnt/resource
shm              64M     0   64M   0% 
total           224G   29G  189G  14% -

lsblk:

NAME   FSTYPE LABEL       UUID                                 MOUNTPOINT    NAME    SIZE OWNER GROUP MODE
sda                                                                          sda      30G root  disk  
├─sda1                                                                       ├─sda1    1M root  disk  
└─sda2 xfs    centos_root 425e9325-f7cd-4d90-8548-4a79e37eb5b6 /             └─sda2   30G root  disk  
sdb                                                                          sdb     128G root  disk  
└─sdb1 ext4               6242553c-4d61-4420-b149-b2a3cb52c912 /mnt/resource └─sdb1  128G root  disk  
sdc                                                                          sdc     512G root  disk  

答案1

512GB 磁盘为/dev/sdc,并且未安装在您的操作系统中,因此不包括在 显示的总数中df -h

答案2

我认为您的 Azure 监控没有df关于您的 VM 所见的磁盘使用情况的代理报告,但是报告存储层报告的存储消耗,因此存在差异。

大多数云提供商都使用某种形式的精简配置分配存储时。

因此,当您为虚拟机分配 512 GB 虚拟磁盘时,虚拟机将看到 512GB 可用,但实际消耗的存储空间最初将更接近0GB,而不是分配的 512GB。后端尚未分配空闲磁盘空间,只有当您开始将数据写入该磁盘时,后端测量的实际磁盘消耗才会增加。

换句话说:将 100GB 写入该磁盘后,运行df将显示 VM 内部使用了 100GB,并且从存储后端查看时您还将看到使用了 100GB。

当你删除 80 GB 的文件时,有趣的事情发生:
运行时df将显示虚拟机中仅使用了 20GB,但从存储后端来看,它会报告仍有 100GB 在使用中。这是因为一些/许多存储后端一旦分配了精简配置的存储就无法回收。分配的存储只能在删除整个虚拟磁盘时回收,但当虚拟机删除虚拟磁盘上的文件/数据时无法回收存储。

相关内容