Jak działa tryb EVC w VMware: kompletny przegląd

Jeśli znasz funkcję vMotion, prawdopodobnie pamiętasz, że zalecaną praktyką jest stosowanie tych samych procesorów na wszystkich serwerach ESXi w celu zapewnienia migracji maszyn wirtualnych na żywo. Jeśli chcesz używać w klastrze serwerów z różnymi modelami procesorów, lepiej jest przeprowadzić wdrażanie procesorów tej samej generacji. Ponadto bezwzględnym wymaganiem jest, aby procesory pochodziły od tego samego dostawcy, takiego jak Intel lub AMD. W przeciwnym razie podczas korzystania z vMotion prawdopodobnie pojawi się błąd.

Firma VMware zaprojektowała oprogramowanie vSphere z uwzględnieniem sytuacji, które mogą wystąpić w środowisku produkcyjnym, w tym rozbudowy klastra poprzez dodanie nowych serwerów z różnymi procesorami. Jest to częsta sytuacja — wyobraź sobie, że masz klaster z 5 węzłami ESXi, które kupiłeś 3 lata temu, i musisz dodać dwa kolejne węzły, aby uruchomić więcej maszyn wirtualnych w celu zaspokojenia potrzeb biznesowych. Procesory zakupione 3 lata temu nie są obecnie produkowane i nie są już dostępne na rynku; można kupić tylko procesory z najnowszej rodziny. Nie ma powodu do obaw — można skorzystać z funkcji Klastry o wysokiej dostępności w vSphere, dodać węzły z różnymi procesorami i użyć vMotion do migracji maszyn wirtualnych na żywo między hostami wyposażonymi w różne procesory. Jest to możliwe dzięki funkcji Enhanced vMotion Capability (EVC), którą można włączyć dla klastrów w VMware vSphere.

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.

Zasada działania trybu VMware EVC

Każda nowsza generacja procesorów zawiera nowe zestawy instrukcji, które uzupełniają zestawy dostępne w poprzedniej generacji. Nowe funkcje zazwyczaj poprawiają wydajność lub bezpieczeństwo uruchomionych aplikacji. Na przykład procesory generacji Skylake posiadają jeden nowy zestaw instrukcji (SGX) w porównaniu z procesorami generacji Haswell. Przyjrzyjmy się zestawom instrukcji tych dwóch generacji procesorów i zapoznajmy się z ich szczegółami.

Haswell (2013) instruction sets:

x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, VT-x, VT-d. TSX instrukcje są wyłączone za pomocą mikrokodu w procesorach Haswell z powodu błędu, z wyjątkiem Haswell-EX.

SkyLake (2017) instruction sets:

x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, TSX , SGX, VT-x, VT-d.

Oznacza to, że jeśli w ustawieniach EVC wybierzesz poziom zgodności Haswell, zestaw instrukcji SGX musi zostać wyłączony (a dokładniej zamaskowany) na serwerach z procesorami Skylake, w wyniku czego wszystkie procesory będą pracować z tymi samymi zestawami instrukcji. W ten sposób uzyskasz jednorodne środowisko dostosowane do migracji maszyn wirtualnych za pomocą vMotion. Jednolita kompatybilność vMotion jest zapewniona poprzez egzekwowanie tej samej bazy instrukcji CPUID dla wszystkich maszyn wirtualnych działających na hostach ESXi bez jednolitych procesorów. CPUID można uznać za API dla Procesora.

Z jednej strony zalety zestawu instrukcji SGX są tracone po włączeniu trybu EVC Haswell, ale z drugiej strony wydajność istniejącego klastra nie ulega obniżeniu, jeśli dodasz do niego hosty z nowszymi procesorami. Jeśli dodasz hosty ESXi ze starszymi procesorami do istniejącego klastra, w niektórych przypadkach możesz zauważyć spadek wydajności.

Uwaga: SGX (Software Guard Extensions) pozwala organizować chronione fragmenty kodu i danych (zwane również enklawami) w celu zapewnienia wysokiego poziomu ochrony danych działających aplikacji przed atakami hakerów. Programiści, którzy używają instrukcji SGX w swoich aplikacjach, mogą chronić je przed nieuprawnionym dostępem lub modyfikacją, nawet jeśli aplikacja atakującego ma wyższe uprawnienia.

Uwaga: TSX (Transactional Synchronization Extensions) zapewnia przeniesienie większości zadań związanych z dystrybucją zasobów między rdzeniami Procesora na poziom sprzętowy (sam Procesor). W przypadku braku wsparcia dla instrukcji TSX przez procesor rozkład obciążenia odbywa się na poziomie oprogramowania za pośrednictwem systemu operacyjnego i aplikacji. Jeśli zestaw instrukcji TSX został wyłączony dla procesora Haswell za pomocą mikrokodu, konieczne może być ustawienie starszego poziomu (Ivy Bridge) dla trybu EVC.

