Provisioning gruby i cienki: jaka jest różnica?

W niniejszym artykule szczegółowo omówimy kwestię wstępnej alokacji pamięci masowej w ustawieniach dysków wirtualnych oraz wyjaśnimy, czym są alokacja typu „thick” i „thin”, czym się różnią oraz który z tych rodzajów wstępnej alokacji pamięci masowej jest lepszym rozwiązaniem dla Państwa infrastruktury.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

Alokacja typu „thick”

Alokacja typu „thick” to rodzaj wstępnej alokacji pamięci masowej. W przypadku alokacji typu „thick” cała pojemność dysku wirtualnego jest wstępnie przydzielana w pamięci fizycznej w momencie tworzenia dysku wirtualnego. Dysk wirtualny z alokacją typu „thick” od samego początku zajmuje całą przydzieloną mu przestrzeń w magazynie danych, przez co przestrzeń ta nie jest dostępna dla innych maszyn wirtualnych.

Istnieją dwa podtypy dysków wirtualnych z alokacją typu „thick”:

  • Dysk typu „ Lazy zeroed disk ” to dysk, który zajmuje całą swoją przestrzeń w momencie utworzenia, ale przestrzeń ta może zawierać stare dane na nośniku fizycznym. Te stare dane nie są kasowane ani nadpisywane, dlatego przed zapisaniem nowych danych w blokach należy je „wyzerować”. Ten typ dysku można utworzyć szybciej, ale jego wydajność będzie niższa podczas pierwszych operacji zapisu ze względu na zwiększoną liczbę operacji wejścia/wyjścia na sekundę (IOPS) dla nowych bloków;
  • Dysk typu „ Eager zeroed disk ” to dysk, który w momencie utworzenia zajmuje całą wymaganą przestrzeń, a przestrzeń ta jest całkowicie oczyszczana z wszelkich poprzednich danych znajdujących się na nośniku fizycznym. Tworzenie dysków z natychmiastowym zerowaniem trwa dłużej, ponieważ na cały dysk zapisywane są zera, ale ich wydajność jest wyższa podczas pierwszych operacji zapisu. Ten podtyp wirtualnego dysku z alokacją grubą obsługuje funkcje klastrowania, takie jak odporność na awarie.

Thick provisioning

Ze względów bezpieczeństwa danych natychmiastowe zerowanie jest bardziej powszechne niż opóźnione zerowanie w przypadku wirtualnych dysków z alokacją grubą. Dlaczego? Po usunięciu pliku VMDK dane w magazynie danych nie są całkowicie usuwane; bloki są po prostu oznaczane jako dostępne, dopóki system operacyjny ich nie nadpisze. Jeśli na tym magazynie danych utworzysz dysk wirtualny z zerowaniem typu „eager”, obszar dysku zostanie całkowicie wyczyszczony (tj. zzerowany), uniemożliwiając w ten sposób osobom o złych zamiarach odzyskanie poprzednich danych – nawet przy użyciu specjalistycznego oprogramowania innych firm.

Alokacja typu thin

Alokacja typu thin to kolejny rodzaj wstępnej alokacji magazynu. Dysk wirtualny z alokacją typu thin zajmuje początkowo tylko tyle miejsca, ile potrzebuje, a z czasem powiększa się zgodnie z zapotrzebowaniem.

Na przykład, jeśli utworzysz nowy dysk wirtualny o alokacji typu „thin” o pojemności 30 GB i skopiujesz na niego 10 GB plików, rozmiar powstałego pliku VMDK wyniesie 10 GB, podczas gdy w przypadku wyboru dysku z alokacją typu „thick” plik VMDK miałby rozmiar 30 GB.

Thin Provisioning

Dyski wirtualne z alokacją typu „thin” można szybko utworzyć i są one przydatne do oszczędzania miejsca na dysku. Wydajność dysku z alokacją typu „thin” nie jest wyższa niż dysku z alokacją typu „thick” z opóźnionym zerowaniem, ponieważ w przypadku obu tych typów dysków przed zapisaniem danych w nowym bloku konieczne jest zapisanie zer. Należy pamiętać, że po usunięciu danych z wirtualnego dysku z alokacją typu „thin” rozmiar dysku nie zmniejsza się automatycznie. Wynika to z faktu, że system operacyjny usuwa jedynie indeksy z tabeli plików, które odnoszą się do treści plików w systemie plików; bloków należących do „usuniętych” plików oznacza jako wolne i dostępne do zapisu nowych danych. Dlatego usunięcie pliku wydaje się natychmiastowe. Gdyby było to całkowite usunięcie, polegające na zapisaniu zer w blokach zajmowanych przez usunięte pliki, zajęłoby to mniej więcej tyle samo czasu, co skopiowanie tych plików. Zobacz uproszczoną ilustrację poniżej.

