Articles

Dowiedz się, jak i kiedy używać migawek vSphere

Stan maszyny wirtualnej w dowolnym określonym momencie można zachować, wykonując tzw. migawkę (snapshot).

Funkcja migawki VMware jest szczególnie przydatna w scenariuszach, w których chcesz szybko przywrócić stan po awarii lub po prostu przywrócić pożądany stan. Przywracanie maszyny wirtualnej do stanu funkcjonalnego po nieudanej aktualizacji lub poprawce jest jednym z częstych przypadków użycia. Podobnie można użyć migawek do przywrócenia maszyny wirtualnej do stanu wyjściowego, gdy użytkownik skończy z niej korzystać, na przykład w ramach konserwacji laboratorium szkoleniowego.

Funkcja migawek jest dostępna zarówno na samodzielnych hostach ESXi, jak i na serwerze vCenter.

Praca ze migawkami i menedżerem migawek

Można pracować ze migawkami z poziomu dowolnego klienta vSphere lub wykonując wywołania API z PowerCLI lub podobnego narzędzia. Różne zadania, takie jak przywracanie migawek, usuwanie migawek itp. przebiegają według tego samego schematu klikania i wybierania. Wspólnym mianownikiem jest tutaj Menedżer migawek, za pomocą którego można:

  • Brać migawki.
  • Przywrócić do najnowszej migawki lub dowolnej innej migawki.
  • Usuwać migawki.
  • Usuwać wszystkie migawki.
  • Edytować migawki (nazwa i opis).
  • Zarządzaj migawkami.
  • Skonsoliduj dyski.

Z poziomu klienta vSphere zawsze wystarczy kliknąć prawym przyciskiem myszy nazwę maszyny wirtualnej, wybrać opcję Snapshot(s) (Migawki) z menu kontekstowego lub menu akcji maszyny wirtualnej, a następnie żądaną operację. Na rysunku 1 przedstawiono to jako opcję A. Alternatywnie można zaznaczyć nazwę maszyny wirtualnej, kliknąć kartę Snapshots (Migawki) i wybrać zadanie z menu rozwijanego All Actions (Wszystkie działania) lub klikając ikonę odpowiedniego zadania, czyli opcję B.

Figure 1 – Two ways to carry out a snapshot related action on a VM

Note that each VM can have a maximum of 32 snapshots. Aby uzyskać najlepszą wydajność, zaleca się ograniczenie do 2-3 snapshotów na maszynę wirtualną. Po przekroczeniu tego limitu zwracany jest błąd pokazany na Rys.2.

Figura 2 – Błąd wskazujący, że limit maksymalnej liczby snapshotów na VM został przekroczony

Innym limitem, o którym należy pamiętać, jest limit retencji. Zaleca się, aby nie używać migawki dłużej niż 72 godziny, ponieważ pliki tworzące migawkę stale rosną i mogą mieć wpływ na wydajność systemu, pomijając fakt, że może zabraknąć miejsca na magazynach danych o stosunkowo niewielkim rozmiarze.

Jak wykonywać migawki

Podczas wykonywania migawki maszyny wirtualnej zachowywane są następujące informacje.

  • Ustawienia maszyny wirtualnej. Katalog maszyny wirtualnej, który zawiera dyski dodane lub zmienione po wykonaniu zrzutu.
  • Stan zasilania. Maszyna wirtualna może być włączona, wyłączona lub zawieszona.
  • Stan dysków. Stan wszystkich dysków wirtualnych maszyny wirtualnej.
  • (Opcjonalnie) Stan pamięci. Zawartość pamięci maszyny wirtualnej.

Dwa opcjonalne ustawienia określają stan, w jakim maszyna wirtualna jest przywracana podczas cofania się z migawki. Należy zauważyć, że żadna z tych opcji nie jest dostępna lub wymagana, gdy zrzut jest wykonywany przy wyłączonym zasilaniu maszyny wirtualnej. Te dwie opcje to:

Zrzut pamięci maszyny wirtualnej: Włączona domyślnie, opcja ta przepłukuje zawartość pamięci maszyny wirtualnej na dysk jako część zrzutu. Dzięki temu maszyna wirtualna może powrócić do stanu, w którym znajdowała się w momencie wykonywania zrzutu. Jeśli ta opcja jest odznaczona, a quiescing również nie jest zaznaczony, zrzut utworzy pliki, które są spójne z awarią, co oznacza, że po przywróceniu maszyny ze zrzutu konieczne będzie jej ręczne uruchomienie. Wykonanie zrzutu pamięci będzie trwało znacznie dłużej. Dodatkowo, maszyna wirtualna jest „zamrażana” w celu zapewnienia integralności stanu.

