Przydzielanie zasobów typu „thick” i „thin”: jaka jest różnica?

W niniejszym artykule szczegółowo omówimy kwestię wstępnego przydzielania 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ępnego przydzielania pamięci masowej będzie 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 poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

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 na fizycznej pamięci masowej 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 grubym przydziałem: Dysk typu „ ” 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, więc 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 „ ” to dysk, który w momencie utworzenia zajmuje całą wymaganą przestrzeń, a przestrzeń ta jest całkowicie czyszczona z wszelkich poprzednich danych na nośniku fizycznym. Tworzenie dysków z funkcją eager zeroing 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ą typu thick-provisioned obsługuje funkcje klastrowania, takie jak odporność na awarie. Ze względów bezpieczeństwa danych funkcja eager zeroing jest częściej stosowana niż lazy zeroing w przypadku wirtualnych dysków z alokacją typu thick-provisioned. 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 utworzysz dysk wirtualny z wyprzedzającym zerowaniem w tym magazynie danych, 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 dynamiczna Alokacja dynamiczna to kolejny rodzaj wstępnej alokacji magazynu. Dysk wirtualny z alokacją dynamiczną 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 cienkiej o pojemności 30 GB i skopiujesz na niego 10 GB plików, rozmiar wynikowego pliku VMDK wyniesie 10 GB, podczas gdy w przypadku wyboru dysku o alokacji grubej plik VMDK miałby rozmiar 30 GB. Dyski wirtualne o alokacji cienkiej można szybko utworzyć i są one przydatne do oszczędzania miejsca na dysku.

  • Lazy zeroed disk
  • Eager zeroed disk

Thick provisioning

Thin Provisioning

Wydajność dysku z alokacją dynamiczną nie przewyższa wydajności dysku z alokacją statyczną, na którym zerowanie odbywa się w trybie odroczonym, 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ą dynamiczną 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; oznacza on bloki należące do „usuniętych” plików jako wolne i dostępne do zapisania nowych danych. Dlatego właśnie usuwanie plików wydaje się natychmiastowe. Gdyby było to pełne usunięcie, w którym bloki zajmowane przez usunięte pliki byłyby zapisywane zerami, 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ą dynamiczną

Korzystanie z dysków wirtualnych z alokacją dynamiczną nie zawsze przebiega płynnie. Istnieje kilka problemów, 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 ma zestaw dysków wirtualnych z alokacją typu thin o maksymalnym rozmiarze 10 GB. (Praktyka ta nazywa się „nadmierną alokacją” — przypisujemy dyskom wirtualnym więcej miejsca, niż mogą fizycznie zająć. Jest to często stosowane, ponieważ pozwala na skalowanie systemu poprzez dodawanie fizycznej pamięci magazynowej w miarę potrzeb). Rozmiar pliku każdego dysku wirtualnego będzie się zwiększał wraz z dodawaniem danych, aż w magazynie danych nie pozostanie ż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 zajmuje 7 GB, a VM3 – 4 GB.

Zwykłe metody usuwania plików w maszynach wirtualnych nie pomogą zmniejszyć dysków wirtualnych z alokacją dynamiczną. Jeśli do którejkolwiek z tych maszyn wirtualnych zostanie zapisanych więcej niż 1 GB nowych danych, wszystkie trzy ulegną awarii i konieczne będzie przeniesienie jednej lub więcej 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 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 wykonaniem 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 przykład: mamy plik VMDK o rozmiarze 10 266 496 KB (10 GB) (dowiedzieliśmy się o jego rozmiarze, 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 11 GB dostępnych). 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 następujące polecenie, dostosowując zmienne do naszych potrzeb:

    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łoby 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 dostarcza 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 teraz rozmiar naszego pliku VMDK wynosi 11 321 856 KB (10,8 GB), co oznacza, że uległ on rozszerzeniu. 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 root (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 systemie operacyjnym gościa Linux.a) Aby upewnić się, że partycja dysku jest dostępna, uruchamiamy polecenie:

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

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

    /
    /boot
    /var/log

    Partycję główną jest, 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, który 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ż 10,8 GB, które zajmował wcześniej).

Uwaga: Jeśli Twoja wirtualna maszyna-gość działa na serwerze ESXi, po wypełnieniu bloków zerami możesz 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 Linux, system Windows nie zeruje automatycznie bloków po usunięciu plików. Aby móc wyzerować wolne miejsce 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 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ą dynamiczną, 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 potrzebne partycje dyskowe. W naszym przypadku uruchomiliśmy polecenia:

    vmwaretoolboxcmd disk shrink c:
    vmwaretoolboxcmd disk shrink d:

    Poczekaj, aż program zakończy zmniejszanie dysku.

Możesz użyć tej metody w przypadku maszyn wirtualnych działających na VMware ESXi lub VMware stacji roboczych.

VMware Storage Distributed Resource Scheduler

Powyżej wspomnieliśmy o rozwiązaniu umożliwiającym ręczne zmniejszenie dysków z alokacją dynamiczną. Istnieje jednak jeszcze jeden sposób zarządzania dyskami wirtualnymi (zarówno z alokacją dynamiczną, jak i statyczną), 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, w której znajdują się dyski wirtualne z alokacją dynamiczną, oraz w celu zrównoważenia zasobów we/wy.

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 efektywnego 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"” (Automatyczne przydzielanie przestrzeni dyskowej).
  4. Wybierz potrzebne ustawienia automatyzacji, funkcje związane z operacjami wejścia/wyjścia oraz opcje zaawansowane.
  5. Kliknij „ OK ” (Utwórz klaster), 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 i thin. Dyski z alokacją typu thick z zerowaniem typu eager zapewniają najlepszą wydajność i bezpieczeństwo, ale wymagają wystarczającej ilości wolnej przestrzeni dyskowej, a ich utworzenie zajmuje dużo czasu. Dyski z alokacją typu thick z zerowaniem typu lazy są dobre ze względu na krótki czas tworzenia, ale nie zapewniają takiej samej 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ą cienką 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ą dynamiczną, na wypadek gdybyś wolał nie dodawać więcej magazynu i musiał zmniejszyć zajmowaną przestrzeń.

NAKIVO do tworzenia kopii zapasowej VMware vSphere

NAKIVO do tworzenia kopii zapasowej 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