KVM Images ändern, konvertieren, usw.

In seltenen Fällen kann es vorkommen das man ein Image wieder verkleinern möchte. Da dies mit QCOW2 direkt nicht möglich ist, muss das Image in das RAW Format konvertiert werden. Annahme ist hier der „vsrv-topc“ von Leopold. Diese VM musst aus verkleinert werden da Topcontrol ihre eignen Vorstellungen von Partition hat und auf eine „D-Partition“ bestand. Der Server wurde vorher schon auf 130GB erweitert. Der Speicher selbst wurde in der VM noch nicht zugeordnet. Erstellt man nun in dieser einen virtuellen Festplatte in Windows einen zweite Partition, kann man das Laufwerk „C“ nur mehr sehr umständlich in Windows erweitern (Thirdparttools). Folgende Schritte sind notwendig um das Image auf 55GB virtuelle Größe zu bekommen.

Bevor man mit dem eigentlichen Verkleinern am PVEhost beginnt muss man in der WindowsVM das Dateisystem Defragmentieren und dann das Volume verkleinern. Bei LinuxVM's genügt es Dateisystem zu verkleinern.
VM Images liegen (wenn diese lokal liegen) auf var/lib/vz/images/<VMID>.

1.) VM herunter fahren und Backup des Images erstellen

cp -a vm-103-disk-1.qcow2 vm-103-disk-1_backup.qcow2

2.) Konvertieren des Images in das RAW Format

qemu-img convert -O raw vm-103-disk-1.qcow2  vm-103-disk-1.raw

3.) Verkleinern des Images um 75GB

qemu-img resize vm-103-disk-1.raw -- -75G

4.) Zurück konvertieren in das QCOW2 Format

qemu-img convert -O qcow2 vm-103-disk-1.raw  vm-103-disk-1.qcow2

5.) VM-Größe auslesen und in der VM-Config richtig setzen

qemu-img info vm-103-disk-1.qcow2

image: vm-103-disk-1.qcow2
file format: qcow2
virtual size: 55G (59055800320 bytes)
disk size: 21G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    corrupt: false

Hier sieht man diese virtuelle Festplatte 21GB echten HDDspace verbraucht. Anwachsen kann sie bis 55GB (virtual size). Nun trägt man diesen Wert in die Config der VM ein.

nano /etc/pve/qemu-server/103.conf
...
virtio0: local:103/vm-103-disk-1.qcow2,format=qcow2,size=55G
...

6.) VM Starten, Checkdisk und Defrag ausführen.
7.) Backup des Images und RAWimage löschen.