Quiesce guest file system: Ta opcja wymaga, aby narzędzia VMware Tools były zainstalowane i działały prawidłowo. Quiescing maszyny wirtualnej jest preferowaną metodą zapewnienia stanu odpowiedniego do tworzenia kopii zapasowych. Obejmuje to takie operacje, jak wypłukiwanie zabrudzonych buforów z pamięci podręcznej systemu operacyjnego na dysk lub inne zadania związane z aplikacjami wyższego poziomu. Quiescing oznacza wstrzymywanie lub zmienianie stanu procesów działających na komputerze, zwłaszcza tych, które mogą modyfikować informacje zapisane na dysku podczas tworzenia kopii zapasowej, w celu zagwarantowania spójnego i użytecznego tworzenia kopii zapasowych. Funkcja Quiescing nie jest konieczna w przypadku migawek pamięci; jest używana głównie do tworzenia kopii zapasowych.

Rysunek 3 przedstawia serię zrzutów ekranu pokazujących, jak wykonywane są migawki maszyn wirtualnych znajdujących się w różnych środowiskach przy użyciu określonego klienta vSphere lub Host.

  • Przykład 1 – Wykonywanie migawki maszyny wirtualnej zarządzanej przez serwer vCenter Server 6.5 za pomocą klienta vSphere Web.
  • Przykład 2 – Wykonanie migawki maszyny wirtualnej hostowanej na samodzielnym hoście ESXi 6.5 za pomocą klienta hosta ESXi.
  • Przykład 3 – Wykonanie migawki maszyny wirtualnej hostowanej na samodzielnym hoście ESXi 6.0 za pomocą klienta C# vSphere.

Figura 3 – Różne przykłady wykonywania snapshotów

Czwarty i ostatni przykład ilustruje wykorzystanie PowerCLI do wykonania snapshotu maszyny wirtualnej zarządzanej przez vCSA 6.5. Uwzględniłem dwa możliwe sposoby, których można użyć do wykonania migawki maszyny wirtualnej. W pierwszym przykładzie po prostu pobieram maszynę wirtualną za pomocą polecenia Get-VM, którą następnie przekazuję do cmdleta New-Snapshot. W drugim przykładzie użyłem samego polecenia New-Snapshot, gdzie poprzez parametr -VM określamy maszynę wirtualną, którą chcemy snapshotować. W obu przykładach, parametr -Name przypisuje nazwę do wykonanego zrzutu.

PowerShell

1
get-.vm -name „windows 7” | New-Snapshot -.Nazwa „Pre Windows Update”

.

PowerShell

1
New-.Snapshot -VM „Windows 7” -Name „Pre Windows Update”

Rysunek 4 – Dwa sposoby tworzenia migawek za pomocą PowerCLI

Jak wykluczyć dyski z migawki

Mogą zdarzyć się sytuacje, w których nie chcesz, aby migawki miały wpływ na dyski maszyny wirtualnej. W tym celu należy zmienić tryb dysku twardego maszyny wirtualnej w jej ustawieniach na Independent – Persistent lub Independent – Nonpersistent. Te dwie opcje różnią się nieznacznie, zgodnie z wyjaśnieniami VMware:

Independent – Persistent: Dyski w trybie persistent zachowują się jak konwencjonalne dyski na komputerze fizycznym. Wszystkie dane zapisane na dysku w trybie persistent są zapisywane na stałe na dysku.

Independent – Nonpersistent: Zmiany na dyskach w trybie nonpersistent są usuwane po wyłączeniu zasilania lub zresetowaniu maszyny wirtualnej. W trybie nonpersistent można ponownie uruchomić maszynę wirtualną z dyskiem wirtualnym w tym samym stanie za każdym razem. Zmiany na dysku są zapisywane i odczytywane z pliku dziennika redo, który jest usuwany po wyłączeniu lub zresetowaniu maszyny wirtualnej.

Figura 5 – Zmiana trybu dysku VMDK w celu wyłączenia go z wpływu migawek

Jak przywrócić migawkę

Aby przywrócić migawkę, należy wybrać opcję Revert to Latest Snapshot (Przywróć ostatnią migawkę). Jeśli maszyna wirtualna ma wiele migawek, wystarczy zaznaczyć migawkę, do której chcesz powrócić, w hierarchii migawek wyświetlanej w Menedżerze migawek i kliknąć ikonę Przywróć do, jak pokazano na rys. 6.

Rys. 6 – Wybieranie migawki do przywrócenia w Menedżerze migawek

Stan, do którego przywracana jest maszyna wirtualna, zależy od opcji wybranych w momencie wykonywania migawki. Jeśli została wybrana opcja pamięci, maszyna wirtualna pozostaje włączona podczas przywracania poprzedniego stanu. Jeśli opcja pamięci nie była włączona w momencie wykonywania zrzutu, po przywróceniu stanu ze zrzutu konieczne będzie ręczne włączenie maszyny wirtualnej, niezależnie od stanu zasilania, w jakim znajdowała się ona w momencie wykonywania zrzutu.

