Articles

Passi per distribuire le VM Hyper-V su un server VMware ESXi

Ci sono molte cose grandiose che si possono fare sopra i moderni sistemi di hypervisor di oggi che forniscono un ottimo modo per risolvere problemi di business e sfide tecniche. Una delle cose davvero belle che si possono fare con gli hypervisor di oggi come VMware vSphere è che si può configurare la virtualizzazione annidata. Questo apre molte possibilità diverse per testare ed eseguire gli hypervisor all’interno di VMware vSphere.

Un caso d’uso comune che molti hanno trovato per l’esecuzione della virtualizzazione annidata all’interno di VMware vSphere è l’esecuzione dell’hypervisor Hyper-V di Microsoft per scopi di test e apprendimento.

In questo post, daremo un’occhiata alla configurazione di VM Hyper-V nidificate su un server VMware ESXi e vedremo come questo può essere configurato per l’uso in un laboratorio o in altri ambienti.

Che cos’è la virtualizzazione nidificata

Prima di immergerci in come configurare VMware vSphere per abilitare la virtualizzazione nidificata di Hyper-V all’interno del server ESXi, diamo uno sguardo a cosa sia esattamente la virtualizzazione nidificata. Quando si pensa alla virtualizzazione annidata, stiamo parlando di eseguire un hypervisor all’interno di un hypervisor. Questo significa che è possibile eseguire hypervisor di tipo 1 come VMware vSphere ESXi e Hyper-V all’interno di una VM sopra, in questo caso, VMware vSphere ESXi.

L’hypervisor in esecuzione nella VM sopra il server VMware vSphere ESXi vede semplicemente l’hardware della VM come il suo hardware host fisico su cui può eseguire macchine virtuali guest. Questo permette alcuni scenari molto interessanti quando si usa l’ambiente VMware vSphere per ospitare altri hypervisor come Microsoft Hyper-V.

Un punto importante da fare riguardo a VMware vSphere è la virtualizzazione nidificata di altri hypervisor come Hyper-V all’interno di una VM vSphere non è uno scenario supportato. Non si tratta solo di altri hypervisor al di fuori di VMware vSphere. Anche l’esecuzione di ESXi annidato all’interno di un ambiente fisico ESXi host non è supportato. Questo è ufficialmente notato da VMware nell’articolo della KB Support for running ESXi/ESX as a nested virtualization solution (2009916).

Le seguenti configurazioni sono tecnicamente possibili quando si esegue VMware ESXi all’interno di altri prodotti hypervisor VMware ma non è supportato. Questo include quanto segue.

  • VMware ESXi/ESX in esecuzione in VMware Workstation o VMware Fusion
  • VMware ESXi/ESX in esecuzione in VMware ESXi/ESX
  • VMware ESXi/ESX in esecuzione in altre soluzioni hypervisor di terze parti

Naturalmente, l’esecuzione di Hyper-V rientra in questo stesso tipo di disclaimer di supporto. C’è solo una situazione in cui la virtualizzazione annidata è supportata ed è l’appliance vSAN Witness annidata.

Al di fuori di questo caso d’uso supportato con la vSAN Witness Appliance, la virtualizzazione annidata non è supportata per l’ambiente di produzione. In altre parole, se si verificano problemi utilizzando la virtualizzazione nidificata, si è da soli con il supporto.

Finché si comprende lo scenario di supporto con la virtualizzazione annidata, è una grande caratteristica da sfruttare per altri scopi. Può essere usata molto efficacemente per ambienti di laboratorio, dev, test e altri tipi di scenari simili.

Perché eseguire Hyper-V all’interno di VMware

Perché si vorrebbe eseguire un hypervisor all’interno di un altro hypervisor? Più specificamente, perché vorreste eseguire Hyper-V all’interno di una VMware ESXi VM? Come già detto, questa non è una configurazione supportata per la produzione. L’esecuzione di Hyper-V all’interno di VMware fornisce molti grandi vantaggi. Diamo un’occhiata a quanto segue:

  • Ambienti di laboratorio
  • Nessun hardware aggiuntivo o attrezzatura di rete richiesta
  • Facilmente provisioning e smantellamento degli host Hyper-V

