[Tutorial] Hyper-V | Virtualización Anidada (Nested Virtualization) en Windows 10
En esta publicación vamos a conocer los detalles relacionados a la Virtualización anidada (Nested Virtualization) en Hyper-V de Windows 10.
En relación a Hyper-V, era algo que necesitábamos por el solo hecho de que en la competencia VMware si se podía hacer modificando un parámetro en el archivo de configuración, Microsoft se ha dado cuenta de esto y por eso ha dado la posibilidad de activar esta función en el nuevo Hyper-V de Windows 10.
[toc]
Introducción
Objetivo
Esta publicación tiene como objetivo:
- Demostrar el fácil proceso de habilitar la Virtualización anidada (Nested Virtualization) en Hyper-V de Windows 10.
- Indicar cuales son los requisitos para poder virtualizar sobre lo virtualizado.
Audiencia
Este documento está dirigido a Consultores, Profesionales IT y personas que desarrollan tareas de Consultoría, Administración y Soporte o que simplemente están interesados en leer e investigar sobre la tecnología alcanzada por esta publicación.
Comentarios y Corrección de Errores
Hemos realizado nuestro mejor esfuerzo para no cometer errores, pero al fin y al cabo somos seres humanos. Si deseás reportar algún error o darnos feedback de qué te pareció esta publicación, por favor no dejes de comunicarte con nosotros a través de correo electrónico a la siguiente dirección: info@tectimes.net.
Alcance Técnico
Entender cuál es el alcance de la publicación nos ayuda a tener una expectativa real de lo que encontraremos en la misma, de modo tal que quién lo lee no espere ni más ni menos de lo que encontrará. Vamos a describir el objetivo técnico, tecnologías alcanzadas, escenario de trabajo y plan de trabajo en alto nivel.
Objetivo Técnico
El objetivo técnico de este tutorial es realizar las configuraciones necesarias en Windows 10 y Hyper-V, de modo tal que podamos virtualizar sobre lo que ya está virtualizado (virtualizar una máquina virtual con Hyper-V y en esa VM instalar Hyper-V también y poder correr VMs).
Tecnologías Alcanzadas
Las tecnologías alcanzadas por esta publicación son las siguientes:
- Windows 10.
- Hyper-V.
Escenario de Trabajo
El escenario de trabajo que da marco a esta publicación es el siguiente:
- El equipo Host debe trabajar con Windows 10 Professional / Enterprise – Build 10565 o superior.
-
1 Equipo virtual con:
- 4 GB de memoria.
- 2 Procesadores virtuales.
- 1 Disco Rígido virtual de 127 GB (Puede variar dependiendo la cantidad de VMs a ejecutar).
- Conexión a Internet.
- Un ISO de Windows 10 Professional / Enterprise (en su versión estable o Technical Preview).
- Download Script – GitHub
Plan de Trabajo
El plan de trabajo a desarrollar en esta publicación es el siguiente:
-
Configuración inicial de la Virtualización anidada (Nested Virtualization) en Hyper-V de Windows 10.
- Descarga y copia de Script – GitHub.
- Windows PowerShell ISE.
- Instalación y Ejecución de Hyper-V en la VM que habilitamos (Nested Virtualization).
Desarrollo
Vamos a comenzar con este tutorial, en donde vamos a conocer cómo habilitar la Virtualización anidada (Nested Virtualization) en Hyper-V de Windows 10.
¡Síguenos!
¿Qué es virtualización anidada o Nested Virtualization?
La virtualización anidada no es más que virtualizar sobre lo que ya está virtualizado, tener virtualizada una máquina virtual con Hyper-V y en esa VM instalar Hyper-V también y poder correr VMs, esto antes no era posible porque si intentabas instalar la característica de Hyper-V en Windows nos daba un error y nos decía que el Hypervisor ya estaba siendo utilizado. El siguiente gráfico nos resume lo que les digo.
![Ilustración 1 – Cuadro ilustrativo de Nested Virtualization](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp1-300x183.png)
Configuración Inicial
En la actualidad, este proceso se está ejecutando en una maquina host con Windows 10 Pro – 10586.
![Ilustración 2 – Desktop Windows 10 Pro (Build 10586)](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp2-300x160.png)
Descarga y copia de Script – GitHub
Ingresamos a la siguiente dirección de enlace para proceder con la copia del Script proporcionado por el equipo de GitHub, el cual nos facilitará el proceso de activación.
![Ilustración 4 – GitHub](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp3-300x159.png)
![Ilustración 4 – GitHub(2)](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp4-300x160.png)
Windows PowerShell ISE
En este caso nos dirigimos a Windows PowerShell ISE y lo ejecutamos como administrador. Una vez dentro pegamos el Script que copiamos de la página de GitHub y lo guardamos en la unidad C:/ con la siguiente extensión Enable-NestedVm.ps1.
![Ilustración 5 – Windows PowerShell ISE](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp5-300x159.png)
![Ilustración 6 – Windows PowerShell ISE(2)](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp6-300x160.png)
Después de haber guardado el Script en la ruta correspondiente, procedemos a ejecutarlo y adicionalmente, agregamos la siguiente extensión
./Enable-NestedVm.ps1 -OutFile ~/Enable-NestedVm.ps1 ~/Enable-NestedVm.ps1 -VmName <Nombre de la VM al cual le habilitaremos (Nested Virtualization)>
![Ilustración 7 – Ejecución de Script ./Enable-NestedVm.ps1](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp7-300x160.png)
Como vemos, el proceso de ejecución del Script fue realizado de forma exitosa y antes de continuar nos muestra 2 recomendaciones que se debe tener en cuenta antes de presionar Y:
- Se habilitará Mac Address Spoofing en la VM que ejecutará (Nested Virtualization).
- Se agregará 4GB de RAM (Es el mínimo recomendado que se debe tener) a la VM que ejecutará (Nested Virtualization).
![Ilustración 8 – Recomendaciones](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp8-300x160.png)
Instalación y Ejecución de Hyper-V en la VM que habilitamos (Nested Virtualization)
Después de haber tomado las consideraciones del caso y ejecutado Y como aceptación de este proceso, nos dirigimos a realizar la instalación y ejecución de Hyper-V para poder virtualizar sobre lo virtualizado.
Habilitamos el Rol de Hyper-V en la VM que habilitamos (Nested Virtualization).
![Ilustración 9 –Instalación y Ejecución de Hyper-V en la VM que habilitamos (Nested Virtualization)](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp9-300x160.png)
Iniciamos el Administrador de Hyper-V.
![Ilustración 10 –Instalación y Ejecución de Hyper-V en la VM que habilitamos (Nested Virtualization)(2)](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp10-300x160.png)
Ahora que podemos apreciar, que en realidad se está ejecutando Hyper-V dentro de una VM que también está corriendo sobre el Hypervisor de Microsoft (Hyper-V), podremos decir misión cumplida y realizar un sinfín de pruebas en ellas.
![Ilustración 10 –Instalación y Ejecución de Hyper-V en la VM que habilitamos (Nested Virtualization)(3)](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp11-300x160.png)
Conclusiones
¿Cómo afecta todo lo visto a Profesionales IT y Desarrolladores? La pregunta es muy sencilla de responder. Este método de virtualización lo recomiendo para realizar pruebas que antes solo eran posible gracias a otro Hypervisor, un ejemplo de esto es: probar nuevas características de virtualización de Windows Server 2016.
![Ilustración 12 – Conclusiones](https://pablodiloreto.com/wp-content/uploads/2016/02/020916_2203_TutorialHyp12-300x225.jpg)
Referencias y Links
- Nested Virtualization: https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/user_guide/nesting