Articles

Stappen voor het implementeren van Hyper-V-VM’s op een VMware ESXi-server

Er zijn veel geweldige dingen die u kunt doen met de moderne hypervisorsystemen van tegenwoordig, die een geweldige manier bieden om bedrijfsproblemen en technische uitdagingen op te lossen. Een van de echt leuke dingen die u kunt doen met de huidige hypervisors, zoals VMware vSphere, is dat u geneste virtualisatie kunt configureren. Dit biedt veel verschillende mogelijkheden voor het testen en uitvoeren van hypervisors binnen VMware vSphere.

Een veel voorkomende toepassing die velen hebben gevonden voor het uitvoeren van geneste virtualisatie binnen VMware vSphere is het uitvoeren van Microsofts Hyper-V-hypervisor voor test- en leerdoeleinden.

In dit bericht bekijken we de configuratie van geneste Hyper-V-V-VM’s op een VMware ESXi-server en zien we hoe dit kan worden geconfigureerd voor gebruik in een lab- of andere omgeving.

Wat is geneste virtualisatie

Voordat we ingaan op hoe VMware vSphere kan worden geconfigureerd om geneste virtualisatie van Hyper-V binnen een ESXi-server mogelijk te maken, kijken we eerst naar wat geneste virtualisatie precies is. Wanneer we het hebben over geneste virtualisatie, hebben we het over het uitvoeren van een hypervisor binnen een hypervisor. Dit betekent dat je Type 1 hypervisors zoals VMware vSphere ESXi en Hyper-V kunt draaien binnen een VM bovenop, in dit geval, VMware vSphere ESXi.

De hypervisor die in de VM bovenop de VMware vSphere ESXi server draait, ziet de VM-hardware gewoon als zijn fysieke host-hardware waarop hij virtuele gastmachines kan draaien. Dit maakt enkele zeer interessante scenario’s mogelijk wanneer u uw VMware vSphere-omgeving gebruikt om andere hypervisors te hosten, zoals Microsoft Hyper-V.

Een belangrijk punt met betrekking tot VMware vSphere is dat geneste virtualisatie van andere hypervisors zoals Hyper-V binnen een vSphere VM geen ondersteund scenario is. Het gaat niet alleen om andere hypervisors buiten VMware vSphere. Zelfs het uitvoeren van ESXi genest binnen een fysieke ESXi hostomgeving wordt niet ondersteund. Dit is officieel door VMware vermeld in het KB-artikel Support for running ESXi/ESX as a nested virtualization solution (2009916).

De volgende configuraties zijn technisch mogelijk wanneer VMware ESXi wordt uitgevoerd binnen andere VMware-hypervisorproducten, maar worden niet ondersteund. Dit omvat het volgende.

  • VMware ESXi/ESX uitgevoerd in VMware Workstation of VMware Fusion
  • VMware ESXi/ESX uitgevoerd in VMware ESXi/ESX
  • VMware ESXi/ESX uitgevoerd in andere hypervisoroplossingen van derden

Het uitvoeren van Hyper-V valt uiteraard onder ditzelfde type ondersteuningsdisclaimer. Er is slechts één situatie waarin geneste virtualisatie wordt ondersteund en dat is de geneste vSAN Witness Appliance.

Buiten dit ondersteunde gebruik met de vSAN Witness Appliance, wordt geneste virtualisatie niet ondersteund voor de productieomgeving. Met andere woorden, als u problemen ondervindt bij het gebruik van geneste virtualisatie, staat u er alleen voor met ondersteuning.

Zolang u het ondersteuningsscenario met geneste virtualisatie begrijpt, is het een geweldige functie om voor andere doeleinden te gebruiken. Het kan zeer effectief worden gebruikt voor labomgevingen, dev, test en andere soortgelijke scenario’s.

Waarom Hyper-V binnen VMware

Waarom zou je een hypervisor binnen een andere hypervisor willen draaien? Meer specifiek, waarom zou u Hyper-V willen uitvoeren binnen een VMware ESXi VM? Zoals gezegd, is dit geen ondersteunde configuratie voor productiegebruik. Hyper-V uitvoeren binnen VMware biedt veel grote voordelen. Laten we eens kijken naar het volgende:

  • Lab-omgevingen
  • Geen extra hardware of netwerkapparatuur nodig
  • Eenvoudige provisioning en afbraak van Hyper-V-hosts

Lab-omgevingen