Ambienti di laboratorio

Questo è probabilmente il caso d’uso più comune per il provisioning di un host Hyper-V dentro una macchina virtuale VMware. La virtualizzazione annidata permette il provisioning di ambienti di laboratorio, dev, test e altri possibili casi d’uso molto facilmente. I laboratori Hyper-V possono essere utilizzati per:

  • Imparare
  • Testare il software
  • POC di Hyper-V per varie parti della vostra infrastruttura o come sostituzione
  • Mimare un ambiente Hyper-V in un’altra parte della vostra infrastruttura
  • Testare le patch

In molti ambienti di piccole e medie dimensioni, ci può essere solo la disponibilità di un ambiente VMware vSphere e nessun host Hyper-V. Se gli amministratori vogliono mettere le mani su un host Hyper-V per imparare e sviluppare le loro competenze al di fuori dell’hypervisor VMware ESXi, le capacità di virtualizzazione annidate che si trovano in VMware vSphere forniscono il modo perfetto per fornire un host Hyper-V all’interno di un ambiente VMware vSphere.

Nessun hardware aggiuntivo o attrezzatura di rete è necessaria

Con questa capacità di annidare Hyper-V all’interno di VMware vSphere, non è necessario trovare hardware aggiuntivo per un ambiente di laboratorio o POC di sorta. Tutto questo può essere fornito all’interno di vSphere. Le robuste capacità di rete virtuale che si trovano all’interno di vSphere permettono anche il provisioning di tutte le reti specializzate di cui avrete bisogno se decidete di fare il provisioning di un cluster Hyper-V. Questo può includere reti di Live Migration, Storage e Cluster, per nominarne solo alcune. Utilizzando gruppi di porte di switch virtuali, è possibile simulare facilmente le configurazioni che altrimenti sarebbero realizzate con l’attrezzatura di rete fisica.

Provvedere e smontare facilmente gli host Hyper-V

Questo vantaggio non è specifico della virtualizzazione annidata, ma piuttosto della virtualizzazione VMware vSphere in generale. VMware ha set di strumenti di automazione molto ricchi, compreso PowerCLI. Questo permette di far girare e distruggere facilmente le VM a seconda delle necessità. Interi costrutti di laboratorio possono essere automatizzati per il provisioning e il deprovisioning. Questo serve a rendere la virtualizzazione annidata ancora più utile con le facili capacità di automatizzare la vostra infrastruttura.

Requisiti per le VM Hyper-V annidate su un server VMware ESXi

Una volta che avete deciso di fare uso della virtualizzazione annidata, potete semplicemente creare una nuova VM in vSphere ESXi e iniziare a caricare la vostra VM Hyper-V? Beh, non esattamente, tuttavia, il processo è ancora molto facile da usare se si pensa all’enorme complessità richiesta sotto il “cappuccio” in modo che la virtualizzazione annidata funzioni effettivamente. Ci sono davvero due aree principali da considerare con i requisiti per l’esecuzione di VM Hyper-V annidate su un server VMware ESXi. Questo include:

  • Esporre la virtualizzazione hardware-assistita al sistema operativo guest
  • Abilitare la trasmissione di indirizzi MAC forgiati

Diamo un’occhiata a ciascuna di queste e alla loro importanza per l’esecuzione di VM Hyper-V annidate su un server VMware ESXi.

Esporre la virtualizzazione assistita dall’hardware al sistema operativo guest

Questo primo requisito è assolutamente necessario. È un’impostazione sotto le impostazioni della singola VM che state usando per ospitare la vostra installazione Hyper-V. Modifica le impostazioni sulla tua VM Hyper-V annidata, espandi CPU e metti una casella di controllo accanto alla voce Expose hardware-assisted virtualization to the guest OS.

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

Abilitare la virtualizzazione assistita dall’hardware in VMware per una VM Hyper-V

