Über die Zeit werden die VM-Dateien Qcow2 immer größer und verbrauchen unter Umständen viel Speicherplatz auf dem Hostsystem. Das kommt davon das virtuellen Maschinen gelöschte Bereiche nur als gelöscht markieren und auf dem Partition nicht freigeben und als ganze null definieren. Also wird z.B. eine 1GB große Datei gelöscht und Ihr habt keine SSD mit der Trim Funktion aktiv im Einsatz, dann wird dieser gelöschte Bereich in dem Qcow2 Diskimage nicht wieder freigegeben. Die VM selber weiß natürlich das dieser Speicherplatz wieder frei ist, aber bis zum Hostsystem kommt diese Information nicht durch.

# Vorschau Produkt Bewertung Preis
1 Proxmox VE: Das umfassende Handbuch Proxmox VE: Das umfassende Handbuch Aktuell keine Bewertungen 59,90 EUR
2 Proxmox VE 8 Praxisbuch: Informationen, Tipps und Tricks für Proxmox-Einsteiger und Fortgeschrittene Proxmox VE 8 Praxisbuch: Informationen, Tipps und Tricks für Proxmox-Einsteiger und… Aktuell keine Bewertungen 18,50 EUR
3 MINIS FORUM MS-01 Mini Workstation Intel Core i9-13900H (vPro Enterprise) Mini PC,2X 10Gbps SFP+/2X 2.5G RJ45/2x USB4/HDIM/1x PCIe4.0x16 slot/3x M.2 2280/22110/U.2 SSD,Pas de RAM/SSD MINIS FORUM MS-01 Mini Workstation Intel Core i9-13900H (vPro Enterprise) Mini PC,2X 10Gbps SFP+/2X… Aktuell keine Bewertungen 687,00 EUR
4 Lokal virtualisieren: Proxmox VE, Hyper-V und Nutanix (IT-Administrator Sonderheft 2025) Lokal virtualisieren: Proxmox VE, Hyper-V und Nutanix (IT-Administrator Sonderheft 2025) Aktuell keine Bewertungen 29,90 EUR
5 Dein Home Server mit Proxmox: Wie du mit Home Assistant, Pi Hole und TrueNAS dein Smart Home steuerst, Werbung blockierst und deine eigene Cloud betreibst. Dein Home Server mit Proxmox: Wie du mit Home Assistant, Pi Hole und TrueNAS dein Smart Home… Aktuell keine Bewertungen 15,99 EUR
6 Papierlos mit Paperless-ngx: Wie du dein Papierchaos beseitigst, Dokumente scannst, digitalisierst und sicher archivierst. Mit Paperless-ngx & Proxmox. Papierlos mit Paperless-ngx: Wie du dein Papierchaos beseitigst, Dokumente scannst, digitalisierst… Aktuell keine Bewertungen 13,98 EUR
7 PcZinophyte Solider Firewall-PC 2x10G SFP+ 3x2,5G LANs N150 Mini-Computer DDR5 NVMe Server-Host-Unterstützung Proxmox OPNsense PcZinophyte Solider Firewall-PC 2x10G SFP+ 3×2,5G LANs N150 Mini-Computer DDR5 NVMe… Aktuell keine Bewertungen 239,99 EUR
8 Mastering Modern Proxmox VE: Step-by-Step Practical Labs for Virtualization, Clustering, HA, Ceph, ZFS Storage, PBS Backup, and Upgrades Mastering Modern Proxmox VE: Step-by-Step Practical Labs for Virtualization, Clustering, HA, Ceph… Aktuell keine Bewertungen 23,12 EUR
9 MINIS FORUM MS-R1 ARM Workstation Mini PC, CP8180 (12C/12T, bis 2,6 GHz, 45 Tops), 64 GB LPDDR5, ECC-Unterstützung, PCIe 4.0 x16, Dual 10GbE, UEFI-Boot, kompatibel mit Proxmox/KVM (ohne SSD) MINIS FORUM MS-R1 ARM Workstation Mini PC, CP8180 (12C/12T, bis 2,6 GHz, 45 Tops), 64 GB LPDDR… Aktuell keine Bewertungen 591,00 EUR
10 Proxmox VE 8 Practical Guide: Information, Tips, and Tricks for Proxmox Beginners and Advanced Users Proxmox VE 8 Practical Guide: Information, Tips, and Tricks for Proxmox Beginners and Advanced Users Aktuell keine Bewertungen 25,97 EUR