Dit is waarschijnlijk de meest voorkomende use case voor het provisionen van een Hyper-V-host binnen een virtuele VMware-machine. Geneste virtualisatie maakt het mogelijk om heel gemakkelijk labomgevingen, dev, test en andere mogelijke use cases te provisionen. Hyper-V-labomgevingen kunnen worden gebruikt voor:

  • Leren
  • Software testen
  • POC’ing Hyper-V voor verschillende delen van uw infrastructuur of als vervanging
  • Een Hyper-V-omgeving nabootsen in een ander deel van uw infrastructuur
  • Patch testing

In veel kleine tot middelgrote omgevingen is er mogelijk alleen de beschikbaarheid van een VMware vSphere-omgeving en geen Hyper-V-hosts. Als beheerders een Hyper-V-host in handen willen krijgen om hun vaardigheden te leren en te ontwikkelen buiten de VMware ESXi-hypervisor om, bieden de geneste virtualisatiemogelijkheden van VMware vSphere de perfecte manier om een Hyper-V-host te provisionen binnen een VMware vSphere-omgeving.

Er is geen extra hardware of netwerkapparatuur nodig

Met deze mogelijkheid om Hyper-V binnen VMware vSphere te nesten, is het niet nodig om extra hardware te vinden voor een labomgeving of een soort POC. Dit kan allemaal binnen vSphere worden gerealiseerd. De robuuste virtuele netwerkmogelijkheden van vSphere maken ook provisioning mogelijk van alle gespecialiseerde netwerken die u nodig hebt als u besluit een Hyper-V-cluster te provisionen. Dit kunnen Live Migratie, Storage en Cluster netwerken zijn om er maar een paar te noemen. Door gebruik te maken van virtuele switch poort groepen, kunnen eenvoudig configuraties worden gesimuleerd die anders met fysieke netwerk apparatuur zouden worden gerealiseerd.

Eenvoudig Hyper-V-hosts aanmaken en afbreken

Dit voordeel is niet specifiek voor geneste virtualisatie, maar eerder voor VMware vSphere-virtualisatie in het algemeen. VMware heeft zeer uitgebreide automatiseringstoolsets, waaronder PowerCLI. Hierdoor kunnen VM’s gemakkelijk worden opgestart en vernietigd wanneer dat nodig is. Hele labconstructies kunnen worden geautomatiseerd voor provisioning en deprovisioning. Dit maakt geneste virtualisatie nog nuttiger dankzij de eenvoudige mogelijkheden om uw infrastructuur te automatiseren.

Eisen voor geneste Hyper-V-VM’s op een VMware ESXi-server

Als u eenmaal hebt besloten om gebruik te maken van geneste virtualisatie, kunt u dan gewoon een nieuwe VM maken in vSphere ESXi en uw Hyper-V-V-VM gaan laden? Nou, niet precies, het proces is echter nog steeds zeer eenvoudig te gebruiken als je denkt aan de enorme complexiteit die nodig is onder de “motorkap” zodat geneste virtualisatie daadwerkelijk werkt. Er zijn eigenlijk twee hoofdgebieden waar je rekening mee moet houden bij de vereisten voor het draaien van geneste Hyper-V VM’s op een VMware ESXi Server. Dit omvat:

  • Hardware-ondersteunde virtualisatie blootstellen aan het gast-OS
  • MAC-adres vervalste overdrachten inschakelen

Laten we eens kijken naar elk van deze en hun belang voor het draaien van geneste Hyper-V VM’s op een VMware ESXi Server.

Exposing Hardware-Assisted Virtualization to the Guest OS

De eerste vereiste zal absoluut noodzakelijk zijn. Het is een instelling onder de instellingen voor de individuele VM die u gebruikt om uw Hyper-V installatie te huisvesten. Bewerk Instellingen op uw geneste Hyper-V VM, vouw CPU uit en plaats een selectievakje naast de optie Hardwareondersteunde virtualisatie aan het gastbesturingssysteem blootstellen.

Enabling hardware assisted virtualization in VMware for a Hyper-V VM

Hardwareondersteunde virtualisatie in VMware inschakelen voor een Hyper-V VM

Wat gebeurt er als u deze vlag voor hardwareondersteunde virtualisatie in VMware niet inschakelt voor uw Hyper-V VM? U zult geen foutmelding krijgen bij het installeren van uw Windows Server-besturingssysteem, omdat dit net zo werkt als het installeren van elke andere VM. Wanneer u echter de Hyper-V-rol gaat installeren, krijgt u een foutmelding als deze instelling niet is ingeschakeld voor de virtuele machine. Let op de onderstaande foutmelding: “Hyper-V cannot be installed: De processor beschikt niet over de vereiste virtualisatiecapaciteiten”.