W każdym przypadku przywrócenia stanu ze zrzutu zostanie wyświetlone ostrzeżenie, że bieżący stan maszyny wirtualnej zostanie utracony, jeśli nie zostanie wykonany zrzut, jak pokazano na rys. 7. 7.

Figure 7 – Loss of current state warning when reverting to a snapshot

Jeśli podczas wykonywania zrzutu została wybrana opcja pamięci, zostanie wyświetlona opcja zawieszenia maszyny wirtualnej podczas jej przywracania. W przypadku wybrania tej opcji należy następnie ręcznie „odpauzować” maszynę wirtualną, włączając ją z powrotem.

Figure 8 – Suspending the VM while reverting back from snapshot

Pierwszy wykonany zrzut jest określany jako podstawowy zrzut macierzysty. Jest to ostatnio zapisana wersja aktualnego stanu maszyny wirtualnej. Migawka macierzysta jest zawsze migawką, która pojawia się bezpośrednio nad ikoną Jesteś tutaj w Menedżerze migawek. Jeśli przywrócisz lub przywrócisz zrzut, stanie się on rodzicem bieżącego stanu Jesteś tutaj. Migawka maszyny wirtualnej wykonana po migawce rodzica jest nazywana migawką dziecka.

Figura 9 – Hierarchia migawek ilustrująca relację między migawkami rodzica i dziecka oraz stanem bieżącym reprezentowanym przez You are here

Jak usunąć migawki

Można usunąć pojedynczą migawkę lub wszystkie istniejące migawki za jednym razem. Usuwanie migawek jest procesem kosztownym dla operacji wejścia/wyjścia i może wpływać na wydajność. Po usunięciu migawki aktualny stan maszyny wirtualnej pozostaje niezmieniony. Jednak wszystkie dotychczasowe zmiany są kopiowane z dysków delta i zapisywane na dysku podstawowym w procesie zwanym konsolidacją. Następnie proces konsolidacji dba o usunięcie wszystkich zbędnych plików związanych z usuniętym snapshotem.

Jeśli proces konsolidacji nie powiedzie się, można go zainicjować ręcznie z menu Snapshots, wybierając opcję Consolidate. Ważne jest, aby konsolidacja została przeprowadzona pomyślnie, ponieważ nadmiarowe dyski delta (patrz następna sekcja) mogą negatywnie wpływać na wydajność.

Rysunek 10 – Ręczne przeprowadzanie konsolidacji dysków

Więcej szczegółów można znaleźć w artykule How to consolidate snapshots in vSphere 5.x/6.x KB article.

Snapshoty z perspektywy plików

Snapshot składa się z szeregu plików, które można wyświetlić w Datastore Browser po przejściu do folderu maszyny wirtualnej, dla której wykonano snapshoty.

Snapshot składa się z następujących plików:

Pliki dysku delta: Plik .vmdk, do którego system operacyjny gościa może zapisywać. Dysk delta reprezentuje różnicę między bieżącym stanem dysku wirtualnego a stanem, który istniał w czasie, gdy wykonywana była poprzednia migawka. Podczas wykonywania migawki stan dysku wirtualnego jest zachowywany, co uniemożliwia systemowi operacyjnemu gościa zapisywanie na nim, a tworzony jest dysk delta lub child disk. Dysk delta ma dwa pliki, w tym plik deskryptora, który jest mały i zawiera informacje o dysku wirtualnym, oraz odpowiedni plik zawierający surowe dane. Pliki tworzące dysk delta są określane jako dyski child lub redo logs.

Plik płaski: Plik -flat.vmdk, który jest jednym z dwóch plików składających się na dysk podstawowy. Płaski dysk zawiera surowe dane dla dysku podstawowego. Ten plik nie pojawia się jako osobny plik w Datastore Browser, ale jest wymieniony osobno podczas listowania zawartości katalogu podczas konsolowania do ESXi.

Rysunek 11 – Niektóre pliki są widoczne tylko podczas konsolowania do ESXi

Plik bazy danych: Plik .vmsd, który zawiera informacje o snapshotach maszyny wirtualnej i jest podstawowym źródłem informacji dla Snapshot Managera. Plik ten, który można wyświetlić w dowolnym edytorze tekstu, zawiera wpisy w wierszach określające relacje między migawkami i dyskami podrzędnymi dla każdej migawki.

Plik pamięci: Plik .vmsn, zawiera aktywny stan maszyny wirtualnej i przechwytuje stan pamięci maszyny wirtualnej, aby umożliwić przywrócenie stanu włączonej maszyny wirtualnej. Jeśli opcja snapshot memory jest odznaczona, można przywrócić jedynie stan wyłączonej maszyny wirtualnej.