Cosa succede se non abiliti questo flag per la virtualizzazione assistita dall’hardware in VMware per la tua VM Hyper-V? Non vedrete alcun errore semplicemente installando il sistema operativo Windows Server, poiché questo funzionerà come l’installazione di qualsiasi altra VM. Tuttavia, quando arrivi al punto di installare il ruolo Hyper-V, vedrai un errore se questa impostazione non è abilitata per la macchina virtuale. Notate l’errore qui sotto, “Hyper-V non può essere installato: Il processore non ha le capacità di virtualizzazione richieste”.

Come nota a margine, questo flag deve essere impostato per le installazioni Hyper-V Core o con il ruolo Hyper-V installato in Windows Server con la Desktop Experience installata. Questa capacità è richiesta in qualsiasi installazione annidata del ruolo Hyper-V all’interno di VMware vSphere.

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

Errore nell’installazione del ruolo Hyper-V quando il flag di virtualizzazione hardware non è impostato sulla VMware VM

È anche possibile impostare questo flag con un po’ di codice PowerCLI che permette di impostare facilmente il flag sulla VM specificata.

$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

Molto probabilmente, se state configurando un’installazione Hyper-V nidificata all’interno di VMware vSphere, vorrete essere in grado non solo di installare un server con il ruolo Hyper-V ma anche di eseguire una VM Hyper-V nidificata sopra il server Hyper-V nidificato che state eseguendo.

Potreste non preoccuparvi di avere la capacità di connettività di rete alla VM Hyper-V, tuttavia, potreste voler essere in grado di stabilire una reale connettività di rete alla macchina virtuale annidata che gira sopra l’host Hyper-V annidato nella macchina virtuale VMware.

Se volete avere questa funzionalità, ci sono un paio di impostazioni di configurazione di rete che potreste dover fare sul vostro VMware vSwitch a cui è collegato l’host Hyper-V annidato.

Potresti aver bisogno di farlo poiché c’è un nuovo progresso nella tecnologia VMware vSwitch e nella virtualizzazione annidata dal rilascio di VMware vSphere 6.7. Prima del rilascio di VMware vSphere ESXi 6.7, VMware non implementava il MAC learning su un vSwitch come si trova in un vero switch fisico. Questo era vero sia per il vSphere Standard Switch che per il vSphere Distributed Switch.

Siccome questo è il caso del VMware vSwitch prima di vSphere 6.7, quando uno switch virtuale riceve pacchetti che non hanno un indirizzo MAC corrispondente all’indirizzo MAC pNIC dell’host hypervisor vmnic annidato (nel caso di un host ESXi annidato), i pacchetti saranno abbandonati.

Per aggirare questa limitazione, ci sono due impostazioni che devono essere abilitate sul vSwitch, la modalità promiscua e le trasmissioni falsificate.

Configuring Promiscuous mode and Forged transmits on a VMware vSwitch

Configurare la modalità promiscua e le trasmissioni falsificate su un VMware vSwitch

Che dire di vSphere 6.7 e successivi? Prima del rilascio di vSphere ESX 6.7, VMware ha iniziato a lavorare nell’area della virtualizzazione annidata e della funzionalità MAC learning in relazione agli switch virtuali. È stato rilasciato un “MAC Learning Fling” che ha introdotto la funzionalità MAC learning in modo da non dover abilitare la modalità promiscua e le impostazioni di trasmissione falsificate.

Questa impostazione è stata implementata con il rilascio di VMware vSphere 6.7 ESXi.

Quali sono i requisiti della nuova funzionalità MAC Learning in ESXi 6.7?

Ci sono alcuni requisiti che è necessario avere in atto prima di poter sfruttare la nuova funzionalità MAC learning in vSphere 6.7. Sono i seguenti:

  • Aggiorna vCenter Server e i server ESXi a vSphere 6.7
  • Esegui il vSphere Distributed Switch (vDS)
  • Aggiorna il vDS all’ultima versione (6.6)
  • Gestito per vSphere Distributed Switch Port Group base
  • Attualmente gestito con vSphere API

