- Mitglied seit
- 22. Okt 2018
- Beiträge
- 2.904
- Punkte für Reaktionen
- 337
- Punkte
- 123
Bei den HDD-Images kann man doch die Speicherrückgewinnung aktivieren.
Wenn also Dateien in der VM gelöscht werden, müsste das HDD-Image doch eigentlich weniger Platz benötigen?
Nur irgendwie passiert das nicht.
Zur Probe hatte ich auch in der VM die HDD mit Nullen aufgefüllt, aber auch danach nichts ... es wurde nur der Speicherverbrauch noch größer.
(falls die virtuelle Platte sowas wie TRIM nutzt, könnte sie beim Löschen vom System informiert werden und den Speicher freigeben)
Geht das nun wirklich grundsätzlich wirklich garnicht, oder gibt es hier einfach nur einen Fehler irgendwo?
Mein Problem hatte ich inzwischen erstmal so gelöst, dass ich die VM gelöscht und neu erstellt hab.
Aber zukünftig wäre es mir lieb, wenn es funktionieren täte, oder es eine "einfache" Freigabemöglichkeit gäbe. (quasi sowas wie mit einem Befehl ab und an einen einen GarbageCollector anzuwerfen)
Ich hatte mich auch mal so umgesehn und gedacht es vielleicht manuell lösen zu können.
Der VMM (Qemu/KVM) nutzt als HDD-Images ja ein SparseFile.
Dachte mir also im Host durch die Daten des Images zu rauschen und die leeren Bereiche manuell freigeben zu können.
Im Windows kann man über die WinAPI (IOCTL) in einer Sparse-Datei einen belegten Bereich wieder freigeben.
Für Linux hatte ich sowas nicht gewunden.
Das Einzige wäre wohl über CP --sparse=always diese Datei zu kopieren und dabei die leeren Bereiche garnicht erst neu zu speichern.
Dabei geht aber die Verlinkung der "gleichen" Blöcke zum letzten Snapshot verloren, so dass das Image dann zwar um die leeren Bereiche kleiner würde, aber die gefüllten Daten wohl doppelt Platz belegen täten.
Wenn also Dateien in der VM gelöscht werden, müsste das HDD-Image doch eigentlich weniger Platz benötigen?
Nur irgendwie passiert das nicht.
Zur Probe hatte ich auch in der VM die HDD mit Nullen aufgefüllt, aber auch danach nichts ... es wurde nur der Speicherverbrauch noch größer.
(falls die virtuelle Platte sowas wie TRIM nutzt, könnte sie beim Löschen vom System informiert werden und den Speicher freigeben)
Geht das nun wirklich grundsätzlich wirklich garnicht, oder gibt es hier einfach nur einen Fehler irgendwo?
Mein Problem hatte ich inzwischen erstmal so gelöst, dass ich die VM gelöscht und neu erstellt hab.
Aber zukünftig wäre es mir lieb, wenn es funktionieren täte, oder es eine "einfache" Freigabemöglichkeit gäbe. (quasi sowas wie mit einem Befehl ab und an einen einen GarbageCollector anzuwerfen)
Ich hatte mich auch mal so umgesehn und gedacht es vielleicht manuell lösen zu können.
Der VMM (Qemu/KVM) nutzt als HDD-Images ja ein SparseFile.
Dachte mir also im Host durch die Daten des Images zu rauschen und die leeren Bereiche manuell freigeben zu können.
Im Windows kann man über die WinAPI (IOCTL) in einer Sparse-Datei einen belegten Bereich wieder freigeben.
Für Linux hatte ich sowas nicht gewunden.
Das Einzige wäre wohl über CP --sparse=always diese Datei zu kopieren und dabei die leeren Bereiche garnicht erst neu zu speichern.
Dabei geht aber die Verlinkung der "gleichen" Blöcke zum letzten Snapshot verloren, so dass das Image dann zwar um die leeren Bereiche kleiner würde, aber die gefüllten Daten wohl doppelt Platz belegen täten.