Zazwyczaj uruchomione maszyny wirtualne należy wyłączyć i ponownie uruchomić, aby zastosować zmienione ustawienia trybu EVC. Jeśli korzystasz z vCenter 4.1 lub nowszego, maszyny wirtualne działające na hoście ESXi z najstarszym procesorem mogą nie zostać wyłączone (można je pozostawić w stanie uruchomionym). W takim przypadku tryb EVC musi odpowiadać generacji tego najstarszego procesora. Maszyny wirtualne działające na hostach ESXi wyposażonych w procesory z nowszymi funkcjami CPU muszą zostać wyłączone przed włączeniem trybu EVC w całym klaster. Gdy host ESXi zostanie wykluczony z klastra, nadal działa z wyłączonym trybem EVC.

Wersja VMware vSphere / Kompatybilność procesorów z EVC

Wymagany tryb EVC zależy od modeli procesorów i wersji vCenter Server. Tryb EVC w najnowszej wersji vCenter Server obsługuje najnowsze procesory. Rozważ użycie najnowszych wersji vCenter, jeśli posiadasz serwery z procesorami najnowszej generacji. W poniższej tabeli można sprawdzić, które kombinacje generacji procesorów Intel i wersji vCenter są objęte wsparciem dla określenia poziomu bazowego klastra EVC dla danego środowiska.

EVC modes supported in different vCenter Server releases

Najbardziej odpowiedni tryb EVC zależy od modelu najstarszego procesora serwera ESXi w klastrze. Technicznie możliwe jest wybranie starszego (niższego) poziomu trybu EVC niż generacja najstarszego procesora, ale generalnie nie ma powodu, aby dokonywać takich ustawień. Starsze wydania ESXi i vSphere obsługują nowe procesory, ale maksymalna wartość bazowa EVC jest utrzymywana na poziomie starszych procesorów, które działały w momencie wydania danej wersji vSphere i były uważane za najnowsze dostępne w tamtym czasie.

Po zmianie poziomu trybu EVC należy wyłączyć i włączyć uruchomione maszyny wirtualne, aby zastosować ustawienia do tych maszyn; ponowne uruchomienie maszyny wirtualnej nie jest wystarczające.

Przewodnik zgodności VMware

