Ottimizzare la gestione dei file immagine disco in Proxmox

From RVM Wiki
Revision as of 09:29, 17 December 2020 by Gabriele.vivinetto (talk | contribs) (Windows 10)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

È possibile far si che lo spazio libero su un disco immagine di una VM venga rilasciato automaticamente, senza seguire procedure manuali.

Scelta dello storage

Per far questo è necessario utilizzare uno storage che supporti il discard:

ZFS
qcow locale
NFS da buster in poi (deve essere NFS4v2, vedere con "mount  | grep nfs4 | grep vers=4.2| grep --color 'nfs4\|vers=4.2'")

Per vedere lo spazio effettivamente occupato da un'immagine qcow:

qemu-img info file.qcow

Per vedere lo spazio effettivamente occupato da un volume su filesystem ZFS

zfs list DATA/vm-116-disk-1
NAME                 USED  AVAIL  REFER  MOUNTPOINT
DATA/vm-116-disk-1  1.19G  4.51T  1.19G  -

Impostazione della VM

  • La VM deve avere un controller scsi virtio: scegliere dalle
Options 
SCSI COntroller
VirtIO SCSI
  • I dischi della VM devono essere di tipo
SCSI
  • E devono avere impostata l'opzione
Discard
  • Ricordarsi di aggiornare nelle Options il
Boot Order

Impostazione del sistema operativo della VM

Linux

LVM

  • Se si usa LVM, impostare discard anche qui, in modo da liberare spazio per eventuali lv o pv cancellati:
vi /etc/lvm/lvm.conf 
   issue_discards = 1

=EXT4

  • Verificare che non ci siano riferimenti in /etc/fstab a dei block device (/dev/vda1 o altro)
  • Impostare l'opzione discard per i filesystem (attenzione aboto che deve essere dichiarato ext4 e non ext2) e lo swap dichiarato in /etc/fstab
sudoedit /etc/fstab
UUID=1131db48-794b-49f9-8e4f-d53589b93989 /boot           ext4    defaults,discard          0       2
/dev/mapper/debian71-root                 /               ext4    errors=remount-ro,discard 0       1
/dev/mapper/debian71-swap1                none            swap    sw,discard                0       0
  • Ricreare l'initrd:
 update-initramfs -u -k all
  • Se non si vuole fare reboot, rimontare tutti i filesystem e riattivare gli swap
mount -o remount /
mount -o remount /boot
swapoff -a; swapon -a
  • Controllare che ci sia l'opzione discard
mount
  • Eventualmente eseguire un trim manuale per >= Jessie:
fstrim -av
  • Per wheezy:
fstrim -v /


ZFS

  • Se si usa ZFS, si deve avere almeno ZFS 0.8, e settare
zpool set autotrim=on POOLNAME

Per lanciare manualmente

zpool trim POOLNAME

Windows

Il Trim è supportato da Windows Seven in poi.

Configurare la VM con Controller Virtio-SCSI e dischi SCSI

Windows 10

  • Lanciare un TRIM manuale del Disco E: da prompt elevato di Powershell:
Optimize-Volume -DriveLetter E -ReTrim -Verbose
  • Verificare che il trim automatico sia abilitato, da prompr CMD elevato:
fsutil behavior query disabledeletenotify
disabledeletenotify = 0
  • Abilitare il trim automatico:
fsutil behavior set disabledeletenotify 0

Riferimenti