View from the operating system

Problemy, które mogą wystąpić podczas korzystania z dysków wirtualnych z alokacją typu thin

Korzystanie z dysków wirtualnych z alokacją typu thin nie zawsze przebiega bez problemów. Istnieje kilka kwestii, o których należy wiedzieć i na które należy być przygotowanym.

Rozważmy przykład, który uniemożliwia korzystanie z maszyn wirtualnych. Na przykład mamy magazyn danych o pojemności 20 GB, na którym działają trzy maszyny wirtualne. Każda maszyna wirtualna posiada zestaw dysków wirtualnych z alokacją typu thin o maksymalnym rozmiarze 10 GB. (Praktyka ta nazywana jest „nadmierną alokacją” – przypisujemy dyskom wirtualnym więcej miejsca, niż mogą fizycznie zająć. Jest to często stosowane, ponieważ pozwala na skalowanie systemu poprzez dodawanie większej ilości fizycznej pamięci masowej w miarę potrzeb.) Rozmiar pliku każdego dysku wirtualnego będzie się zwiększał wraz z dodawaniem danych, aż w magazynie danych nie pozostanie już żadne wolne miejsce. Sytuacja staje się krytyczna, gdy w magazynie danych pozostaje tylko 1 GB wolnego miejsca, na przykład gdy VM1 zajmuje 8 GB, VM2 – 7 GB, a VM3 – 4 GB.

Zwykłe metody usuwania plików w maszynach wirtualnych nie pomogą zmniejszyć rozmiaru dysków wirtualnych z alokacją cienką. Jeśli do którejkolwiek z tych maszyn wirtualnych zostanie zapisanych ponad 1 GB nowych danych, wszystkie trzy ulegną awarii i konieczne będzie przeniesienie jednej lub kilku maszyn wirtualnych do innego magazynu danych w celu przywrócenia ich stanu działania.

Jak zmniejszyć rozmiar dysku wirtualnego z alokacją dynamiczną po usunięciu plików

Aby móc zmniejszyć rozmiar pliku VMDK dysków wirtualnych z alokacją dynamiczną, musisz wiedzieć, jak wyzerować bloki, które wcześniej zajmowały usunięte dane. Dowiedzmy się, jak to zrobić. Uwaga: Operacje zmniejszania dysków są możliwe tylko wtedy, gdy maszyny wirtualne nie zawierają migawek. Należy również zachować ostrożność i wykonywać polecenia na własną odpowiedzialność. Przed przeprowadzeniem jakichkolwiek operacji na dyskach należy zawsze wykonać kopię zapasową wszystkich ważnych danych.

Zmniejszanie dysków VMware z alokacją dynamiczną w systemie Linux

Rozważmy następujący przykład: mamy plik VMDK o rozmiarze 10 266 496 KB (10 GB) (rozmiar ten sprawdziliśmy, przechodząc do katalogu w magazynie danych, w którym znajduje się nasza maszyna wirtualna) i chcemy zmniejszyć dysk wirtualny, na którym zainstalowany jest gościnny system operacyjny Linux. Możemy spróbować usunąć niepotrzebne pliki z tego dysku wirtualnego. Jednak system Linux nie zeruje automatycznie bloków po usunięciu plików; trzeba to zrobić samodzielnie. Można to zrobić za pomocą narzędzia dd (duplikator danych) służącego do kopiowania i konwersji danych. Narzędzie to jest dostępne we wszystkich systemach Linux.

Uwaga: Przed uruchomieniem narzędzia dd należy upewnić się, że magazyn danych ma wystarczającą pojemność, aby z niego skorzystać (np. w przypadku serwera ESXi pojemność pamięci masowej można sprawdzić w sekcji pamięci masowej klienta vSphere – przejdź do Configuration > Storage).

