Kroki do wdrożenia Hyper-V VMs na VMware ESXi Server
Istnieje wiele wspaniałych rzeczy, które można zrobić na szczycie dzisiejszych nowoczesnych systemów hypervisor, które zapewniają świetny sposób na rozwiązanie problemów biznesowych i wyzwań technicznych. Jedną z naprawdę fajnych rzeczy, które można zrobić z dzisiejszymi hypervisorami, takimi jak VMware vSphere, jest możliwość skonfigurowania wirtualizacji zagnieżdżonej. Otwiera to wiele różnych możliwości testowania i uruchamiania hypervisorów wewnątrz VMware vSphere.
Powszechnym przypadkiem użycia, który wielu znalazło dla wirtualizacji zagnieżdżonej wewnątrz VMware vSphere jest uruchomienie hypervisora Hyper-V Microsoftu dla celów testowych i edukacyjnych.
W tym poście przyjrzymy się konfiguracji zagnieżdżonych maszyn wirtualnych Hyper-V na serwerze VMware ESXi i zobaczymy, jak można to skonfigurować do użytku w laboratorium lub innym środowisku.
Co to jest zagnieżdżona wirtualizacja
Przed zagłębieniem się w to, jak skonfigurować VMware vSphere, aby umożliwić zagnieżdżoną wirtualizację Hyper-V wewnątrz serwera ESXi, spójrzmy na to, czym dokładnie jest zagnieżdżona wirtualizacja. Kiedy myślimy o zagnieżdżonej wirtualizacji, mówimy o uruchomieniu hypervisora wewnątrz hypervisora. Oznacza to, że można uruchomić hiperwizory typu 1, takie jak VMware vSphere ESXi i Hyper-V wewnątrz maszyny wirtualnej na wierzchu, w tym przypadku, VMware vSphere ESXi.
Hiperwizor działający w maszynie wirtualnej na serwerze VMware vSphere ESXi po prostu postrzega sprzęt maszyny wirtualnej jako fizyczny sprzęt hosta, na którym może uruchamiać maszyny wirtualne gości. To pozwala na kilka bardzo ciekawych scenariuszy, gdy używasz środowiska VMware vSphere do hostowania innych hypervisorów, takich jak Microsoft Hyper-V.
Ważnym punktem do zrobienia w odniesieniu do VMware vSphere jest zagnieżdżona wirtualizacja innych hypervisorów, takich jak Hyper-V wewnątrz VM vSphere nie jest obsługiwanym scenariuszem. Nie chodzi tylko o inne hypervisory poza VMware vSphere. Nawet zagnieżdżony ESXi wewnątrz fizycznego środowiska hosta ESXi nie jest wspierany. Zostało to oficjalnie odnotowane przez VMware w artykule KB Support for running ESXi/ESX as a nested virtualization solution (2009916).
Następujące konfiguracje są technicznie możliwe podczas uruchamiania VMware ESXi wewnątrz innych produktów VMware hypervisor, ale nie są wspierane. Dotyczy to następujących sytuacji.
- VMware ESXi/ESX działający w VMware Workstation lub VMware Fusion
- VMware ESXi/ESX działający w VMware ESXi/ESX
- VMware ESXi/ESX działający w innych rozwiązaniach hypervisorowych firm trzecich
Oczywiście, uruchomienie Hyper-V podlega temu samemu zastrzeżeniu. Jest tylko jedna sytuacja, w której wirtualizacja zagnieżdżona jest obsługiwana, a mianowicie zagnieżdżone urządzenie vSAN Witness.
Oprócz tego obsługiwanego przypadku użycia z urządzeniem vSAN Witness Appliance, wirtualizacja zagnieżdżona nie jest obsługiwana dla środowiska produkcyjnego. Innymi słowy, jeśli napotkasz problemy podczas korzystania z wirtualizacji zagnieżdżonej, jesteś zdany na siebie w zakresie pomocy technicznej.
Dopóki rozumiesz scenariusz wsparcia z zagnieżdżoną wirtualizacją, jest to świetna funkcja, którą można wykorzystać do innych celów. Może być używany bardzo skutecznie dla środowisk laboratoryjnych, dev, testowych i innych podobnych typów scenariuszy.
Why Run Hyper-V Inside of VMware
Dlaczego chcesz uruchomić hypervisor wewnątrz innego hypervisora? A dokładniej, dlaczego chciałbyś uruchomić Hyper-V wewnątrz maszyny wirtualnej VMware ESXi? Jak już wspomniano, nie jest to wspierana konfiguracja do użytku produkcyjnego. Uruchomienie Hyper-V wewnątrz VMware daje wiele wspaniałych korzyści. Przyjrzyjmy się następującym rozwiązaniom:
- Środowiska laboratoryjne
- Nie jest wymagany dodatkowy sprzęt ani urządzenia sieciowe
- Łatwe dostarczanie i usuwanie hostów Hyper-V
Środowiska laboratoryjne
Jest to prawdopodobnie najczęstszy przypadek użycia hosta Hyper-V wewnątrz maszyny wirtualnej VMware. Wirtualizacja zagnieżdżona pozwala na dostarczanie środowisk laboratoryjnych, testowych i innych możliwych przypadków użycia w bardzo prosty sposób. Laboratoria Hyper-V mogą być używane do:
- Uczenia się
- Testowania oprogramowania
- POC’ing Hyper-V dla różnych części infrastruktury lub jako zamiennik
- Naśladowania środowiska Hyper-V w innej części infrastruktury
- Testowania poprawek
W wielu małych i średnich środowiskach może być dostępna tylko dostępność środowiska VMware vSphere i brak hostów Hyper-V. Jeśli administratorzy chcą dostać w swoje ręce hosta Hyper-V, aby uczyć się i rozwijać swoje umiejętności poza hypervisorem VMware ESXi, możliwości wirtualizacji zagnieżdżonej znalezione w VMware vSphere zapewniają doskonały sposób na dostarczenie hosta Hyper-V wewnątrz środowiska VMware vSphere.
No Additional Hardware or Network Gear is Needed
Z tą możliwością zagnieżdżenia Hyper-V wewnątrz VMware vSphere, nie ma potrzeby szukania dodatkowego sprzętu dla środowiska laboratoryjnego lub POC. To wszystko może być dostarczone wewnątrz vSphere. Rozbudowane możliwości wirtualnych sieci, które można znaleźć wewnątrz vSphere, pozwalają również na dostarczanie wszystkich wyspecjalizowanych sieci, których będziesz potrzebował, jeśli zdecydujesz się na dostarczenie klastra Hyper-V. Może to obejmować sieci Live Migration, Storage oraz Cluster, by wymienić tylko kilka z nich. Używając wirtualnych grup portów przełączników, możesz łatwo symulować konfiguracje, które w przeciwnym razie byłyby osiągane za pomocą fizycznego sprzętu sieciowego.
Easily Provision and Tear Down Hyper-V Hosts
Ta zaleta nie jest specyficzna dla wirtualizacji zagnieżdżonej, ale raczej dla wirtualizacji VMware vSphere w ogóle. VMware posiada bardzo bogaty zestaw narzędzi do automatyzacji, w tym PowerCLI. Pozwala to na łatwe uruchamianie i niszczenie maszyn wirtualnych w zależności od potrzeb. Całe konstrukcje laboratoryjne mogą być zautomatyzowane w zakresie provisioningu i deprovisioningu. To sprawia, że wirtualizacja zagnieżdżona staje się jeszcze bardziej użyteczna dzięki łatwym możliwościom automatyzacji infrastruktury.
Wymagania dla zagnieżdżonych maszyn wirtualnych Hyper-V na serwerze VMware ESXi
Gdy już zdecydujesz się na wykorzystanie wirtualizacji zagnieżdżonej, czy możesz po prostu stworzyć nową maszynę wirtualną w vSphere ESXi i zacząć ładować swoją maszynę Hyper-V? Cóż, nie do końca, jednak proces ten jest nadal bardzo prosty w użyciu, gdy pomyślimy o ogromnej złożoności wymaganej pod „maską”, aby wirtualizacja zagnieżdżona faktycznie działała. Istnieją tak naprawdę dwa główne obszary, które należy wziąć pod uwagę przy wymaganiach do uruchomienia zagnieżdżonych maszyn wirtualnych Hyper-V na serwerze VMware ESXi. Obejmują one:
- Eksponowanie sprzętowo wspomaganej wirtualizacji do guest OS
- Enabling MAC address forged transmits
Przyjrzyjrzyjmy się każdemu z nich i ich znaczeniu dla działania zagnieżdżonych maszyn wirtualnych Hyper-V na serwerze VMware ESXi.
Exposing Hardware-Assisted Virtualization to the Guest OS
Ten pierwszy wymóg jest absolutnie wymagany. Jest to ustawienie znajdujące się pod ustawieniami dla poszczególnych maszyn wirtualnych, których używasz do instalacji Hyper-V. Edit Settings on your nested Hyper-V VM, expand CPU and place a checkbox next to the Expose hardware-assisted virtualization to the guest OS.
Co się stanie, jeśli nie włączysz tej flagi dla wirtualizacji wspomaganej sprzętowo w VMware dla maszyny wirtualnej Hyper-V? Nie zobaczysz żadnego błędu po prostu instalując system operacyjny Windows Server, ponieważ będzie to działać jak instalacja każdej innej maszyny wirtualnej. Jednakże, gdy dojdziesz do punktu instalacji roli Hyper-V, zobaczysz błąd, jeśli to ustawienie nie jest włączone dla maszyny wirtualnej. Zwróć uwagę na poniższy błąd: „Hyper-V nie może być zainstalowany: Procesor nie ma wymaganych możliwości wirtualizacji”.
As a side note, this flag needs to be set for either Hyper-V Core installations or with the Hyper-V role installed in Windows Server with the Desktop Experience installed. Ta możliwość jest wymagana w każdej zagnieżdżonej instalacji roli Hyper-V wewnątrz VMware vSphere.
Można również ustawić tę flagę za pomocą kodu PowerCLI, który pozwala łatwo ustawić flagę na określonej maszynie wirtualnej.
$vmName = 'MyHyperVVM’
$vm = Get-VM -Name $vmName
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.nestedHVEnabled = $true
$vm.ExtensionData.ReconfigVM($spec)
Enabling Promiscuous Mode and MAC Address Forged Transmits
Najprawdopodobniej, jeśli konfigurujesz zagnieżdżoną instalację Hyper-V wewnątrz VMware vSphere, będziesz chciał mieć możliwość nie tylko zainstalowania serwera z rolą Hyper-V, ale także uruchomienia zagnieżdżonej maszyny wirtualnej Hyper-V na szczycie zagnieżdżonego serwera Hyper-V, który uruchamiasz.
Możesz nie dbać o możliwość połączenia sieciowego z maszyną wirtualną Hyper-V, jednak możesz chcieć mieć możliwość ustanowienia rzeczywistego połączenia sieciowego z zagnieżdżoną maszyną wirtualną działającą na wierzchu zagnieżdżonego hosta Hyper-V w maszynie wirtualnej VMware.
Jeśli chcesz mieć taką funkcjonalność, istnieje kilka ustawień konfiguracji sieci, które mogą być potrzebne w przełączniku VMware vSwitch, do którego zagnieżdżony host Hyper-V jest podłączony.
Można tego wymagać, ponieważ istnieje nowy postęp w technologii VMware vSwitch i zagnieżdżonej wirtualizacji od wydania VMware vSphere 6.7. Przed wydaniem VMware vSphere ESXi 6.7, VMware nie implementowało uczenia MAC na vSwitchu, tak jak ma to miejsce w prawdziwym fizycznym przełączniku. Dotyczyło to zarówno vSphere Standard Switch jak i vSphere Distributed Switch.
Ponieważ tak jest w przypadku VMware vSwitch przed vSphere 6.7, kiedy wirtualny przełącznik otrzymuje pakiety, które nie mają adresu MAC pasującego do adresu MAC pNIC zagnieżdżonego hosta vmnic (w przypadku zagnieżdżonego hosta ESXi), pakiety zostaną odrzucone.
Aby obejść to ograniczenie, należy włączyć dwa ustawienia na vSwitchu, tryb promiscuous i forged transmits.
Co z vSphere 6.7 i nowszymi? Przed wydaniem vSphere ESX 6.7, VMware rozpoczęło prace w obszarze wirtualizacji zagnieżdżonej oraz funkcjonalności MAC learning w odniesieniu do wirtualnych przełączników. Wydany został „MAC Learning Fling”, który wprowadził funkcjonalność MAC learning, dzięki czemu nie trzeba było włączać trybu promiscuous i fałszować ustawień transmisji.
To ustawienie zostało wdrożone wraz z wydaniem VMware vSphere 6.7 ESXi.
Jakie są wymagania dotyczące nowej funkcji MAC Learning w ESXi 6.7?
Jest kilka wymagań, które musisz spełnić, zanim będziesz mógł skorzystać z nowej funkcji MAC Learning w vSphere 6.7. Są one następujące:
- Upgrade vCenter Server i serwerów ESXi do wersji vSphere 6.7
- Uruchomienie vSphere Distributed Switch (vDS)
- Upgrade vDS do najnowszej wersji (6.6)
- Managed per vSphere Distributed Switch Port Group basis
- Currently managed with the vSphere API
Jedna rzecz do zauważenia, nowa funkcjonalność MAC Learning z vSphere 6.7 i vDS 6.6 vSwitch nie jest domyślnie włączona. Będziesz musiał odpowiednio ustawić flagi za pomocą API.
Aby znacznie ułatwić ten proces, William Lam, Staff Solution Architecture napisał kilka funkcji PowerCLI, które sprawiają, że sprawdzanie stanu MAC Learning i ustawianie MAC Learning w środowisku vSphere jest niezwykle proste. Pobierz skrypt PowerCLI Williama z jego repozytorium Github tutaj:
https://github.com/lamw/vghetto-scripts/blob/master/powershell/MacLearn.ps1
Przykładowe dane wyjściowe funkcji Get-MacLearn sprawdzającej grupę portów vSphere Distributed Switch wyglądają jak poniżej. Zwróć uwagę na pola:
- MacLearning
- NewAllowPrimiscuous
- NewForged Transmits
- NewMacChanges
- Limit
- LimitPolicy
Tak będzie wyglądać grupa portów vDS 6.7 vSwitch z domyślnymi ustawieniami.
Dla zagnieżdżonych instalacji ESXi, a przez rozszerzenie, Hyper-V VMs działających wewnątrz hypervisora vSphere ESXi, chcesz ustawić ustawienia na następujące:
- MAC Learning: true
- Promiscuous mode: False
- Forged Transmit: True
- MAC Changes: False
- Limit: 4096 (możesz to ustawić lub pozostawić wartość domyślną)
- Limit Policy: Drop (można to ustawić lub pozostawić wartość domyślną)
Powyższe zalecenia można ustawić za pomocą następującego kodu PowerCLI:
- Set-MacLearn -DVPortgroupName @(„DPG-Servers”) -EnableMacLearn $true -EnablePromiscuous $false -EnableForgedTransmit $true -EnableMacChange $false
Jak się teraz spodziewamy, jak zauważyliście powyżej, ustawienie trybu Promiscuous jest skonfigurowane na False. Nawet z włączonym MAC Learning, Forged Transmit jest nadal ustawiony na True.
Funkcjonalność MAC Learning zawarta w vSphere 6.7 pozwala uniknąć niektórych implikacji bezpieczeństwa związanych z uruchomieniem zagnieżdżonej maszyny wirtualnej wewnątrz środowiska vSphere 6.7 poprzez uniknięcie konieczności włączenia trybu promiscuous.
Czy można wykonać kopię zapasową zagnieżdżonych środowisk?
Mimo, że wirtualizacja zagnieżdżona jest obsługiwana tylko przez VMware vSphere dla vSAN Witness appliance, jeśli uruchamiasz zagnieżdżone maszyny wirtualne Hyper-V wewnątrz VMware vSphere ESXi, możesz chcieć wykonać kopię zapasową zagnieżdżonego środowiska. Czy można to zrobić?
Tak, absolutnie.
Użycie nowoczesnego rozwiązania do tworzenia kopii zapasowych, takiego jak Vembu BDR Suite, umożliwia tworzenie kopii zapasowych nie tylko produkcyjnego środowiska VMware vSphere lub Microsoft Hyper-V, ale także wszelkich zagnieżdżonych instalacji ESXi lub Hyper-V, które mogą znajdować się w tym środowisku.
Podsumowanie
Zagnieżdżone maszyny wirtualne Hyper-V na serwerze VMware ESXi dają możliwość zabawy z Hyper-V, nawet jeśli posiadasz tylko środowisko VMware vSphere. Jak widać, istnieje wiele wspaniałych przypadków użycia zagnieżdżonej wirtualizacji. Obejmuje to naukę, testowanie oprogramowania, POC’ing i łatanie hostów Hyper-V.
Tak potężna jak wirtualizacja zagnieżdżona w VMware vSphere, można by się spodziewać, że proces jej uruchomienia będzie niezwykle trudny. Jednak wymaga to tylko kilku uwag podczas tworzenia maszyny wirtualnej VMware vSphere, która będzie zawierać instalację Hyper-V. Obejmuje to eksponowanie flagi wirtualizacji wspomaganej sprzętowo na wirtualnym CPU maszyny wirtualnej Hyper-V, a także implementację trybu promiscuous lub MAC Learning dla podłączenia wszelkich zagnieżdżonych maszyn wirtualnych Hyper-V do sieci.
Podsumowując, zagnieżdżone maszyny wirtualne Hyper-V na serwerze VMware ESXi to niezwykle potężna możliwość, która pozwala na przetestowanie i poznanie Hyper-V bez fizycznego sprzętu do uruchamiania hypervisora Hyper-V.
Śledź nasze kanały na Twitterze i Facebooku, aby uzyskać informacje o nowych wydaniach, aktualizacjach, wnikliwych postach i nie tylko.