Kompresowanie cienkiego dysku w ESXi 5

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..

  1. 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
  2. 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.
  3. Łą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

  4. 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.

  5. 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!

Uwaga. Jeśli jest kilka dysków, należy wykonać tę procedurę dla każdego.

Na szczęście rozszerzenie wirtualnego dysku jest znacznie łatwiejsze 🙂