Skorzystajmy z narzędzia dd .

  1. Najpierw sprawdzamy ilość wolnego miejsca na gościnnej maszynie wirtualnej z systemem Linux, używając polecenia df -h :

    root@test-virtual-machine:/# df -h

    W konsoli otrzymujemy następujący wynik:

    Filesystem Size Used Avail Use% Mounted on
    udev 469M 0 469M 0% /dev
    tmpfs 99M 6,3M 92M 7% /run
    /dev/sda7 17G 8,8G 6,4G 58% /
    tmpfs 491M 116K 491M 1% /dev/shm
    tmpfs 5,0M 4,0K 5,0M 1% /run/lock
    tmpfs 491M 0 491M 0% /sys/fs/cgroup
    /dev/sda1 945M 121M 760M 14% /boot
    /dev/sda6 3,7G 13M 3,5G 1% /var/log
    tmpfs 99M 36K 99M 1% /run/user/1000

    Z tego wyniku wynika, że partycja / (root) zawiera 8,8 GB plików.

  2. Usuńmy kilka gigabajtów niepotrzebnych plików z partycji root. Oto, co widzimy w konsoli po uruchomieniu polecenia df -h / :

    Filesystem Size Used Avail Use% Mounted on
    /dev/sda7 17G 4,7G 11G 31% /

    W ten sposób nasza partycja root zawiera teraz 4,7 GB plików. Jednak przechodząc do katalogu, w którym znajduje się nasz plik VMDK, widzimy, że jego rozmiar nadal wynosi 10 266 496 KB (10 GB).

  3. Teraz wypełnimy wolną przestrzeń zerami (w naszym przypadku wypełnimy 10 GB z dostępnych 11 GB). Najpierw wpisujemy cd , a następnie nazwę katalogu, do którego zamontowana jest partycja, którą należy wyzerować (w naszym przypadku jest to cd /, ponieważ chcemy przejść do partycji głównej). Następnie uruchamiamy poniższe polecenie, zmieniając zmienne zgodnie z naszymi potrzebami:

    dd bs=1M count=10240 if=/dev/zero of=zero

    W tym poleceniu:

    • dd można uruchomić wyłącznie jako superużytkownik.
    • bs ustawia rozmiar bloku (na przykład bs=1M ustawi rozmiar bloku na 1 megabajt).
    • count określa liczbę bloków do skopiowania (domyślnie dd działa w nieskończoność lub do wyczerpania danych wejściowych). W naszym przypadku 10 240 MB to ilość wolnego miejsca, które chcemy wypełnić zerami, więc liczba bloków o wielkości 1 megabajta wynosi 10240.
    •  if oznacza „plik wejściowy”. W tym miejscu należy wskazać źródło, z którego chcesz skopiować dane. W naszym przypadku jest to /dev/zero – specjalny plik (pseudourządzenie), który udostępnia tyle znaków null, ile chcesz z niego odczytać.
    • of oznacza „plik wyjściowy”. W tym miejscu należy ustawić miejsce docelowe, do którego chcesz zapisać/wkleić dane (w naszym przypadku nazwa pliku to zero).

    Po wykonaniu powyższego polecenia rozmiar naszego pliku VMDK wzrasta. Oto wynik, który widzimy po pomyślnym wykonaniu polecenia:

    10240+0 records in
    10240+0 records out
    10737418240 bytes (10 GB) copied, 59,4348 s, 181 MB/s
    Command has been completed successfully.

    Tak więc obecnie rozmiar naszego pliku VMDK wynosi 11 321 856 KB (10,8 GB), co oznacza, że uległ on powiększeniu. Ponadto, jeśli ponownie uruchomimy polecenie df -h / , zobaczymy następujący wynik:

    Filesystem Size Used Avail Use% Mounted on
    /dev/sda7 17G 15G 569M 97% /

    Oznacza to, że prawie cała partycja główna (tj. 97%) jest zajęta. Wynika to z faktu, że wypełniliśmy większość wcześniej „dostępnej” przestrzeni zerami. Teraz nasz dysk wirtualny z alokacją typu thin jest gotowy do zmniejszenia.