Na stronie internetowej VMware można sprawdzić zgodność procesorów oraz najwyższy możliwy tryb EVC dostępny dla serwera vCenter. Aby sprawdzić zgodność, należy otworzyć stronę Przewodnik po kompatybilności VMware, a następnie wybrać CPU series z menu rozwijanego (tj. (co szukasz), na liście Wydanie produktu wybierz swoją wersję ESXi, na liście Seria procesorów przytrzymaj przycisk Ctrl i wybierz procesory zainstalowane na hostach ESXi (kliknij lewym przyciskiem myszy). Po wybraniu niezbędnych parametrów kliknij przycisk CPU/EVC Matrix , aby wyświetlić tabelę dostępnych trybów EVC dla serwerów ESXi. W przykładzie pokazanym na poniższym zrzucie ekranu wybrano ESXi 6.5 (zarządzany przez vCenter 6.5) oraz procesory Intel Xeon E3-1500-v5, Xeon E5-4600-v3 i Xeon Platinum 8100. Najwyższym poziomem trybu EVC obsługiwanym przez wszystkie wybrane procesory jest Intel Haswell Generation .

Checking the best suitable EVC mode in the VMware Compatibility Guide

Wymagania

Aby vMotion działało poprawnie po włączeniu trybu EVC, muszą być spełnione następujące wymagania:

  • Procesory wszystkich hostów ESXi muszą być wyłącznie procesorami Intel lub AMD.
  • Funkcje wirtualizacji procesora, takie jak Intel VT-x lub AMD-V, muszą być włączone w UEFI/BIOS hostów ESXi.
  • Hosty ESXi muszą być zarządzane przez ten sam serwer vCenter.
  • Hosty ESXi muszą być skonfigurowane do korzystania z vMotion.

Jak włączyć i skonfigurować EVC

Po zapoznaniu się z teorią przejdźmy do praktycznego przeglądu konfiguracji trybu EVC. Konieczne może być wyłączenie maszyny wirtualnej na hoście ESXi, którego poziom EVC ma zostać obniżony. Upewnij się, że w UEFI/BIOS nie są wyłączone żadne funkcje procesora, aby uniknąć ewentualnych problemów.

Otwórz VMware vSphere Web Client w przeglądarce internetowej, wpisując adres IP serwera vCenter Server w pasku adresu przeglądarki. Przejdź do vCenter > Hosts and clusters i wybierz każdy host ESXi, aby sprawdzić konfigurację Procesora (CPU). W obecnym przykładzie rozważamy dwa hosty z systemem ESXi 5.5, które zostały dodane do klastra i są zarządzane przez vCenter Server 5.5. Jak widać na poniższym zrzucie ekranu, model procesora pierwszego hosta ESXi to Intel Xeon E3110 , a procesor zainstalowany na drugim hoście ESXi to Intel Xeon X3430 .

Checking the processor models on ESXi hosts before enabling the EVC mode

Jeśli hosty ESXi zostały już dodane do klastra, wybierz swój klaster ( temp-cluster w naszym przykładzie), kliknij kartę Manage , następnie otwórz kartę Settings , wybierz Configuration > VMware EVC i kliknij przycisk Edit .

How to enable the EVC mode in vCenter

Teraz, przed wybraniem trybu EVC w vCenter, otwórz nową kartę w przeglądarce internetowej i przejdź do Przewodnik po zgodności z VMware , jak pokazano powyżej w tym wpisie na blogu. W obecnym przykładzie powinniśmy wybrać ESXi 5.5 , Intel Xeon 31xx Series oraz Intel Xeon 34xx Series . Po kliknięciu przycisku Procesor/EVC Matrix można zauważyć na zrzucie ekranu, że w ustawieniach trybu EVC należy wybrać opcję Intel Penryn Generation .

Checking the compatibility matrix with VMware Compatibility Guide before enabling the EVC mode

Wróć do karty przeglądarki internetowej z aplikacją vSphere Web Client i otwórz ustawienia trybu EVC dla klastra. Kliknij Enable EVC for Intel Hosts. W menu rozwijanym VMware EVC Mode należy wybrać Intel Penryn Generation . W dolnej części okna w sekcji Validation succeeded Compatibility powinno być widoczne . Teraz można kliknąć OK w celu zapisania ustawień trybu EVC.

Enabling the EVC mode and passing the compatibility validation

Następnie w sekcji VMware EVC wyświetli się informacja, że VMware EVC jest włączony . Kliknij Current CPUID Details , aby rozwinąć sekcję zawierającą szczegóły dotyczące rejestrów i wartości masek.

VMware EVC mode is enabled for the entire cluster in vCenter

Tryb EVC można również włączyć podczas tworzenia nowego klastra; firma VMware promuje tę możliwość jako zalecaną praktykę. Włączenie trybu EVC podczas tworzenia nowego klastra pozwala uniknąć problemów związanych z wyłączaniem i migracją maszyn wirtualnych, które są włączone w klastrze (jak pamiętasz, zazwyczaj maszyna wirtualna musi zostać wyłączona i ponownie uruchomiona, aby zastosować nowe ustawienia EVC).

Maskowanie CPUID

Oprócz globalnego trybu EVC, który jest stosowany do wszystkich maszyn wirtualnych i hostów ESXi w całym klastrze, vCenter Server pozwala ręcznie skonfigurować flagi CPUID dla niestandardowej maszyny wirtualnej. vCenter porównuje ustawienia CPUID dla maszyny wirtualnej z ustawieniami CPUID dostępnymi na docelowym hoście ESXi. Jeśli ustawienia te są takie same, migracja maszyny wirtualnej za pomocą vMotion jest dozwolona. Funkcja maskowania CPUID jest starsza niż funkcja trybu EVC.

Aby skonfigurować maski CPUID dla maszyny wirtualnej, wykonaj następujące czynności:

Wybierz odpowiednią maszynę wirtualną, kliknij ją prawym przyciskiem myszy i wybierz opcję „ Edit Settings”. W otwartym oknie „ ” „Ustawienia” „ ” otwórz zakładkę „ Virtual Hardware > CPU”, wybierz opcję „ CPUID mask” i kliknij przycisk „ Advanced”.

Editing the CPUID flags for a particular VM

W oknie „ ” „CPU Identification Mask” „ ” wybierz odpowiedni ciąg rejestru i kliknij wartość, aby edytować maskę na poziomie bitowym. Naciśnij przycisk Legend , aby wyświetlić znaczenie każdego znaku używanego do ustawień maski.

Editing the CPU Identification Mask in the VM settings

Caution! Nie edytuj masek, dopóki nie zapoznasz się z bazą wiedzy VMware lub instrukcjami pomocy technicznej VMware. Ręczna edycja masek zgodności Procesora może spowodować nieobsługiwaną konfigurację maszyny wirtualnej. Na przykład maszyny wirtualne z systemem Windows mogą ulec awarii z niebieskim ekranem śmierci (BSOD).

Sprawdzanie konfiguracji trybu EVC w PowerCLI

W środowisku VMware PowerCLI można sprawdzić konfigurację trybu EVC dla całego klastra oraz dla poszczególnych maszyn wirtualnych, korzystając z polecenia:

Get-VM | Select Name,HardwareVersion,

@{Name='VM_EVC_Mode';Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},

@{Name='Cluster_Name';Expression={$_.VMHost.Parent}},

@{Name='Cluster_EVC_Mode';Expression={$_.VMHost.Parent.EVCMode}} | ft

Checking the EVC mode configuration by using PowerCLI

Można również sprawdzić maksymalny poziom wsparcia EVC dla wszystkich hostów w klastrze po uruchomieniu polecenia:

Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode

Checking the maximum level of the EVC mode

Tryb EVC dla poszczególnych maszyn wirtualnych

Omówiony powyżej tryb EVC jest opcją na poziomie klastra. VMware vSphere 6.7 zapewnia możliwość ustawienia trybu EVC na poziomie poszczególnych maszyn wirtualnych, co może być przydatne podczas migracji maszyn wirtualnych między różnymi klastrami lub serwerami vCenter i oferuje większą szczegółowość. Tryb EVC na poziomie poszczególnych maszyn wirtualnych jest ustawiany jako atrybut ustawień maszyny wirtualnej i zapewnia większą elastyczność w zarządzaniu maszynami wirtualnymi, które muszą być migrowane za pomocą vMotion. Kompatybilność sprzętowa maszyny wirtualnej musi być w wersji 14 lub wyższej. Konfiguracja trybu EVC dla poszczególnych maszyn wirtualnych jest zapisywana w pliku konfiguracyjnym VMX maszyny wirtualnej jako wiersze zawierające ciąg znaków „ featMask.vm.cpuid ”. Podczas migracji maszyny wirtualnej z skonfigurowanym trybem EVC dla poszczególnych maszyn wirtualnych jej konfiguracja EVC zapisana w pliku VMX jest migrowana wraz z maszyną wirtualną. Ustawienia trybu EVC dla poszczególnych maszyn wirtualnych można zmienić po wyłączeniu maszyny wirtualnej (należy wyłączyć i włączyć maszynę wirtualną, aby zastosować zmienione ustawienia trybu EVC dla poszczególnych maszyn wirtualnych).

Jeśli włączysz tryb EVC dla poszczególnych maszyn wirtualnych dla maszyny wirtualnej znajdującej się w klastrze, w którym skonfigurowano już globalny tryb EVC, tryb EVC dla poszczególnych maszyn wirtualnych może być równy lub niższy od trybu EVC ustawionego w całym klastrze. W ten sposób można jednocześnie skonfigurować zarówno globalny, jak i tryb EVC dla poszczególnych maszyn wirtualnych. Po sklonowaniu maszyny wirtualnej ustawienia EVC dla poszczególnych maszyn wirtualnych są klonowane wraz z maszyną wirtualną.

Aby skonfigurować tryb EVC dla poszczególnych maszyn wirtualnych, otwórz klienta VMware vSphere HTML5, przejdź do Hosts and Clusters , a następnie wybierz odpowiednią maszynę wirtualną. Otwórz kartę Configure , wybierz More > VMware EVC i kliknij Edit.

Configuring the per VM EVC mode in the VM settings

Jak włączyć tryb EVC w klastrze bez przestoju

W niektórych przypadkach można włączyć tryb EVC w całym klastrze bez przestoju maszyn wirtualnych (zazwyczaj maszyny wirtualne muszą zostać wyłączone i ponownie uruchomione, aby zastosować ustawienia trybu EVC klastra). Jest to możliwe, jeśli spełnione są następujące wymagania:

  • Działające maszyny wirtualne znajdują się na hoście ESXi z najstarszym procesorem
  • Tryb EVC w klastrze jest skonfigurowany tak, aby korzystał z zestawów instrukcji Procesora odpowiadających generacji najstarszego Procesora

Włączanie trybu EVC dla maszyny wirtualnej vCenter

Może wystąpić następująca sytuacja, która jest powszechna w środowiskach VMware vSphere: vCenter Server is running as a VM on an ESXi host that must be added to a cluster for which the EVC mode is enabled.

Problem polega na tym, że host ESXi z uruchomionymi maszynami wirtualnymi (w tym maszyną wirtualną z vCenter) nie może zostać dodany do klastra po włączeniu EVC, dopóki wszystkie maszyny wirtualne nie zostaną wyłączone. Z drugiej strony maszyna wirtualna z vCenter jest niezbędna do zarządzania klastrem i nie możemy jej wyłączyć, ponieważ jest obecnie w użyciu. Problem ten jest szczególnie dotkliwy, gdy maszyna wirtualna z vCenter działa na hoście ESXi wyposażonym w nowszy procesor.

Uwaga: W tym przypadku zaleca się użycie standardowego vSwitch (a nie rozproszonego vSwitch) do podłączenia maszyny wirtualnej z vCenter do sieci.

A possible solution. Rozważ algorytm, który może pomóc w rozwiązaniu problemu w VMware vSphere 5.5:

  1. Przenieś inny serwer ESXi (na którym nie działa maszyna wirtualna vCenter) do klastra, jeśli w klastrze nie ma jeszcze żadnych serwerów ESXi. Maszyny wirtualne na serwerze ESXi, który jest przenoszony do klastra, muszą być wyłączone.
  2. Wyłącz maszynę wirtualną z uruchomionym vCenter Server. Połącz się z hostem ESXi, na którym znajduje się maszyna wirtualna vCenter, za pomocą VMware Host Client, aby wyrejestrować maszynę wirtualną, lub połącz się za pomocą klienta SSH, aby skopiować pliki. W VMware Host Client kliknij prawym przyciskiem myszy maszynę wirtualną vCenter i wybierz Unregister . Ręcznie skopiuj wszystkie pliki maszyny wirtualnej vCenter do magazynu danych podłączonego do serwera ESXi, który został już przeniesiony do klastra w kroku 1. Jeśli oba hosty ESXi korzystają z NFS lub iSCSI pamięć masowa , nie ma potrzeby kopiowania plików maszyny wirtualnej do innej lokalizacji.

Uwaga: Przed przeniesieniem maszyny wirtualnej z jednego hosta ESXi na drugi może być konieczne ręczne ustawienie adresu MAC wirtualnej karty sieciowej maszyny wirtualnej z uruchomionym vCenter Server.

  1. Zarejestruj maszynę wirtualną vCenter na hoście ESXi, który został przeniesiony do klastra (połącz się z hostem ESXi za pomocą VMware Host Client, otwórz magazyn danych, zlokalizuj pliki maszyny wirtualnej vCenter, wybierz plik VMX, kliknij prawym przyciskiem myszy na plik i wybierz Zarejestruj maszynę wirtualną ). Uruchom maszynę wirtualną vCenter na tym hoście ESXi w klastrze. Zaloguj się do vCenter za pomocą VMware vSphere Client, aby upewnić się, że możesz zarządzać środowiskiem vSphere za pomocą vCenter. Konieczne może być tymczasowe wyłączenie kontroli dostępu.
  2. Przenieś źródłowy host ESXi, na którym pierwotnie działała maszyna wirtualna vCenter, do klastra. W razie potrzeby przed przeniesieniem hosta wyłącz inne maszyny wirtualne na tym hoście ESXi.

Wnioski

Funkcja Enhanced vMotion Capability (EVC) to przydatna funkcja VMware vSphere, która zapewnia skalowalność klastra i umożliwia dodawanie do niego węzłów z procesorami różnych generacji w celu przeprowadzania migracji maszyn wirtualnych na żywo między hostami ESXi za pomocą vMotion. Tryb EVC maskuje funkcje procesorów nowej generacji, tworząc ujednoliconą podstawę odpowiadającą funkcjom najstarszej generacji procesorów używanych przez hosty ESXi w klastrze. W rezultacie uzyskuje się jednorodne środowisko, w którym wszystkie procesory korzystają z tych samych zestawów instrukcji, a uruchomione maszyny wirtualne mogą być migrowane za pomocą vMotion. Duża liczba klientów VMware korzystających z klastrów stosuje tryb EVC. Zaleca się włączenie trybu EVC na etapie tworzenia klastra, aby uniknąć ewentualnych problemów związanych z dodawaniem hostów ESXi i migracją uruchomionych maszyn wirtualnych, w tym maszyny wirtualnej z uruchomionym vCenter Server.

Niezależnie od tego, czy korzystasz z klastra, czy nie, nie zapomnij o wykonaniu kopii zapasowej maszyn wirtualnych VMware. NAKIVO Backup & Replication to szybkie, niezawodne i niedrogie rozwiązanie do ochrony danych, które może chronić Twoje maszyny wirtualne VMware, nawet jeśli są one migrowane między hostami ESXi w klastrach.

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.

People also read