Tiras Posted August 13, 2021 Share Posted August 13, 2021 Hallo, kann man in unRAID einer VM z.B. 80 GB für das Image zuweisen, aber nur der tatsächliche bedarf wird genutzt? Quote Link to comment
mgutt Posted August 13, 2021 Share Posted August 13, 2021 Laut hier passiert das bereits standardmäßig: https://forums.unraid.net/topic/51703-vm-faq/#comment-557606 Allerdings wächst sie nach und nach an und müsste wieder "getrimmt" werden (Nicht verwechseln mit dem TRIM Kommando des SSD Controllers). Aus dem Grund ist im Link auch ein Tipp zu finden, wie das automatisch passiert. Hier gibt es noch einen Tipp, wo man in Windows leere Bereiche mit Nullen beschreibt. Dadurch soll das Image wohl auch wieder automatisch schrumpfen: https://www.jamescoyle.net/how-to/323-reclaim-disk-space-from-a-sparse-image-file-qcow2-vmdk Müsste man mal ausprobieren. Aber nicht falsch verstehen. Die Datei selbst wird im Dateiexplorer immer mit 80GB angezeigt, aber sie belegt auf dem Datenträger einfach weniger. 1 Quote Link to comment
Tiras Posted August 13, 2021 Author Share Posted August 13, 2021 24 minutes ago, mgutt said: Aber nicht falsch verstehen. Die Datei selbst wird im Dateiexplorer immer mit 80GB angezeigt, aber sie belegt auf dem Datenträger einfach weniger. Genau das ist ja nicht der Fall. Auf dem Datenträger werden sowohl 80 GB angezeigt als auch belegt. Wenn nur der beanspruchte Speicherbedarf belegt wird, dann würde meine NVMe nicht voll sein. 6 von 10 VMs haben 80 GB als Image, beanspruchen aber zwischen 33 GB und 42 GB. Hinzu kommt, dass mit Krusader das Image mit 80 GB angezeigt, aber im Windows Explorer aufgerundet 84 GB angezeigt werden. Ist das normal? Quote Link to comment
mgutt Posted August 13, 2021 Share Posted August 13, 2021 4 minutes ago, Tiras said: Auf dem Datenträger werden sowohl 80 GB angezeigt als auch belegt Wie in den Links erwähnt, verfällt dieser Vorteil mit der Zeit, weil bereits gelöschte Dateien nicht gegen Nullen ersetzt werden, was die Voraussetzung für eine Speicherplatz-Ersparnis wäre. Daher auch der Tipp mit der sdelete.exe aus dem 2. Link. Probiere das doch mal aus. Vielleicht siehst du ja den Effekt an der Datenträgerauslastung, wenn du das bei allen VMs gemacht hast. Ach ja: Du hast die Images aber in Unraid neu erstellt und nicht aus einem anderen System übernommen? Weil sonst könnte es sein, dass die nicht Sparse sind. Per Kommandozeile kannst du übrigens auch die Größen wie folgt anzeigen lassen: du -h /mnt/cache/domains/*/*.img 17G /mnt/cache/domains/Windows 10/vdisk1-backup.img 16G /mnt/cache/domains/Windows 10/vdisk1.img du -h --apparent-size /mnt/cache/domains/*/*.img 32G /mnt/cache/domains/Windows 10/vdisk1-backup.img 32G /mnt/cache/domains/Windows 10/vdisk1.img Quote Link to comment
Tiras Posted August 13, 2021 Author Share Posted August 13, 2021 6 minutes ago, mgutt said: Ach ja: Du hast die Images aber in Unraid neu erstellt und nicht aus einem anderen System übernommen? Weil sonst könnte es sein, dass die nicht Sparse sind. Sie wurden mal unter unRAID erstellt, aber aus einem Backup wieder kopiert. Sollte meiner Meinung nach eigentlich kein Problem darstellen, weil man sonst kein Backup einer VM einspielen kann. Quote Link to comment
mgutt Posted August 13, 2021 Share Posted August 13, 2021 16 hours ago, Tiras said: Sie wurden mal unter unRAID erstellt, aber aus einem Backup wieder kopiert. Da kommt es darauf an mit welchem Tool. cp respektiert zb Sparse und rsync kann es irgendwie auch. Jedenfalls sind deine Dateien keine Sparse Dateien mehr. Du könntest alle VMs stoppen und dann das ausführen, um wieder Sparse Files zu erhalten: find /mnt/cache/domains/*/*.img | while read img; do fallocate -d "$img"; done; Quelle: https://stackoverflow.com/a/54419842/318765 Nutzung auf eigene Gefahr. Bitte vorher Backups machen. Quote Link to comment
Tiras Posted August 13, 2021 Author Share Posted August 13, 2021 Ich habe die *.img aus dem Backup mit Krusader kopiert.... Quote Link to comment
mgutt Posted August 13, 2021 Share Posted August 13, 2021 12 minutes ago, Tiras said: aus dem Backup mit Krusader kopiert. Das kann heißen, dass Krusader nicht mit Sparse Dateien umgehen kann oder dass im Backup bereits keine Sparse Dateien mehr enthalten waren. Müsstest du mal die oben genannten Kommandos beim Backup ausführen. Quote Link to comment
Tiras Posted August 13, 2021 Author Share Posted August 13, 2021 @ich777 Kannst du hierzu vielleicht etwas sagen? Quote Link to comment
Tiras Posted August 13, 2021 Author Share Posted August 13, 2021 Die Frage die ich mir nun stelle ist, welcher Vorgang hat dazu geführt, dass es keine Sparse-Dateien mehr sind? Ein falsches kopieren der Dateien? Dieses Script aus den CAs? Quote Link to comment
ich777 Posted August 13, 2021 Share Posted August 13, 2021 1 hour ago, Tiras said: @ich777 Kannst du hierzu vielleicht etwas sagen? Um was gehts hier, größe eines VM images? QCOW2 wächst inkrementell mit, aber bitte nicht verwechseln, es wird nicht wieder kleiner wenn du sachen löscht aus dem Image. Ich bin auch eigentlich der falsche Ansprechpartner für VMs ich kenn mich eher mit Docker containern aus und bin eigentlich ein Gegner von VMs und versuche die selbst zu vermeiden. Quote Link to comment
Tiras Posted August 13, 2021 Author Share Posted August 13, 2021 Es geht darum, dass ich ein Backup meiner VMs mit dem im Screenshot gezeigten Script erstelle. Nach neukonfiguration habe ich die img-Datei aus dem Backup wieder in den Share kopiert. Wird die Datei beim Kopieren mit deinem Docker "Krusader" irgendwie angepasst oder als nicht Sparse-Datei kopiert? Quote Link to comment
ich777 Posted August 13, 2021 Share Posted August 13, 2021 2 minutes ago, Tiras said: Wird die Datei beim Kopieren mit deinem Docker "Krusader" irgendwie angepasst oder als nicht Sparse-Datei kopiert? Wie gesagt ich bin eigentlich der falsche Ansprechpartner bei VMs da ich nur "richtige" Platten durchreiche. Kann mir aber nicht vorstellen das Krusader an der Datei was ändert, hast schon mal probiert im Terminal direkt zu kopieren? Bin auch nicht wirklich ein Krusader nutzer, CLI ist mir meistens noch immer am liebsten. Quote Link to comment
mgutt Posted August 14, 2021 Share Posted August 14, 2021 10 hours ago, Tiras said: Die Frage die ich mir nun stelle ist, welcher Vorgang hat dazu geführt, dass es keine Sparse-Dateien mehr sind? Teste es doch einfach. Erstell eine neue VM ohne ISO, sondern dass du nur ein img erstellt wird. Das dann prüfen auf Sparse. Dann sichern, wieder prüfen. Mit Krusader zurückkopieren und wieder prüfen. Wer ist schuld? Quote Link to comment
Tiras Posted August 14, 2021 Author Share Posted August 14, 2021 Ich vermute, dass du -h /mnt/cache/domains/*/*.img die Sparse-Dateien anzeigt, oder woran hast du erkannt, dass die Dateien von mir keine Sparse-Dateien mehr sind? Quote Link to comment
mgutt Posted August 14, 2021 Share Posted August 14, 2021 1 hour ago, Tiras said: woran hast du erkannt, dass die Dateien von mir keine Sparse-Dateien mehr sind? Weil sie in beiden Fällen exakt gleich groß sind. Das ist einfach absolut unwahrscheinlich. Es gibt immer irgendwelche Bereiche mit Nullen. Das Beispiel was ich gepostet habe, zeigt zB eine frische Windows 10 Installation: du -h /mnt/cache/domains/*/*.img 16G /mnt/cache/domains/Windows 10/vdisk1.img du -h --apparent-size /mnt/cache/domains/*/*.img 32G /mnt/cache/domains/Windows 10/vdisk1.img Wie man sieht eine 32GB VDisk, die auf dem Datenträger 16GB belegt, aber in Windows selbst sehe ich eine Belegung von ~25GB. Dh die Windows-Dateien selbst enthalten auch größere Bereiche mit Nullen. Also selbst wenn du die Datenträger aller VMs über die Zeit mal vollbekommen hast, dürfte es niemals exakt das Maximum belegen. Übrigens habe ich es gerade ausprobiert. Bei mir wurde durch das VM Backup Plugin eine Sparse-Datei erstellt, die sogar noch kleiner geworden ist: du -h /mnt/disk7/Backup/VM/*/*.img 15G /mnt/disk7/Backup/VM/Windows 10/20210814_1030_vdisk1.img Man kann also davon ausgehen, dass das Plugin "cp" zur Datensicherung verwendet. Dann habe ich die Datei mit Krusader zurückkopiert und schon haben wir das Disaster (die Datei belegt sogar noch mehr auf dem Datenträger als die Datei maximal groß ist): du -h /mnt/cache/domains/*/*.img 36G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1.img du -h --apparent-size /mnt/cache/domains/*/*.img 32G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1.img Also machen wir sie wieder kompakt: find /mnt/cache/domains/*/*.img | while read img; do fallocate -d "$img"; done; Schon besser: du -h /mnt/cache/domains/*/*.img 15G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1.img @ich777 Die Frage ist nun warum Krusader keine Sparse-Dateien respektiert bzw erstellt. Im Bugtracker finde ich das Wort Sparse gar nicht. Kann ja nicht sein, dass das noch nie jemandem aufgefallen ist?! Die Frage ist nun, ob das an dem Docker liegen kann oder ein allgemeines Problem von Krusader ist. Dann könnte man dazu ja mal einen Bug Report öffnen. Quote Link to comment
ich777 Posted August 14, 2021 Share Posted August 14, 2021 2 hours ago, mgutt said: Die Frage ist nun, ob das an dem Docker liegen kann oder ein allgemeines Problem von Krusader ist. Benutzt ihr hier meinen? Probiert mal den von binhex ob es bei dem auch so ist, evtl. gibts da auch eine option dazu in Krusader, wie gesagt ich selbst bin nicht wirklich Krusader Nutzer aber ich seh mir das gerne mal an. Kann mir aber ehrlich gesagt nicht vorstellen das es an Krusader liegt, könnt auch mal probieren Krusader als root zu starten (Variable mit dem Key: "RUNASROOT" und dem Value: "true" anlegen im Container template) ob das was ändert. Quote Link to comment
Tiras Posted August 14, 2021 Author Share Posted August 14, 2021 33 minutes ago, ich777 said: Benutzt ihr hier meinen? Probiert mal den von binhex ob es bei dem auch so ist, evtl. gibts da auch eine option dazu in Krusader, wie gesagt ich selbst bin nicht wirklich Krusader Nutzer aber ich seh mir das gerne mal an. Kann mir aber ehrlich gesagt nicht vorstellen das es an Krusader liegt, könnt auch mal probieren Krusader als root zu starten (Variable mit dem Key: "RUNASROOT" und dem Value: "true" anlegen im Container template) ob das was ändert. Ja, ich benutze deinen Krusader. Quote Link to comment
Tiras Posted August 14, 2021 Author Share Posted August 14, 2021 Eine kurze zwischen Frage: Welche Parameter in "rsync" für Dateien / Ordner Synchronisierung sollte man am Besten verwenden? Quote Link to comment
mgutt Posted August 14, 2021 Share Posted August 14, 2021 6 minutes ago, Tiras said: Eine kurze zwischen Frage: Welche Parameter in "rsync" für Dateien / Ordner Synchronisierung sollte man am Besten verwenden? Da habe ich ehrlich gesagt noch nie auf Sparse-Dateien geachtet. Müsste man mal mit den beiden Optionen testen: https://stackoverflow.com/a/56201249/318765 Quote The latest version of rsync can handle --sparse and --inplace together Quote Link to comment
mgutt Posted August 14, 2021 Share Posted August 14, 2021 52 minutes ago, ich777 said: Benutzt ihr hier meinen? Ja. Ich habe auch extra von Disk zu Disk kopiert um Unraid selbst auszuschließen. 52 minutes ago, ich777 said: Probiert mal den von binhex Der hat das selbe Problem. Die Datei ist auch 36GB groß geworden (Quelle 15GB). Wobei nach einer gewissen Zeit die Dateigröße wieder kleiner wurde (?!), aber immer noch kein Sparse Niveau: du -h /mnt/disk7/Backup/VM/*/*.img 15G /mnt/disk7/Backup/VM/Windows 10/20210814_1030_vdisk1.img du -h /mnt/cache/domains/*/*.img 32G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_krusader_binhex.img 33G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_krusader_ich777.img 16G /mnt/cache/domains/Windows 10/vdisk1.img 59 minutes ago, ich777 said: "RUNASROOT" und dem Value: "true" Das führt zu einem "unable to create io-slave" Fehler, wenn ich Dateioperationen wie Umbenennen oder Kopieren ausführen möchte: Quote Link to comment
ich777 Posted August 14, 2021 Share Posted August 14, 2021 11 minutes ago, mgutt said: Das führt zu einem "unable to create io-slave" Fehler, wenn ich Dateioperationen wie Umbenennen oder Kopieren ausführen möchte: Ich benutz das nicht aber wäre wohl anzuraten den container komplett neu zu installieren aber root sollte eigentlich nicht notwendig sein. 12 minutes ago, mgutt said: Wobei nach einer gewissen Zeit die Dateigröße wieder kleiner wurde (?!) Was? Müsste mir mal ansehen wie krusader kopiert, direkt vom terminal funktioniert es aber richtig mit cp oder? Schon mal versucht von der konsole von Krusader zu kopieren mit cp? Quote Link to comment
Tiras Posted August 14, 2021 Author Share Posted August 14, 2021 Also nachdem ich dein Befehl ausgeführt habe, wird mir nun wieder mehr Speicher angezeigt. Vorher waren nur noch 27 GB frei. Quote Link to comment
mgutt Posted August 15, 2021 Share Posted August 15, 2021 Ok, das sind ja mal Welten ^^ Eigentlich könnte man sich dafür ein Script anlegen, dass prüft ob eine VDisk in Verwendung ist und wenn nicht, führt es "fallocate -d" darauf aus. Oder man kombiniert es mit dem Backupzeitpunkt, wo man die VM ja eh runterfahren sollte. Hast du zufällig auch von vorher einen Screenshot? Ich brauche das als Argument in einer Diskussion zu Sparse Dateien. Quote Link to comment
mgutt Posted August 16, 2021 Share Posted August 16, 2021 On 8/14/2021 at 2:03 PM, ich777 said: Was? Ja keine Ahnung. Frisch mit Krusader kopiert: du -h /mnt/cache/domains/*/*.img 36G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_krusader_ich777.img Nach 30 Sekunden: du -h /mnt/cache/domains/*/*.img 32G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_krusader_ich777.img Ich vermute das liegt daran, weil der noch vom RAM auf die SSD runterschreibt und es solange eine Summe aus beidem ist?! On 8/14/2021 at 2:03 PM, ich777 said: Schon mal versucht von der konsole von Krusader zu kopieren mit cp? Ohne --sparse=always nicht ganz so effizient wie mit cp in Unraid, aber ja, es bleibt bei der Sparse Datei: du -h /mnt/cache/domains/*/*.img 25G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_krusader_ich777_cp.img 20G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_unraid_cp.img Mit der Option ist es bei beiden gleich: du -h /mnt/cache/domains/*/*.img 16G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_krusader_ich777_cp_sparse_always.img 16G /mnt/cache/domains/Windows 10/20210814_1030_vdisk1_unraid_cp_sparse_always.img Ich habe dann noch einen Test gemacht und in der Kommandozeile von Krusader eine Sparse Datei erstellt: dd if=/dev/zero of=/krusader/sparse.file bs=1 count=0 seek=512M 0+0 records in 0+0 records out 0 bytes copied, 6.3021e-05 s, 0.0 kB/s ls -lh /krusader total 0 -rw-r--r-- 1 root root 512M Aug 16 11:41 sparse.file du -h /krusader/* 0 /krusader/sparse.file Dann habe ich sie mit Krusader kopiert und sie wurde wieder groß: du -h /krusader/* 0 /krusader/sparse.file 512M /krusader/sparse_krusader_ich777.file Es muss also denke ich an Krusader selbst liegen. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.