Uwaga: Aby przeprowadzić zmniejszenie, konieczne jest zainstalowanie VMware Tools.

  1. W przypadku maszyn wirtualnych działających na VMware ESXi lub VMware stacji roboczej wykonujemy następujące dwa polecenia w gościnnym systemie operacyjnym Linux.a) Aby upewnić się, że partycja dyskowa jest dostępna, uruchamiamy polecenie:

    root@test-virtual-machine:/# vmware-toolbox-cmd disk list

    Oto wynik, jaki widzimy w naszym przypadku (tj. widzimy listę dostępnych partycji):

    /
    /boot
    /var/log

    Partycja główna jest obecna, więc możemy kontynuować.b) Aby zmniejszyć partycję, uruchamiamy następujące polecenie:

    root@test-virtual-machine:/# vmware-toolbox-cmd disk shrink /

    Oto wynik, jaki widzimy w naszym przypadku:

    Please disregard any warnings about disk space for the duration of shrink process.
    Progress: 100 [===========>]
    Disk shrinking complete.

    Teraz rozmiar naszego zmniejszonego pliku VMDK wynosi 5 323 456 KB (czyli 5,08 GB – znacznie mniej niż poprzednie 10,8 GB).

Uwaga: Jeśli gościnna maszyna wirtualna działa na serwerze ESXi, po wypełnieniu bloków zerami można wykonać następujące kroki:

  1. Wyłącz maszynę wirtualną lub odłącz dysk wirtualny, który chcesz zmniejszyć.
  2. Połącz się z hostem ESXi za pomocą klienta SSH.
  3. Przejdź do Virtual Machine Folder.
  4. Sprawdź wykorzystanie dysku za pomocą du -h.
  5. Uruchom vmkfstools -K test-virtual-machine.vmdk.
  6. Sprawdź ponownie wykorzystanie dysku za pomocą du -h .

Zmniejszanie dysków VMware z alokacją dynamiczną w systemie Windows

Podobnie jak w systemie Linux, system Windows nie zeruje automatycznie bloków po usunięciu plików. Aby móc wyzerować wolną przestrzeń na docelowych dyskach w maszynie wirtualnej z systemem Windows, należy pobrać SDelete – bezpłatne narzędzie z pakietu Sysinternals firmy Microsoft – i rozpakować pliki z pobranego archiwum do katalogu c:program filessdelete

Następnie wykonaj następujące kroki:

  1. Uruchom cmd
  2. Przejdź do katalogu, w którym znajduje się plik SDelete . W naszym przypadku jest to: cd c:program filessdelete

  3. Dla każdej partycji w konsoli użyj polecenia sdelete -z . Oto, co mamy w naszym przypadku:

    sdelete -z c:
    sdelete -z d:

    Polecenia te wyzerują wszelką wolną przestrzeń na dysku z alokacją typu thin, wypełniając niewykorzystaną przestrzeń na określonych partycjach. Poczekaj kilka minut, aż proces się zakończy. Plik VMDK rozszerzy się do maksymalnego rozmiaru podczas tego procesu.

  4. Upewnij się, że na maszynie wirtualnej z systemem Windows zainstalowano VMware Tools. Domyślnie VMware Tools są instalowane w c:program filesvmwarevmware tools

    Przejdź do tego katalogu, wpisując:

    cd c:program filesvmwarevmware tools

  5. Aby wyświetlić dostępne partycje dyskowe, wpisz:

    vmwaretoolboxcmd disk list

  6. Zmniejsz rozmiar wybranych partycji dyskowych. W naszym przypadku uruchomiliśmy polecenia:

    vmwaretoolboxcmd disk shrink c:
    vmwaretoolboxcmd disk shrink d:

    Poczekaj, aż program zakończy zmniejszanie rozmiaru dysku.

Metodę tę można zastosować w przypadku maszyn wirtualnych działających na platformie VMware ESXi lub VMware stacja robocza.

VMware Storage Distributed Resource Scheduler

Powyżej wspomnieliśmy o rozwiązaniu umożliwiającym ręczne zmniejszenie dysków z alokacją typu thin. Istnieje jednak jeszcze jeden sposób zarządzania dyskami wirtualnymi (zarówno z alokacją typu thin, jak i typu thick), jeśli korzystasz z klastra magazynów danych w vSphere. VMware zapewnia automatyczną migrację dysków wirtualnych w obrębie klastra magazynów danych, aby uniknąć przepełnienia przestrzeni dyskowej, na której znajdują się dyski wirtualne z alokacją typu thin, oraz w celu zrównoważenia zasobów wejścia/wyjścia.

