Czy wypełnienie zerowe zwiększy rozmiar obrazu dysku dynamicznego virtualbox

10

Najczęściej używam obrazów dysków o stałej wielkości do wirtualnego pudełka Oracle, ale rozważam przejście na obrazy dysków dynamicznych, ponieważ słyszałem, że obrazy dynamiczne mają podobną wydajność do obrazów o stałej wielkości, z wyjątkiem ekspansji.

Jedną operacją, którą często wykonuję, jest wypełnienie zera obrazu dysku o stałym rozmiarze przed utworzeniem kopii zapasowej za pomocą programu zip (w celu zmniejszenia rozmiaru archiwum zip). Moje pytanie brzmi: czy po napełnieniu dysku dynamicznego zerem rozmiar dysku wzrośnie do maksymalnej deklarowanej wartości? (W moim konkretnym przypadku korzystam sdelete -zz partycji Windows).

Jedno dodatkowe pytanie brzmi: czy istnieje sposób na zero wypełnienia partycji bez zwiększania rozmiaru dysku?

Dzięki.

-- EDYTOWAĆ --

Aby to wyjaśnić, powód, dla którego pytam, to to, że chcę utrzymać rozmiar skompresowanych obrazów virtualbox na minimalnym poziomie. Wypełnianie zera obrazu o stałym rozmiarze wykonuje zadanie, ponieważ wypełniona zerem część nie przyczynia się prawie nic do skompresowanego obrazu. Jednak jeśli przejdę na dysk dynamiczny, wypełnienie zera wydaje się nie działać w celu wykorzystania obrazów o dynamicznym rozmiarze.

Drugą częścią mojego pytania jest pytanie, czy istnieje lepsza alternatywa niż wypełnianie zera, która może usunąć nieużywane sektory bez zwiększania rozmiaru dysku.

tinlyx
źródło
1
tak, w pełni przydzielony dysk dynamicznie przydzielający będzie jego w pełni przydzielonym rozmiarem. Nie jestem do końca pewien, co to za zamieszanie, ani nie mogę znaleźć powodu, aby zrobić to, co opisujesz, ale nie, nie możesz upchnąć dużej ilości danych (choć wszystkie zera) do pliku i nie oczekiwać jego rozmiaru zmienić.
Frank Thomas
@FrankThomas Proszę zobaczyć moją aktualizację, aby zobaczyć przyczynę zerowania.
tinlyx
1
@tinlyx Właśnie odpowiedziałem i wygląda na to, że odpowiedziałem również na twoją edycję w mojej odpowiedzi, możesz faktycznie skompresować obrazy dysku dynamicznego za pomocą narzędzi virtualbox. Zatem zerowe wypełnienie, po którym następuje kompakt, byłoby idealnym obrazem do celów archiwalnych.
Mokubai

Odpowiedzi:

12

Właśnie go przetestowałem (używając sdelete -zna maszynie wirtualnej) i zerowe wypełnienie dysku nie zwiększy znacznie dynamicznego obrazu dysku. Virtualbox jest wystarczająco inteligentny, aby rozpoznać, że kiedy piszesz zera w już pustym bloku, dysk nie musi ponownie zapisywać tego bloku.

Ale nawet gdyby tak było, nie jest to wcale takie złe, ponieważ wypełnienie zera dysku również pozwoli na jego kompaktowanie za pomocą Narzędzi Virtualbox w twoim hoście: Jak kompaktować rozmiar pliku VDI VirtualBox?

Kiedy zerowałem swoją maszynę wirtualną, zwiększyłem rozmiar obrazu z ~ 14,5 GB do ~ 15,5 GB, ale nie przydzieliłem całkowicie całego miejsca na dysku, które wynosiłoby około 48 GB.

W rzeczywistości zerowe zapełnienie dysku (przez sdelete -z) pozwoli ci odpowiednio zwolnić dowolne miejsce, które zostało zapisane, ale zostało zwolnione przez system operacyjny VM, a następnie możesz uruchomić polecenie VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --compactna komputerze-hoście, aby odpowiednio skompresować dynamiczny obraz dysku z powrotem do minimalnego rozmiaru.

Mokubai
źródło
dzięki. Rzeczywiście, sdelete -znie zwiększa dynamicznie rozmiaru dysku.
tinlyx