Als een kanttekening, deze vlag moet worden ingesteld voor ofwel Hyper-V Core installaties of met de Hyper-V rol geïnstalleerd in Windows Server met de Desktop Experience geïnstalleerd. Deze mogelijkheid is vereist bij elke geneste installatie van de Hyper-V-rol binnen VMware vSphere.

Error installing the Hyper-V role when hardware virtualization flag is not set on the VMware VM

Fout bij het installeren van de Hyper-V-rol wanneer de hardwarevirtualisatievlag niet is ingesteld op de VMware VM

U kunt deze vlag ook instellen met een beetje PowerCLI-code waarmee de vlag eenvoudig kan worden ingesteld op de VM die is opgegeven.

$vmName = ‘MyHyperVVM’

$vm = Get-VM -Name $vmName

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec

$spec.nestedHVEnabled = $true

$vm.ExtensionData.ReconfigVM($spec)

Promiscuous Mode en MAC Address Forged Transmits

Wanneer u een geneste Hyper-V-installatie configureert binnen VMware vSphere, wilt u waarschijnlijk niet alleen een server met de Hyper-V-rol kunnen installeren, maar ook een geneste Hyper-V-V-VM kunnen draaien boven op de geneste Hyper-V-server die u draait.

Het is misschien niet belangrijk om netwerkconnectiviteit met de Hyper-V VM te hebben, maar misschien wilt u wel echte netwerkconnectiviteit met de geneste virtuele machine die bovenop de geneste Hyper-V host in de VMware virtuele machine draait.

Als u deze functionaliteit wilt hebben, zijn er een paar netwerkconfiguratie-instellingen die u mogelijk moet maken op uw VMware vSwitch waarmee uw geneste Hyper-V host is verbonden.

U moet dit mogelijk doen omdat er een nieuwe vooruitgang is in VMware vSwitch-technologie en geneste virtualisatie sinds de release van VMware vSphere 6.7. Vóór de release van VMware vSphere ESXi 6.7, implementeerde VMware geen MAC learning op een vSwitch zoals het in een echte fysische switch wordt gevonden. Dit gold zowel voor de vSphere Standard Switch als voor de vSphere Distributed Switch.

Omdat dit het geval is met de VMware vSwitch van vóór vSphere 6.7, wanneer een virtuele switch pakketten ontvangt die geen MAC-adres hebben dat overeenkomt met het pNIC MAC-adres van de geneste hypervisor hosts vmnic (in het geval van een geneste ESXi host), worden de pakketten gedropt.

Om deze beperking te omzeilen, moeten er twee instellingen op de vSwitch worden ingeschakeld, namelijk promiscuous mode en forged transmits.

Configuring Promiscuous mode and Forged transmits on a VMware vSwitch

Profiguring Promiscuous mode and Forged transmits on a VMware vSwitch

Hoe zit het met vSphere 6.7 en hoger? Voor de release van vSphere ESX 6.7 begon VMware te werken op het gebied van geneste virtualisatie en MAC-learning functionaliteit in relatie tot virtuele switches. Er werd een “MAC Learning Fling” uitgebracht die de MAC-leerfunctionaliteit introduceerde, zodat je de promiscuous mode en vervalste zendinstellingen niet hoefde in te schakelen.

Deze instelling is geïmplementeerd met de release van VMware vSphere 6.7 ESXi.

Wat zijn de vereisten van de nieuwe MAC Learning-functie in ESXi 6.7?

Er zijn een paar vereisten die u in orde moet hebben voordat u kunt profiteren van de nieuwe MAC-learning-functionaliteit in vSphere 6.7. Deze zijn als volgt:

  • Upgrade vCenter Server en ESXi-servers naar vSphere 6.7
  • Run de vSphere Distributed Switch (vDS)
  • Upgrade de vDS naar de nieuwste versie (6.6)
  • Beheerd per vSphere Distributed Switch Port Group basis
  • Momenteel beheerd met de vSphere API

Eén ding om op te merken, de nieuwe MAC Learning functionaliteit met vSphere 6.7 en een vDS 6.6 vSwitch is niet standaard ingeschakeld. U zult de vlaggen op de juiste manier moeten instellen met de API.