Jeśli do serwera ESXi podłączono więcej niż jeden współdzielony magazyn danych, można skonfigurować moduł Storage Distributed Resource Scheduler (Storage DRS). Storage DRS to inteligentna funkcja serwera vCenter Server służąca do wydajnego zarządzania pamięcią masową VMFS i NFS, która zapewnia automatyczne rozmieszczanie i migrację dysków maszyn wirtualnych. Można również ustawić Storage DRS w trybie ręcznym, jeśli wolisz ręcznie zatwierdzać zalecenia dotyczące migracji.

Aby włączyć Storage DRS, wykonaj następujące czynności:

  1. Przejdź do klastra magazynów danych w vSphere Web Client.
  2. Przejdź do vCenter > Datastore Clusters.
  3. Wybierz swój klaster magazynów danych i kliknij Manage > Settings > Services > Storage DRS.
  4. Kliknij Edit.
  5. Skonfiguruj potrzebne ustawienia automatyzacji, funkcje związane z operacjami wejścia/wyjścia oraz opcje zaawansowane.datastore-cluster
  6. Kliknij OK , aby zakończyć.

Jeśli w środowisku vSphere nie ma żadnych klastrów magazynów danych, wykonaj poniższe czynności, aby utworzyć i skonfigurować nowy klaster magazynów danych:

  1. Przejdź do vCenter > Datacenters w vSphere Web Client.
  2. Kliknij prawym przyciskiem myszy swoje centrum danych i wybierz New Datastore Cluster.
  3. Wprowadź nazwę klastra magazynów danych i zaznacz pole wyboru obok opcji „ "Turn On Storage DRS"”.
  4. Wybierz potrzebne ustawienia automatyzacji, funkcje związane z operacjami wejścia/wyjścia oraz opcje zaawansowane.
  5. Kliknij przycisk „ OK ”, aby zakończyć.

Wnioski

W tym wpisie na blogu omówiliśmy rodzaje dysków wirtualnych oraz przeanalizowaliśmy zalety i wady każdego z nich, aby lepiej zrozumieć różnice między alokacją typu thick a thin. Dyski z alokacją typu „thick” i zerowaniem typu „eager” zapewniają najlepszą wydajność i bezpieczeństwo, ale wymagają wystarczającej ilości wolnej przestrzeni dyskowej, a ich tworzenie zajmuje dużo czasu. Dyski z alokacją typu „thick” i zerowaniem typu „lazy” charakteryzują się krótkim czasem tworzenia, ale nie zapewniają tak dużej prędkości jak dyski z zerowaniem typu „eager” i są mniej bezpieczne. Dyski z alokacją typu „thin” są najlepszym wyborem, jeśli chodzi o oszczędność miejsca w magazynie danych w momencie tworzenia dysku.

Można utworzyć dysk wirtualny o maksymalnym rozmiarze większym niż dostępna przestrzeń fizyczna („overprovisioning”) i w przyszłości dodać więcej pamięci fizycznej, ale należy pamiętać, że jeśli fizyczna przestrzeń dyskowa się zapełni, a dysk z alokacją typu „thin-provisioned” nie będzie mógł się powiększyć, aby pomieścić więcej danych, maszyny wirtualne staną się bezużyteczne – dlatego nie należy zapominać o monitorowaniu ilości wolnego miejsca. Omówiliśmy również metody zmniejszania dysków wirtualnych VMware z alokacją typu thin, na wypadek gdybyś wolał nie dodawać dodatkowego magazynu i musiał zmniejszyć zajmowaną przestrzeń.

NAKIVO – tworzenie kopii zapasowej dla VMware vSphere

NAKIVO – tworzenie kopii zapasowej dla VMware vSphere

Kompleksowa ochrona danych dla maszyn wirtualnych VMware vSphere oraz opcje natychmiastowego odzyskiwania. Bezpieczne lokalizacje kopii zapasowych na miejscu, zdalnie oraz w chmurze. Funkcje ochrony przed oprogramowaniem wymuszającym okup.

People also read