Qualquer bloco no disco virtual que você já usou contará para o tamanho do seu VHD, a exclusão de arquivos no sistema de arquivos não libera os blocos no VHD. Não há mecanismo equivalente "TRIM" para arquivos de disco virtual.
Estou tendo uma VM com um pequeno servidor Debian 7 dentro de uma VM VMware Player. O disco tem um tamanho máximo de 55 GB, as propriedades da máquina virtual mostram um tamanho atual de 46,5 GB.
Não há outros discos / volumes montados no dispositivo, debian me diz que o disco é usado apenas para 16 GB, como o arquivo de disco vm pode ter quase 3x o tamanho?!
root@websrv:~# df -hT
Filesystem Type Size Used Avail Use% Mounted on
...
/dev/disk/by-uuid/ac9f2318-3e32-4b50-9178-20e5362013b0 ext4 48G 16G 30G 36% /
...
PS: A vm não possui snapshots, apenas 2 dispositivos de rede e nada mais configurado, apenas um pequeno sistema de servidor web.
A primeira razão é que talvez o disco da sua máquina virtual tenha sido provisionado como "tamanho fixo" ou "disposição de espessura", a variante que aloca a quantidade total de espaço em disco antes da formatação. A segunda variante (que é mais provável) é porque a formatação de um disco no sistema de arquivos ext4 cria estruturas FS em todo o disco, o que faz com que o VMware Player aloque todo o espaço para o arquivo vdisk. A causa mais provável de alocar todo o tamanho é o (s) local (is) do superbloco no ext4, este sistema de arquivos duplica seu superbloco em vários locais altamente espaçados em todo o disco, e o VMware Player pode não suportar VHDs esparsos, assim alocará tamanho inteiro do VHD no disco.
Por que o tamanho é 48G e o tamanho do VHD é 55G - há certas estruturas de dados no sistema de arquivos ext4 que ocupam espaço em disco bruto que é efetivamente reduzido quando você olha para df
output. Para determinar o tamanho real de um dispositivo de disco a partir do seu sistema operacional convidado, use qualquer solução desta questão , seja cat /proc/partitions
ou blockdev --getsize64 (device)
.