Logo Informatizzati

Shrink di un disco qcow2 (https://pve.proxmox.com/wiki/Shrink_Qcow2_Disk_Files ):

La VM deve avere:

  • il disco virtuale in formato Thin
  • il controller Virtio-SCSI
  • l'opzione "discard" abilitata
  • l'opzione "SSD emulation" abilitata (perché Windows sia in grado di abilitare i comandi TRIM)

In Linux il comando "fstrim -av" esegui il trim dell'unità, passando quindi a Proxmox l'informazione di quali siano i blocchi da liberare

In Windows esegui il comando "fsutil behavior query DisableDeleteNotify" per verificare che non sia disabilitato il trim; se lo è esegui il comando "fsutil behavior set DisableDeleteNotify 0"

Se nonostante questi accorgimenti il file del disco virtuale risulta comunque troppo grosso rispetto al reale spazio occupato passiamo allo shrink manuale.

  1. Preparazione del disco all'interno della VM

    Windows:

    • scarica SDelete dal sito Micro$oft, scompatta e apri un prompt dei comandi in quella cartella
    • esegui il comando "sdelete -z lettera_di_unità", per esempio "sdelete -z C:" (potrebbe impiegare moltissimo tempo)

    Linux:

    • dd if=/dev/zero of=/tmp/zerofile ; rm -f /tmp/zerofile (potrebbe impiegare moltissimo tempo)
  2. Riduzione del file (shrink)
    • Arresta la VM
    • Collegati in ssh all'host Proxmox
    • spostati all'interno della directory in cui è presente il disco di cui fare lo shrink, per esempio /mnt/pve/[nome_storage]/images/[id_vm]/
    • esegui il comando "qemu-img convert -O qcow2 nome_disco.qcow2 nome_disco_shrink.qcow2" (potrebbe impiegare moltissimo tempo)
    • esegui il comando "mv nome_disco.qcow2 nome_disco_backup.qcow2 ; mv nome_disco_shrink.qcow2 nome_disco.qcow2"
  3. Avvio e pulizia
    • Avvia la VM e verifica che funzioni ancora tutto, assamai...
    • elimina il file nome_disco_backup.qcow2

Pacca sula spalla per aver liberato un sacco di spazio ;-)

Commenti offerti da CComment