Cienkie (cienkie) dyski VMWare mogą znacznie zaoszczędzić miejsce w systemie plików VMFS podczas tworzenia maszyny wirtualnej. Podczas tworzenia takich dysków vmdk praktycznie nie zajmują miejsca w systemie plików i stopniowo rosną do maksymalnego rozmiaru w miarę gromadzenia się informacji. Jednak głównym problemem podczas korzystania z cienkich dysków jest to, że rosną one z czasem, nawet jeśli zwolnisz miejsce w systemie operacyjnym gościa.
Uwaga. Podczas usuwania danych w systemie Windows (i Linux również) system nie wypełnia przyzwyczajenia zerami, ale po prostu zaznacza obszary jako usunięte w metadanych sekcji (można ich użyć do nagrywania). Okazuje się, że serwer ESXi nie może samodzielnie określić, który z podanych mu bloków jest rzeczywiście wolny.ESXi nie ma standardowego narzędzia do kompresji cienkich dysków, a sam system wirtualizacji nie wie nic o funkcjach przechowywania danych w systemie operacyjnym gościa.
W tym artykule opiszemy prosty sposób kompresji cienkiego dysku vmdk w ESXi..
- W pierwszym etapie musisz pomóc hiperwizorowi, wypełniając zerami całe wolne miejsce na dysku w systemie gościa. Możesz zresetować wolne bloki w systemie Windows za pomocą narzędzia Mark Rusinovich SDelete (w chwili pisania najnowszej dostępnej wersji SDelete v1.61, jeśli używasz wcześniejszej wersji SDelete , należy pamiętać, że można w nim zastosować nieco inne parametry). Możesz pobrać SDelete tutaj: http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx. Rozpakuj archiwum na dysk, otwórz wiersz polecenia (oczywiście z uprawnieniami administratora) i uruchom następujące polecenie
Sdelete -z c:
W tym przypadku c: to wirtualny cienki dysk vmdk, który planujemy skompresować.
W systemie Linux operację tę można wykonać za pomocą dd
dd if = / dev / zero bs = 64k z = zero.temp; rm zero.temp
- Wyłącz system operacyjny gościa (zamknięcie systemu).Uwaga. Możesz także skompresować dysk, migrując maszynę wirtualną do innego magazynu (Storage VMotion). Zauważamy jednak, że ta metoda nie jest uniwersalna i działa tylko pod pewnymi warunkami.
- Łączymy się z serwerem ESXi przez SSH pod rootem (nie zapomnij włączyć usługi SSH i zezwalać na ruch przychodzący na zaporze ESXi). Przejdź do katalogu z plikami maszyny wirtualnej:
cd vmfs / volume / storage1 / vm1
gdzie storage1 to nazwa magazynu, a vm1 to katalog, w którym przechowywane są pliki z dyskami vmdk maszyny wirtualnej
- Wydrukuj „pełny” rozmiar dysku wirtualnego.
ls -lh * .vmdk
„Rzeczywisty” rozmiar dysku wirtualnego, który zajmuje on w systemie plików, można znaleźć w następujący sposób:
du -h * .vmdk
Jak widać, cienki dysk zajmuje 33 GB pamięci (jego maksymalny rozmiar to 40 GB). Co więcej, tylko 15 GB jest zajęte w systemie gościa Windows.
- Skompresuj dysk vmdk za pomocą vmkfstools. Polecenie kompresji cienkiego dysku wygląda następująco:
vmkfstools --punchzero /vmfs/volumes/storage1/vm1/vm1.vmdk
Procedura kompresji w naszym przykładzie zajęła około 5 minut (prędkość w zależności od wielkości dysku oraz szybkość i przeciążenie pamięci masowej i sieci SAN). Po zakończeniu procedury kompresji sprawdź bieżący rozmiar pliku vmdk.
Jak widać dysk vmdk zmniejszył się do 15 GB!
Na szczęście rozszerzenie wirtualnego dysku jest znacznie łatwiejsze 🙂