Om dit proces veel gemakkelijker te maken, heeft William Lam, een Staff Solution Architecture een paar PowerCLI functies geschreven die het controleren van de status van MAC Learning en het instellen van MAC Learning in uw vSphere omgeving uiterst eenvoudig maken. Download William’s PowerCLI script van zijn Github repository hier:

https://github.com/lamw/vghetto-scripts/blob/master/powershell/MacLearn.ps1

Een voorbeeld van de uitvoer van de functie Get-MacLearn die een vSphere Distributed Switch Port Group controleert, ziet er als volgt uit. Let op de velden:

  • MacLearning
  • NewAllowPrimiscuous
  • NewForged Transmits
  • NewMacChanges
  • Limit
  • LimitPolicy

Zo ziet een vDS 6.7 vSwitch poortgroep er uit met standaardinstellingen.

Checking the state of MAC Learning on a vSphere 6.7 vDS switch

Checking the state of MAC Learning on a vSphere 6.7 vDS switch

Voor geneste ESXi-installaties, en bij uitbreiding Hyper-V VM’s die binnen uw vSphere ESXi-hypervisor draaien, wilt u de instellingen op het volgende instellen:

  • MAC Learning: true
  • Promiscuous mode: False
  • Forged Transmit: True
  • MAC Wijzigingen: False
  • Limit: 4096 (u kunt dit instellen of de standaardwaarde laten staan)
  • Limit Policy: Drop (u kunt dit instellen of de standaardwaarde laten staan)

De bovenstaande aanbevelingen kunnen worden ingesteld met de volgende PowerCLI-code:

  • Set-MacLearn -DVPortgroupName @(“DPG-Servers”) -EnableMacLearn $true -EnablePromiscuous $false -EnableForgedTransmit $true -EnableMacChange $false

Zoals u hierboven kunt zien, is de Promiscuous-modusinstelling op False gezet. Zelfs als MAC Learning is ingeschakeld, staat Forged Transmit nog steeds op True.

De MAC Learning functionaliteit in vSphere 6.7 maakt het mogelijk om enkele van de beveiligingsimplicaties van het draaien van een geneste VM binnen uw vSphere 6.7 omgeving te vermijden door te voorkomen dat de promiscuous mode moet worden ingeschakeld.

Kunt u een back-up maken van geneste omgevingen?

Ondanks dat geneste virtualisatie alleen wordt ondersteund door VMware vSphere voor de vSAN Witness-appliance, wilt u wellicht een back-up maken van uw geneste omgeving als u geneste Hyper-V-V-VM’s uitvoert binnen VMware vSphere ESXi. Kan dit worden gedaan?

Ja, absoluut.

Met een moderne back-upoplossing, zoals Vembu BDR Suite, kunt u niet alleen een back-up maken van uw VMware vSphere- of Microsoft Hyper-V-omgeving, maar ook van alle geneste ESXi- of Hyper-V-installaties die u in de omgeving hebt.

Wrapping Up

Nested Hyper-V VM’s op een VMware ESXi Server biedt u de mogelijkheid om te spelen met Hyper-V, zelfs als u alleen een VMware vSphere-omgeving hebt. Zoals aangetoond, zijn er veel geweldige gebruikssituaties voor geneste virtualisatie. Denk hierbij aan leren, software testen, POC’en en het patchen van uw Hyper-V hosts.

Zo krachtig als geneste virtualisatie is in VMware vSphere, verwacht u misschien dat het proces om dit mogelijk te maken buitengewoon moeilijk is. Het vereist echter slechts een paar overwegingen van uw kant bij het provisionen van een VMware vSphere VM die de Hyper-V installatie zal bevatten. Dit omvat het blootstellen van de hardware-ondersteunde virtualisatie flag op de virtuele CPU van de Hyper-V VM en ook het implementeren van promiscuous mode of MAC Learning voor het verbinden van geneste Hyper-V VM’s met het netwerk.

Al met al vormen geneste Hyper-V-VM’s op een VMware ESXi-server een uiterst krachtige mogelijkheid, waarmee u Hyper-V kunt uitproberen en leren kennen zonder de fysieke apparatuur voor het uitvoeren van de Hyper-V-hypervisor.

Volg onze Twitter- en Facebook-feeds voor nieuwe releases, updates, inzichtelijke berichten en meer.

Vindt u het leuk wat u leest? Beoordeel ons