qcow2 Disk Shrinken?

Jan 9, 2012
282
1
18
Ich hab eine Win-7 VM mit einer 100GB qcow2 virtio Disk.
Windows zeigt 72GB Frei an, demnach sind also ~28 GB in Gebrauch.
Das VM Image liegt auf "local". Proxmox-4 ist mit ZFS-Mirror auf 2 SSD's installiert.
Nun möchte ich die VM-Disk auf einen zweiten ZFS SSD-Mirror verschieben. Hier fällt mir aber auf, dass beim "moven" tatsäschlich 100GB kopiert werden und die auf dem Ziel-Storage dann auch belegt sind. Auf local belegt die VM aber nur die ~28GB, vermutlich weil sie dort ja ursprünglich auch erstellt wurde und das qcow Imgae mit wächst.

Frage: Wie kann ich das Image "moven", so dass nur der tatsächlich belegte Platz kopiert wird?
 

wolfgang

Proxmox Staff Member
Staff member
Oct 1, 2014
6,496
477
103
Hi,

bitte nicht qcow auf einen cow fs wie ZFS verwenden das bringt viele Probleme und Performance Einbussen.
Du solltest das ZFSPoolPlugin verwenden und dann die disk auf das storage "moven".
Dann hat sich dein Problem auch gelöst.
 
Jan 9, 2012
282
1
18
bitte nicht qcow auf einen cow fs wie ZFS verwenden das bringt viele Probleme...

Was für welche ganau? Ich setze das in der Konstellation ein seit es ZFS auf Proxmox gibt und bisher lief alles ohne Probleme.

Zu dem mache ich täglich externe verschlüsselte Backups der Image-Files mit BORG, ohne Image-Files wird das dann ziemlich schwierig.
 

wolfgang

Proxmox Staff Member
Staff member
Oct 1, 2014
6,496
477
103
z.B du machst stat einem write 4,
da es beide copy on write sind.
Auch kann es zu cow2 corruption kommen.
Wenn du schon Image-Files brauchst dann ist raw ok.
 
Jan 9, 2012
282
1
18
Das Problem ist, ich brauche Image-Files UND Snapshots.
Das geht damit aber dann nicht, oder?

Auch kann es zu cow2 corruption kommen.
Echt jetzt? Was ist der Grund? Das habe ich noch nie gehört und wie gessagt, ich setze das in der Konstellation schon seit ein paar Jahren auf 2 Servern im Live-Betrie so ein.
 
Last edited:
Jan 9, 2012
282
1
18
Na dann hatte ich wohl Glück die letzten Jahre :) Das mit dem Speed bzgl. des Overheads war mir schon klar, aber damit kann ich leben. Datencorruption ist natürlich ne andere Geschichte, wobei mir persönlich noch kein Fall bekannt ist (zum Glück), aber egal. Ist eben ne feine Sache mit den qcow2 Snapshots und das ganze File basiert, ist alles recht flexibel.

Auf den Ursprung zurück zu kommen, verstehe ich das jetzt richtig, ich muss bei der bestehenden VM:

- Unter "Optionen" --> "SCSI Controller Tpe" den Typ "VirtIO SCSI" auswählen
- In der VM selbst den Treiber aus dem Verzeichnis "vioscsi" für den "Speichercontroller" installieren (bisher hab ich immer "viostor" verwendet)
- Unter "Hardware" bei der virtuellen Platte "Discard" aktivieren
- In der VM "Sdelete" laufen lassen

Und wenn ich die VM-Platte dann "move", dann sollte nur noch der tatsächlich benötigte Platz kopiert werden?
 

LnxBil

Famous Member
Feb 21, 2015
5,547
630
133
Germany
Ganz ehrlich: Ich glaube du solltest wirklich nochmal den Einsatz von ZFS überdenken, wenn du keine Vorteile davon nutzt. Vielleicht hast du auch nicht genau verstanden was ZFS dir alles bringt, denn du musst keine Backups von Dateien mittels Borg machen wenn du schon ZFS hast. Einfach einen verschüsselten Pool (LUKS+ZFS) auf der externen Platte anlegen und die Daten mittels send/receive übertragen. Viel schneller, viel einfacher und viel sicherer als Borg. Zugreifen kannst du dann natürlich auch direkt.
 
Jan 9, 2012
282
1
18
Was für eine Antwort. Hauptsache was geschrieben, oder? o_O

Bzgl. Vorteile: Da wär mal das Thema Soft-Raid und Schutz vor Bit-Kippern, selbstheilend, etc., etc. (lange Liste).
Und ja, die Server haben ECC RAM.

Meine Backup-Strategie sieht nun eben mal anders aus als Deine. Ich sichere jede Nacht knappe 100GB mit BORG auf ein Web-Drive und da ist eben nix mit send/receive. Ist immer nett wenn andere meinen Ihre Lösung sei DIE LÖSUNG. Aber egal, so isses eben :D

Vielleicht hast Du ja noch eine mir hilfreiche Info bzgl. meiner Frage die vor Deinem Kommentar steht ;)
 
Jan 9, 2012
282
1
18
- Unter "Optionen" --> "SCSI Controller Tpe" den Typ "VirtIO SCSI" auswählen
- In der VM selbst den Treiber aus dem Verzeichnis "vioscsi" für den "Speichercontroller" installieren (bisher hab ich immer "viostor" verwendet)
- Unter "Hardware" bei der virtuellen Platte "Discard" aktivieren
- In der VM "Sdelete" laufen lassen

Und wenn ich die VM-Platte dann "move", dann sollte nur noch der tatsächlich benötigte Platz kopiert werden?

Ich hab das jetzt mal genau so gemacht und das Ergebnis passt.
Die VM hatte vorher ~80GB, danach ~20GB. :)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!