VMotion FAQ w VMWare vSphere Funkcje, typy, ustawienia

Technologia vMotion umożliwia przeniesienie działającej maszyny wirtualnej VMWare z jednego fizycznego hosta ESXi na inny bez przerywania jego działania i zatrzymywania usług. W tym artykule przyjrzymy się funkcjom technologii VMWare vMotion: jak działa vMotion, jakie są typy vMotion, jak skonfigurować vMotion w VMWare vSphere i jak ręcznie migrować maszynę wirtualną między hostami ESXi lub skarbcami za pomocą vMotion. Spójrzmy na główne sposoby optymalizacji vMotion i rozwiązania problemów..

Treść

  • Jak działa VMWare vMotion?
  • Rodzaje VMware vMotion
  • Funkcje VMware Storage vMotion
  • Zwiększona kompatybilność vMotion (EVC) w VMWare
  • Jak włączyć vMotion w VMWare vSphere?
  • vMotion: jak migrować maszyny wirtualne między serwerami
  • Dlaczego vMotion nie działa?
  • Jak przyspieszyć / zoptymalizować vMotion do szybkiej migracji maszyn wirtualnych?

Jak powiedzieliśmy, vMotion pozwala wykonać „migracja na żywo„Maszyny wirtualne bez przestojów i przerw użytkowników. Technologia VMotion nie jest pozycjonowana jako środek zapewniający wysoką dostępność maszyn wirtualnych w wypadkach. Przede wszystkim jest to prosty i wygodny sposób przenoszenia produktywnych maszyn wirtualnych, gdy trzeba wykonać konserwację / aktualizację / wymianę serwerów fizycznych za pomocą zainstalowanego hiperwizora ESXi lub macierzy dyskowych. Również vMotion jest podstawą technologii dystrybucji (wyrównania) obciążenia na fizycznych serwerach - DRS (Dynamic Resource Scheduler)).

Podobna technologia Microsoft do migracji maszyn wirtualnych między hostami Hyper-V nazywa się migracją Live Hyper-V.

Jak działa VMWare vMotion?

Następujące komponenty VMWare są używane do migracji maszyn wirtualnych między fizycznymi hostami za pomocą vMotion:

  1. Klaster VMware HA;
  2. Dostępność pamięć współdzielona (połączone przez Fibre Channel, iSCSI lub NAS), na których przechowywane są pliki maszyny wirtualnej. Dzięki wspólnej pamięci masowej w sieci SAN kilka fizycznych serwerów ESXi może uzyskać dostęp do plików jednej maszyny wirtualnej;
  3. Często szybka sieć (przynajmniej 1 GB Ethernet) między źródłowym a docelowym hostem ESXi. Podczas migracji maszyna wirtualna zachowuje swój pierwotny adres MAC, a vMotion powiadamia router o zmianie lokalizacji tego adresu MAC. W rezultacie aktywne połączenia sieciowe nie są tracone;
  4. Kompatybilność z procesorem na hostach lub włączona opcja Enhanced vMotion Compatibility (EVC)

Jak dzieje się vMotion? Najpierw tworzony jest cień cienia źródłowej maszyny wirtualnej na hoście docelowym w tej samej konfiguracji z pliku vmx. Ten klon maszyny wirtualnej widzi wszystkie pliki maszyny wirtualnej w magazynie współdzielonym. Zawartość pamięci RAM i stan uruchomionej maszyny wirtualnej są przesyłane przez sieć między hostem źródłowym i docelowym ESXi. vMotion wykonuje migawkę stanu pamięci VM, kopiuje ją na serwer docelowy przez sieć. Jednocześnie vMotion monitoruje zmiany na stronach pamięci, a następnie kopiuje zmodyfikowane segmenty pamięci (może się to zdarzyć w kilku etapach, za każdym razem, gdy kopiowana jest mniejsza ilość danych i krócej).