Una cosa da notare, la nuova funzionalità MAC Learning con vSphere 6.7 e un vSwitch vDS 6.6 non è abilitata di default. Dovrete impostare i flag in modo appropriato con le API.

Per rendere questo processo molto più facile, William Lam, uno Staff Solution Architecture ha scritto un paio di funzioni PowerCLI che rendono estremamente facile il controllo dello stato di MAC Learning e l’impostazione di MAC Learning nel vostro ambiente vSphere. Scaricate lo script PowerCLI di William dal suo repository Github qui:

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

Un esempio dell’output della funzione Get-MacLearn che controlla un vSphere Distributed Switch Port Group è simile al seguente. Nota i campi:

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

Questo è l’aspetto di un vDS 6.7 vSwitch port group con impostazioni predefinite.

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

Controllo dello stato di MAC Learning su uno switch vSphere 6.7 vDS

Per le installazioni ESXi annidate, e per estensione, le VM Hyper-V in esecuzione all’interno dell’hypervisor vSphere ESXi, è necessario impostare le impostazioni come segue:

  • MAC Learning: true
  • Modo promiscuo: Falso
  • Trasmissione falsa: Vero
  • Cambiamenti MAC: False
  • Limit: 4096 (puoi impostarlo o lasciare il valore predefinito)
  • Limit Policy: Drop (si può impostare o lasciare il valore predefinito)

Le raccomandazioni di cui sopra possono essere impostate con il seguente codice PowerCLI:

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

Come ci aspettiamo ora, come si nota sopra, l’impostazione della modalità Promiscua è configurata su False. Anche con il MAC Learning abilitato, il Forged Transmit è ancora impostato su True.

La funzionalità MAC Learning contenuta in vSphere 6.7 permette di evitare alcune delle implicazioni di sicurezza dell’esecuzione di una VM nidificata all’interno dell’ambiente vSphere 6.7, evitando la necessità di abilitare la modalità promiscua.

È possibile eseguire il backup degli ambienti annidati?

Anche se l’esecuzione della virtualizzazione annidata è supportata solo da VMware vSphere per l’appliance vSAN Witness, se si eseguono VM Hyper-V annidate all’interno di VMware vSphere ESXi, si potrebbe voler eseguire il backup dell’ambiente annidato. È possibile farlo?

Sì, assolutamente.

Utilizzando una soluzione di backup moderna, come Vembu BDR Suite, è possibile eseguire il backup non solo dell’ambiente VMware vSphere o Microsoft Hyper-V di produzione, ma anche di qualsiasi installazione annidata di ESXi o Hyper-V che si possa avere nell’ambiente.

Involucro

Le VM Hyper-V annidate su un server VMware ESXi vi danno la possibilità di giocare con Hyper-V, anche se avete solo un ambiente VMware vSphere. Come mostrato, ci sono molti ottimi casi d’uso per la virtualizzazione annidata. Questo include l’apprendimento, il test del software, il POC’ing, e il patching dei vostri host Hyper-V.

Per quanto potente sia la virtualizzazione annidata in VMware vSphere, ci si potrebbe aspettare che il processo per attivarla sia estremamente difficile. Tuttavia, richiede solo un paio di considerazioni da parte vostra quando fate il provisioning di una VMware vSphere VM che conterrà l’installazione di Hyper-V. Questo include l’esposizione del flag di virtualizzazione hardware-assistita sulla CPU virtuale della VM Hyper-V e anche l’implementazione della modalità promiscua o MAC Learning per la connessione di qualsiasi VM Hyper-V annidata alla rete.

Tutto sommato, le VM Hyper-V nidificate su un server VMware ESXi sono una capacità estremamente potente e ti permettono di testare e imparare Hyper-V senza l’attrezzatura fisica per eseguire l’hypervisor Hyper-V.

Segui i nostri feed di Twitter e Facebook per nuove release, aggiornamenti, post interessanti e altro ancora.

Ti piace quello che leggi? Votaci

.