Es gibt 2 Lösungen für dieses Problem

SSD mit TRIM Funktion (Proxmox Discard)

Die meisten SSDs haben heutzutage die Trim Funktion mit dabei. Das bewirkt lediglich das diese Löschkommandos von der VM bis zur SSD durchgereicht werden und gelöschte Objekte in gänze freigegeben werden bis runter auf die Festplatte. In Proxmox müsst Ihr dazu in den Optionen der Hard Disk die Discard Funktion aktivieren. Alle zukünftig gelöschten Teilbereiche werden direkt bis runter auf die SSD als wieder frei gekennzeichnet und in der Qcow Datei wird der Speicherplatz auch wieder freigegeben.

Discard aktivieren in Proxmox für die SSD Trim Funktion
Discard aktivieren in Proxmox für die SSD Trim Funktion

Wer noch zusätzlich überprüfen möchte ob seine verbaute SSD diese Trim Funktion unterstützt, kann sich dies mit folgendem Befehl anzeigen lassen.

sudo hdparm -I /dev/sda | grep -i TRIM

Als Ausgabe kann in etwa das erwartet werden:

root@server:~#  hdparm -I /dev/sda | grep -i TRIM
           *    Data Set Management TRIM supported (limit 8 blocks)
           *    Deterministic read data after TRIM

Das QCOW2 Disk Image verkleinern und optional Komprimieren

Wer keine Festplatte hat mit der Trim-Funktion wird wohl das Problem haben, dass das Imagefile immer weiter anwächst. Jetzt bleibt einem nur übrig das Qcow Image zu Konvertieren. Bei diesem Konvertieren-Prozess werden alle gelöschten Bereiche (Nullen, Zeros) wieder freigegeben und ein neues Qcow2 Image erzeugt.

  • Als erstes die Virtuelle Maschine herunterfahren (Shutdown)
  • Wechselt auf dem Proxmox-Host in das Verzeichnis wo in der Regel die Disk-Images abgelegt sind. (Bei Proxmox üblicherweise in /var/lib/vz/images/<VMID>)
  • Erstellt nun eine Kopie von eurem Disk-Image
cp <IMAGE>.qcow2 <IMAGE>_backup.qcow2
  • Jetzt wird von der „Backup“ Image-Datei das neue Image geschrieben bzw. Konvertiert. Hier ergibt sich noch die Möglichkeit das Image direkt zu Komprimieren. Das verringert zwar die Größe des Images, aber geht auch ein bisschen zur Lasten den CPU im späteren Betrieb.
#Konvertieren und Nullen löschen OHNE Komprimierung
qemu-img convert -O qcow2 <IMAGE>_backup.qcow2 <IMAGE>.qcow2
#Konvertieren und Nullen löschen MIT Komprimierung
qemu-img convert -O qcow2 -c <IMAGE>_backup.qcow2 <IMAGE>.qcow2
  • Nun kann man die VM wieder starten und überprüfen ob alles in-Ordnung ist.
  • Wenn alles OK ist, kann die „_backup.qcow2“ Datei wieder gelöscht werden.

Schlusswort

Dieser Artikel entsteht im Jahre 2020 und ich bin der Meinung, dass bis jetzt zumindest alle im Umfeld von Virtualisierung benutzten Festplatten die TRIM Funktion mit dabei haben sollten. Wenn das der Fall sein sollte, überprüft ob die Discard Option in den Hard Disk Einstellungen gesetzt ist. Es passiert sehr schnell das dies vergessen wird, da das Häkchen kein Default Wert ist.
Ansonsten der Prozess zum manuellen Verkleinern der Images ist natürlich kein wöchentlicher Prozess, sondern bei schnelllebigen VMs 1x im Quatal und bei normalen 1x im Jahr. Das sollte jedenfalls ausreichen, um nicht zu viel Speicherplatz belegt zu haben, welcher eigentlich frei sein könnte.

Eine Videoanleitung gibt es auch: https://schroederdennis.de/allgemein/qcow2-image-verkleinern-unter-proxmox/

Ich hoffe diese Anleitung hat geholfen! Gibt es Ergänzungen oder Verbesserungen? Dann lass es mich bitte gerne über die Kommentare wissen. Danke 🙂

Dennis Schröder – Geiler Typ