W pewnym momencie stan źródłowej maszyny wirtualnej jest zawieszany, zmodyfikowane segmenty pamięci i instrukcje procesora są kopiowane, a maszyna wirtualna uruchamia się na docelowym ESXi. Cały proces dla sieci Ethernet 1/10 GB dla średnich maszyn wirtualnych zajmuje kilka sekund.

Rodzaje VMware vMotion

VMWare, zwane vMotion, rozumie cały stos różnych technologii, które umożliwiają przenoszenie działających maszyn wirtualnych w locie między serwerami, macierzami dyskowymi, miastami lub między infrastrukturą naziemną i chmurową.

Rodzaje vMotion:

  • Klasyczny vMotion - migracja działającej maszyny wirtualnej między serwerami ESXi;
  • Storage vMotion - Przesyłanie plików maszyn wirtualnych online między magazynami (macierzami dyskowymi);
  • Shared-Nothing vMotion - Migracja maszyn wirtualnych między serwerami ESXi przez sieć bez korzystania z pamięci współdzielonej (wymaga sieci L2);
  • Long Distance vMotion - Transfer maszyn wirtualnych między zdalnymi lokalizacjami (maksymalne opóźnienie w obie strony do 150 ms, w tym w sieciach L3). Wprowadzono w vSphere 6.0;
  • Szyfrowane vSphere vMotion - możliwość szyfrowania maszyn wirtualnych podczas transmisji przez sieć (dostępne w vSphere 6.5);
  • Migracja na zimno i na gorąco między chmurami - migracja online i offline między infrastrukturą naziemną a chmurową;

Funkcje VMware Storage vMotion

Jak powiedzieliśmy, technologia Przechowywanie vmotion umożliwia przenoszenie plików uruchomionej maszyny wirtualnej (dyski wirtualne i pliki konfiguracyjne) do innej pamięci VMFS / NFS (LUN, macierz dyskowa) bez zatrzymywania maszyny wirtualnej.

Wymagania do pomyślnego uruchomienia Storage VMotion:

  • Dyski maszyn wirtualnych muszą być trwałe lub RDM;
  • Migracja VM nie jest obsługiwana podczas instalacji VMware Tools;
  • Podczas migracji należy wziąć pod uwagę wersję VMFS w magazynie. Na przykład nie można przenieść dysku większego niż 2 TB z VMFS5 na VMFS3;
  • Dostępność licencji na hoście ESXi;
  • Host, na którym działa maszyna wirtualna, musi mieć dostęp do pamięci źródłowej i docelowej;
  • Podczas kopiowania na dysk maszyny wirtualnej wykorzystywana jest technologia śledzenia zmian bloków, która umożliwia śledzenie zmodyfikowanych bloków danych i kopiowanie ich.

Zwiększona kompatybilność vMotion (EVC) w VMWare

Tryb Ulepszona kompatybilność vMotion (EVC) w przypadku klastrów VMware, HA / DRS jest używany, jeśli klaster jest zbudowany na hostach z procesorami różnych generacji (ale nie różnych producentów !!). Po włączeniu EVC dla klastra hiperwizor zaczyna maskować instrukcje procesora, które nie są obsługiwane na wszystkich hostach. Po włączeniu EVC wszystkie funkcje procesorów hosta ESXi w klastrze zaczynają odpowiadać niektórym podstawowym minimalnym zestawom instrukcji procesora, które administrator vSphere określił w ustawieniach.

Dzięki EVC możesz migrować maszyny wirtualne między hostami z różnymi zestawami instrukcji procesora..

Nie można mieszać hostów z różnymi dostawcami procesorów w tym samym klastrze vSphere, na przykład Intel i AMD. EVC pozwala na kompatybilność między procesorami tylko jednego dostawcy.

Możesz włączyć VMWare EVC na poziomie klastra. Przejdź do sekcji Konfiguruj -> Konfiguracja -> VMWare EVC i naciśnij przycisk Edytuj.

Po włączeniu EVC dla klastra należy wybrać tryb EVC (dla AMD lub Intel) i wybrać minimalną generację procesorów dostawców, które są w klastrze z rozwijanej listy.

