¿Puede Hyper-V ejecutarse en una máquina virtual?

8

Ok, todos sabemos (o deberíamos saber) que la respuesta de Microsoft es un simple " ¡NO! ".

Pero también sabemos que los hipervisores recientes pueden admitir la virtualización anidada / recursiva, siempre que la CPU subyacente ofrezca virtualización de hardware; Los productos recientes de VMware (ESXi 5, Workstation 8) incluso admiten esto de forma nativa , sin la necesidad de hacks feos.

Entonces, mi pregunta es: ¿puede Hyper-V ejecutarse con éxito (es decir, permitir ejecutar máquinas virtuales) dentro de otros hipervisores?

En caso afirmativo, ¿cuáles? ¿Y cómo?


Esto solo está destinado a pruebas , por supuesto.

Massimo
fuente
posiblemente dentro de kvm / HVM o xen_pv, pero ¿por qué querrías hacerlo? Solo está pidiendo dolor
anthonysomerset
1
por ejemplo, para fines de prueba.
Mircea Vutcovici
Sé que se ha hecho con ESXi como padre Hyper-V, pero es muy lento. Lo sentimos, no tengo un enlace a las instrucciones.
Chris S
¿Qué tipo de prueba sería realmente válida en este entorno?
Jake Oshins
2
Para configurar un clúster de prueba de Hyper-V, necesita al menos tres servidores físicos; eso generalmente no es algo que pueda tener en sus manos fácilmente.
Massimo

Respuestas:

6

Sí, puede hacerlo si las CPU subyacentes admiten las últimas extensiones de virtualización (Intel VT-X / EPT) y si está utilizando los últimos productos VMware (Workstation 8, ESXi 5).

La configuración relevante en su VM debe ser la siguiente:

monitor.virtual_mmu = "hardware"
monitor.virtual_exec = "hardware"
vhv.enable = "TRUE"
hypervisor.cpuid.v0 = "FALSE"

Las primeras tres configuraciones se pueden habilitar a través de la GUI (donde varía exactamente entre Workstation y ESXi), la última debe agregarse manualmente al .vmxarchivo de la VM .

Además, en ESXi 5, debe agregar la siguiente línea a /etc/vmware/config:

vhv.allow = "TRUE"
Massimo
fuente
¿Se encontró esto por prueba y error o puede indicarnos la fuente, que podría tener más información de interés para quienes estén considerando hacer lo mismo?
John Gardeniers
Hay varias fuentes en la web, todas confirmando los mismos pasos y configuraciones; nada oficial, sin embargo, ni de VMware ni de Microsoft (que todavía dice que esto no es posible en absoluto).
Massimo
3

Hay diferentes respuestas a esta pregunta.

Antes de WS2016 / W10, la respuesta correcta era: Sí, puede habilitar la función Hyper-V en una máquina virtual Hyper-V, pero el hipervisor no se iniciará. Por lo tanto, puede crear máquinas virtuales en el vHost, pero esas máquinas virtuales no pueden iniciarse.

Sin embargo, en Windows 10 y WS2016 (TP4 y versiones posteriores) podemos usar Hyper-V anidado. Si está lo suficientemente loco como para intentarlo, puede crear un host, en un host, en un host, en un host, en un host ...

Aidan Finn
fuente
Wow, eso es realmente cierto, Microsoft finalmente logró admitir la virtualización anidada: msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/… . Me pregunto si también permite alojar ESX / i dentro de Hyper-V ...
Massimo
@Massimo desde su enlace: "Ambos hipervisores deben ser la última versión de Windows Insider (10565 o superior). Otros hipervisores no funcionarán". (Aparte: una de las razones por las que Microsoft tuvo que hacer que Hyper-V anidado funcionara es que el soporte de contenedores de Server 2016 se puede usar en máquinas virtuales; uno de los tipos de contenedores es un contenedor basado en Hyper-V. Otra razón podría ser el Modo virtual seguro en Windows 10 Enterprise, que mantiene las contraseñas en una máquina virtual Hyper-V y ejecuta el sistema operativo principal en otra).
TessellatingHeckler
@TessellatingHeckler Aparte de lo que Microsoft podría decir, Hyper-V había sido feliz de poder ejecutar productos VMware por un tiempo (aunque, por supuesto, nadie lo admitió oficialmente); esta anidación de Hyper-V se basa en los mismos principios subyacentes, por lo que supongo que también haría que Hyper-V pueda ejecutar otros hipervisores anidados (aunque, una vez más, sin ningún tipo de soporte oficial).
Massimo