No Proxmox, usamos o LVM para criar discos (volumes lógicos) para nossas VMs (thin provisioning LVM).
Recentemente, descobrimos que nosso grupo de volumes está quase cheio, mesmo quando todos os discos VM estão quase vazios.
O problema é que algumas partições LVM mostram um tamanho mapeado muito maior que o tamanho real dos dados armazenados no disco da VM, conforme relatado por df.
Por exemplo, temos uma VM com volume lógico de 100 GB. O uso do disco dentro da VM mostra apenas 3,2 GB de espaço usado:
#> df
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/pve-vm--3011--disk--1 99G 3.2G 91G 4% /
...
mas o volume lógico no host mostra que usa 39.8 GB:
#> lvdisplay
--- Logical volume ---
LV Path /dev/pve/vm-3011-disk-1
LV Name vm-3011-disk-1
VG Name pve
LV UUID oleKd5-O2o4-c4CE-5vzn-bXRC-TXwF-lzApmW
LV Write Access read/write
LV Creation host, time carol, 2016-08-16 09:03:54 +0200
LV Pool name vm-hdd
LV Status available
# open 1
LV Size 100.00 GiB
Mapped size 39.83%
Current LE 25600
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 251:28
...
Então, de fato, mais de dez vezes mais espaço é usado do que o necessário.
Alguma ideia de qual é o motivo? Eu suspeito que o LVM mantém alocado todas as extensões já tocadas pelo sistema de arquivos na VM. Existe alguma maneira de evitar isso ou reivindicar o espaço não utilizado de volta?