VMWare zaleca zawsze włączanie EVC, bez względu na hosty w klastrze. Dzięki temu łatwiej będzie ci rozwinąć klaster. Istnieje nawet osobny dokument potwierdzający, że nawet jeśli maszyny wirtualne nie korzystają z całego zestawu instrukcji, nie wpłynie to na wydajność.

VMware vSphere 6.7 wprowadził technologie migracji między chmurą a wersją lokalną (migracja między chmurami na zimno i na gorąco). Aby zaimplementować maszyny wirtualne w chmurze, możesz teraz włączyć maszyny wirtualne w ustawieniach EVC na maszynę wirtualną (dostępne w vSphere 6.7 z wersją sprzętową 14).

Podstawowe poziomy EVC ustawione dla maszyn wirtualnych w klastrze można uzyskać od PowerCLI:

Get-VM | Wybierz Nazwa, Wersja sprzętu,
@ Nazwa = „VM_EVC_Mode”; Wyrażenie = $ _. ExtensionData.Runtime.MinRequiredEVCModeKey,
@ Name = 'Cluster_Name'; Expression = $ _. VMHost.Parent,
@ Name = 'Cluster_EVC_Mode'; Wyrażenie = $ _. VMHost.Parent.EVCMode | ft

Aby uzyskać najbardziej obsługiwany tryb EVC:
Get-VMHost | Wybierz nazwę obiektu, ProcessorType, MaxEVCMode

Jak włączyć vMotion w VMWare vSphere?

Zobaczmy, jak włączyć vMotion na przykładzie VMWare vSphere 6.7. Licencja Essentials Plus jest wystarczająca do korzystania z vMotion .

vMotion włącza się o godzinie VMkernel Wirtualny przełącznik hosta ESXi. Wybierz hosta, przejdź do zakładki Konfiguruj -> Networking -> Adaptery VMkernel.

Wybierz interfejs VMkernel i otwórz jego właściwości (Edytuj).

We właściwościach portu vmk w sekcji Usługa włączona włącz opcję vMotion.

W moim przykładzie HA klaster VMWare został już utworzony i używa vSphere Distributed Switch (VDS).

vMotion: jak migrować maszyny wirtualne między serwerami

Aby użyć vMotion do przeniesienia działającej maszyny wirtualnej między dwoma hostami ESXi, uruchom klienta vSphere, kliknij maszynę wirtualną i wybierz Migrować.

Wybierz typ migracji, której chcesz użyć:

  • Zmień tylko zasób obliczeniowy - Migracja maszyn wirtualnych na inny serwer ESXi;
  • Zmień tylko pamięć - oznacza Storage vMotion - zmiana magazynu danych, w którym przechowywane są pliki VM;
  • Zmień zarówno zasoby obliczeniowe, jak i pamięć - tryb migracji bez pamięci współdzielonej (vMotion bez pamięci współdzielonej / Shared-Nothing), podczas gdy pliki VM są kopiowane między hostami przez sieć).

Wybrałem pierwszą opcję.

Kreator migracji zaoferuje wybór hosta, klastra, puli zasobów lub vApp, do którego chcesz przenieść tę maszynę wirtualną. Wybierz hosta. Jeśli vMotion jest poprawnie skonfigurowany i nie zostaną wykryte żadne konflikty, sekcja Zgodność wskaże: Sprawdzanie zgodności powiodło się.

Jeśli w polu zgodności znajdują się jakieś błędy, należy je uważnie przeczytać i naprawić.

Kliknij Dalej.

Kreator migracji maszyn wirtualnych monituje o wybranie sieci, w której chcesz umieścić vNIC maszyny wirtualnej sieci podczas migracji. Jeśli chcesz, aby maszyna wirtualna była dostępna po migracji, musi być umieszczona w tym samym segmencie (VLAN), co na hoście źródłowym. Jeśli używasz standardowego vSphere Switch, musisz utworzyć tę samą grupę portów na wszystkich hostach ESXi. Podczas korzystania z VDS grupy portów na wszystkich hostach w klastrze są takie same.

