Vhdx - Speicherplatz wird nicht freigegeben
Hallo,
mir ist folgendes Verhalten aufgefallen, wenn ich in Hyper-V einen Linux-VM erstelle (und als Datenträger-Typ "dynamisch erweiterbar") auswähle, nimmt die Dateigröße der vhdx zu, sofern das virtualisierte Linux (CentOS 8) diesen Speicherplatz auch benötigt. Soweit ist das Verhalten normal. Allerdings "schrumpft" die vhdx nicht mehr, wenn die Dateien im Linux-System gelöscht wurden. Auch ein "Komprimieren" der vhdx in Hyper-V bringt absolut nichts. Das Problem ist, dass das Linux u. U. sehr große Dateien verarbeitet (mehrere TB) und das Ganze die vhdx immens aufbläht, auch wenn die Dateien nur kurzzeitig auf dem Linux verarbeitet werden.
Workaround momentan: Die VM immer wieder (mit kleiner vhdx) zurücksichern, wenn sich die vhdx aufgeblasen hat. Aber gibt es nicht eine elegantere Lösung? Oder ist das einfach das Verhalten, der Datenträgertyp nannt sich ja "dynamisch erweiterbar" und nicht dynmaisch variabel...
Danke
mir ist folgendes Verhalten aufgefallen, wenn ich in Hyper-V einen Linux-VM erstelle (und als Datenträger-Typ "dynamisch erweiterbar") auswähle, nimmt die Dateigröße der vhdx zu, sofern das virtualisierte Linux (CentOS 8) diesen Speicherplatz auch benötigt. Soweit ist das Verhalten normal. Allerdings "schrumpft" die vhdx nicht mehr, wenn die Dateien im Linux-System gelöscht wurden. Auch ein "Komprimieren" der vhdx in Hyper-V bringt absolut nichts. Das Problem ist, dass das Linux u. U. sehr große Dateien verarbeitet (mehrere TB) und das Ganze die vhdx immens aufbläht, auch wenn die Dateien nur kurzzeitig auf dem Linux verarbeitet werden.
Workaround momentan: Die VM immer wieder (mit kleiner vhdx) zurücksichern, wenn sich die vhdx aufgeblasen hat. Aber gibt es nicht eine elegantere Lösung? Oder ist das einfach das Verhalten, der Datenträgertyp nannt sich ja "dynamisch erweiterbar" und nicht dynmaisch variabel...
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 599696
Url: https://administrator.de/contentid/599696
Ausgedruckt am: 24.11.2024 um 02:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo,
soweit ich weiß ist das ein normales Verhalten, habe aber schon länger nichts mehr mit Hyper-V zu tun gehabt. Ich habe jedoch noch nicht gehört, dass sich dynamische vhd's automatisch wieder verkleinern.
Du kannst mal versuchen:
I have also written on this topic, and have found that it is pretty easy to compact vdisks from within a command prompt using diskpart. I prefer the method below. I like the fact that you don’t need to shrink partitions in your vdisk and you don’t even need to zero out unused disk space.
From an elevated command prompt type:
diskpart
select vdisk file=”C:\Hyper-V\sampledrive.vhdx”
attach vdisk readonly
compact vdisk
detach vdisk
exit
Quelle:
https://www.enhansoft.com/how-to-compact-and-shrink-the-size-of-a-vhd-fi ... / Kommentarbereich
Habe ich mit Profil VHDs auf einem RDS-Server erfolgreich getestet.
Vielleicht hilfst dir ja!
MfG
soweit ich weiß ist das ein normales Verhalten, habe aber schon länger nichts mehr mit Hyper-V zu tun gehabt. Ich habe jedoch noch nicht gehört, dass sich dynamische vhd's automatisch wieder verkleinern.
Du kannst mal versuchen:
I have also written on this topic, and have found that it is pretty easy to compact vdisks from within a command prompt using diskpart. I prefer the method below. I like the fact that you don’t need to shrink partitions in your vdisk and you don’t even need to zero out unused disk space.
From an elevated command prompt type:
diskpart
select vdisk file=”C:\Hyper-V\sampledrive.vhdx”
attach vdisk readonly
compact vdisk
detach vdisk
exit
Quelle:
https://www.enhansoft.com/how-to-compact-and-shrink-the-size-of-a-vhd-fi ... / Kommentarbereich
Habe ich mit Profil VHDs auf einem RDS-Server erfolgreich getestet.
Vielleicht hilfst dir ja!
MfG
Moin,
Nein, sondern
soweit ist das Verhalten normal. Im laufenden Betrieb werden vhdx immer nur größer und nie kleiner.
Das ist eine der Möglichkeiten, um das Problem zu lösen. Jetzt kommt es darauf an: Sind irgendwelche Usereinstellungen zu sichern und wieviele? Wahrscheinlich ist es nämlich einfach schneller, das kleine 100Gig-Image des Grundsystems zurückzuspielen als mehrere TB wieder auf 100Gig einzudampfen.
Hier ein Artikel, der die "eleganten" Lösungen zusammenfasst. BTW: Erster Treffer bei Google für "vhdx verkleinern".
<edit>Link vergessen: https://www.windowspro.de/wolfgang-sommergut/vhdx-laufwerke-komprimieren ...;
hth
Erik
Zitat von @ITgustel:
mir ist folgendes Verhalten aufgefallen, wenn ich in Hyper-V einen Linux-VM erstelle (und als Datenträger-Typ "dynamisch erweiterbar") auswähle, nimmt die Dateigröße der vhdx zu, sofern das virtualisierte Linux (CentOS 8) diesen Speicherplatz auch benötigt. Soweit ist das Verhalten normal.
mir ist folgendes Verhalten aufgefallen, wenn ich in Hyper-V einen Linux-VM erstelle (und als Datenträger-Typ "dynamisch erweiterbar") auswähle, nimmt die Dateigröße der vhdx zu, sofern das virtualisierte Linux (CentOS 8) diesen Speicherplatz auch benötigt. Soweit ist das Verhalten normal.
Nein, sondern
Allerdings "schrumpft" die vhdx nicht mehr, wenn die Dateien im Linux-System gelöscht wurden.
soweit ist das Verhalten normal. Im laufenden Betrieb werden vhdx immer nur größer und nie kleiner.
Workaround momentan: Die VM immer wieder (mit kleiner vhdx) zurücksichern, wenn sich die vhdx aufgeblasen hat.
Das ist eine der Möglichkeiten, um das Problem zu lösen. Jetzt kommt es darauf an: Sind irgendwelche Usereinstellungen zu sichern und wieviele? Wahrscheinlich ist es nämlich einfach schneller, das kleine 100Gig-Image des Grundsystems zurückzuspielen als mehrere TB wieder auf 100Gig einzudampfen.
Aber gibt es nicht eine elegantere Lösung? Oder ist das einfach das Verhalten, der Datenträgertyp nannt sich ja "dynamisch erweiterbar" und nicht dynmaisch variabel...
Hier ein Artikel, der die "eleganten" Lösungen zusammenfasst. BTW: Erster Treffer bei Google für "vhdx verkleinern".
<edit>Link vergessen: https://www.windowspro.de/wolfgang-sommergut/vhdx-laufwerke-komprimieren ...;
hth
Erik
Zitat von @ITgustel:
Wenn das Linux wieder "klein" ist, also eigentlich wenig Speicherplatz verbrauchen sollte, die vhdx aber auch mit "Komprimieren" nicht kleiner wird:
1. Im Linux in der Shell folgendes eingeben:
sudo fstrim /
2. Danach die Platte nochmals in Hyper-V "Komprimieren", nun wird (oder sollte) die vhdx wieder schön klein werden. Bei mir hat es funktioniert.
Wenn das Linux wieder "klein" ist, also eigentlich wenig Speicherplatz verbrauchen sollte, die vhdx aber auch mit "Komprimieren" nicht kleiner wird:
1. Im Linux in der Shell folgendes eingeben:
sudo fstrim /
2. Danach die Platte nochmals in Hyper-V "Komprimieren", nun wird (oder sollte) die vhdx wieder schön klein werden. Bei mir hat es funktioniert.
Das funktioniert aber nur, wenn Hyper-V die "richtige" Hardware emuliert, d.h. die emulierte Platte den TRIM-SATA-Befehl unterstützt.
Der fstrim-Befehl wird in Sekundenbruchteilen ausgeführt.
Das ist abhängig von der drunterliegenden Hardware.
lks