W celu uzyskania dalszych szczegółów można zapoznać się z postem zatytułowanym The Anatomy of a VMware Virtual Machine.

Figura 12 – Mapowanie plików migawek wyświetlanych w Datastore Browser do wpisów w pliku bazy danych

Jak wspomniano, migawka zachowuje stan dysku i/lub maszyny wirtualnej w określonym momencie przez utworzenie serii dysków delta dla każdego podłączonego dysku wirtualnego lub wirtualnego RDM. Opcjonalnie pamięć i stan zasilania są zachowywane przez utworzenie pliku pamięci.

Każda migawka tworzy dodatkowy plik delta. Podczas wykonywania migawki mechanizm migawki uniemożliwia systemowi operacyjnemu gościa zapisywanie do podstawowego pliku .vmdk, a zamiast tego kieruje wszystkie zapisy do pliku dysku delta. Dysk delta reprezentuje różnicę między bieżącym stanem dysku wirtualnego a stanem, który istniał w momencie wykonania poprzedniego snapshotu. Jeśli istnieje więcej niż jedna migawka, dyski delta mogą reprezentować różnicę między każdą migawką. Pliki dysków delta mogą się szybko powiększać i stać się tak duże jak cały dysk wirtualny, jeśli system operacyjny gościa zapisuje do każdego bloku dysku wirtualnego.

Dalsze szczegóły można znaleźć w następujących łączach:

  • Zrozumienie migawek maszyn wirtualnych w ESXi / ESX
  • Determinowanie, czy istnieją resztki plików delta lub migawek, których VMware vSphere lub Infrastructure Client nie może wykryć

Ograniczenia migawek

Istnieje szereg ograniczeń, o których należy pamiętać. Kilka z nich, na przykład te związane z interakcją migawek z vMotion, należy odpowiednio uwzględnić, jeśli nadal używasz starszych wersji vSphere.

  • Snapshoty maszyn wirtualnych z surowymi dyskami, dyskami trybu fizycznego RDM lub systemami operacyjnymi gości korzystającymi z inicjatora iSCSI w gościu nie są obsługiwane.
  • Maszyny wirtualne z niezależnymi dyskami muszą być wyłączone przed wykonaniem zrzutu.
  • Zrzuty włączonych lub zawieszonych maszyn wirtualnych z niezależnymi dyskami nie są obsługiwane.
  • Zrzuty nie są obsługiwane z urządzeniami we/wy PCI vSphere Direct Path.
  • Zrzuty maszyn wirtualnych skonfigurowanych do współdzielenia magistrali nie są opcją obsługiwaną przez VMware.
  • Ale migawki zapewniają obraz dysku w czasie rzeczywistym, który może być używany przez rozwiązania do tworzenia kopii zapasowych, nie są one przeznaczone do solidnej metody tworzenia kopii zapasowych i odzyskiwania. Jeśli pliki zawierające maszynę wirtualną zostaną utracone, jej pliki migawkowe również zostaną utracone. Ponadto, duża liczba migawek jest trudna do zarządzania, zużywa dużą ilość miejsca na dysku i nie jest chroniona w przypadku awarii sprzętu.
  • Snapshoty mogą negatywnie wpływać na wydajność maszyny wirtualnej. Spadek wydajności zależy od tego, jak długo trwa migawka lub drzewo migawek, jak głębokie jest drzewo oraz jak bardzo maszyna wirtualna i jej system operacyjny gościa zmieniły się od czasu wykonania migawki. Ponadto, może być widoczne opóźnienie w czasie włączania się maszyny wirtualnej. Nie należy uruchamiać produkcyjnych maszyn wirtualnych z migawek na stałe.
  • Jeśli maszyna wirtualna ma wirtualne dyski twarde większe niż 2 TB, zakończenie operacji migawki może trwać znacznie dłużej.

Jeśli masz środowiska sprzed wersji VSphere 6.0, upewnij się, że przeczytałeś artykuł KB Migrowanie maszyn wirtualnych za pomocą migawek. Często spotykałem się z sytuacją, w której host przechodził w tryb konserwacji i czekał na automatyczną migrację maszyn wirtualnych, po czym okazywało się, że proces utknął, ponieważ jedna lub więcej maszyn wirtualnych miała migawki.

Rozwiązywanie problemów

Tutaj znajduje się kilka artykułów KB, które opisują najczęstsze problemy, z jakimi można się zetknąć podczas pracy ze migawkami.

  • Problemy z rozwiązywaniem problemów podczas tworzenia lub usuwania migawek w VMware ESXi/ESX
  • Nie można usunąć migawek maszyny wirtualnej
  • Nie można utworzyć nowych migawek na maszynie wirtualnej po usunięciu dysku z maszyny wirtualnej
  • Zadanie usuwania migawek zatrzymuje się na 99% w ESXi/ESX

.