Na ostatnim etapie musisz wybrać priorytet zadania migracji vMotion. Domyślnie używany jest najwyższy priorytet (Zaplanuj vMotion z wysokim priorytetem) Zawsze go używam.

Lewy, aby kliknąć Dalej -> Zakończ rozpoczyna się proces migracji maszyny wirtualnej na inny host. Możesz monitorować status migracji w panelu Najnowsze zadania (zadanie Przenieś maszynę wirtualną) W moim przypadku proces migracji maszyny wirtualnej za pomocą vMotion na ponad 10 GB Ethernet trwał około 3 sekund.

Upewnij się, że maszyna wirtualna działa teraz na innym hoście ESXi.

Możesz przenieść działającą maszynę wirtualną na inny host za pomocą polecenia cmdlet Move-VM programu PowerShell z PowerCLI. Na przykład chcemy przenieść wszystkie maszyny wirtualne z hosta esxi-1 do esxi-2:

Get-VMHost esxi-1 | Get-Vm | Move-VM-Destination (Get-VMHost esxi-2)

Dlaczego vMotion nie działa?

Podajemy główne powody, dla których vMotion może się nie powieść lub migracja VM jest bardzo wolna:

  1. Niezgodność procesora (włącz tryb EVC - Enhanced vMotion Compatibility);
  2. VMotion na VMkernel nie jest włączony;
  3. Nieprawidłowe ustawienia sieciowe hosta ESXi lub przełączników wirtualnych, grup portów (niepoprawnie skonfigurowane ramki Jumbo, konflikt adresów IP w sieci vMotion, nieprawidłowe ustawienia vSwitch, słaba sieć, utrata pakietów);
  4. Brak współużytkowanej pamięci (dla vSphere przed wersją 5.) 1. W wersji vSphere 5.1 i nowszych dostępny jest tryb VMotion typu Shared-Nothing;
  5. Niedostępny obraz CD / DVD lub ISO;
  6. Uwzględnienie zasad anty-powinowactwa
  7. Gość VM instaluje narzędzia vMware;
  8. Jeśli system operacyjny gościa aktywnie zmienia zawartość swojej pamięci RAM, proces vMotion może nie mieć czasu na przesłanie zmienionych danych przez sieć do kopii maszyny wirtualnej na innym hoście;
  9. Jeśli host docelowy nie ma wystarczającej ilości procesora lub pamięci, aby utworzyć wirtualną maszynę wirtualną, vMotion zakończy się niepowodzeniem.
Jeśli wystąpią błędy migracji, maszyna wirtualna nie wyłącza się, nie przestaje działać i nadal działa na pierwotnym hoście.

Jak przyspieszyć / zoptymalizować vMotion do szybkiej migracji maszyn wirtualnych?

Możesz przyspieszyć migrację swoich maszyn wirtualnych na kilka sposobów.

  • Przede wszystkim pożądane jest użycie najbardziej produktywnej sieci między hostami ESXi. Musisz użyć sieci co najmniej 10 Gb, a najlepiej 25 Gb (karta sieciowa serwera ESXi i przełącznik fizyczny muszą obsługiwać ten tryb).
  • Używaj różnych fizycznych interfejsów dla ruchu vMotion;
  • Migracja VMotion używa wątków. Jeden wątek jest tworzony dla jednego interfejsu VMkernel, dla którego włączono vMotion. W tym wątku można jednak użyć tylko jednego rdzenia procesora..

Aby zapewnić procesom vMotion więcej niż jeden rdzeń procesora, musisz utworzyć kilka interfejsów VMkernel z włączoną opcją vMotion i powiązać je z jednym interfejsem NIC. Pojedynczy strumień vMotion ma średnią przepustowość około 15 GbE, więc potrzebujesz 6 wątków, aby załadować sieć 100 GbE. Możesz również zwiększyć liczbę strumieni vMotion (strumieni) dla jednego interfejsu vmkernel za pomocą opcji Migrate.VMotionStreamHelpers w Zaawansowanych ustawieniach systemu.