-->

Virtualización anidada (Nested Virtualization)

Virtualización anidada (Nested Virtualization): Configurar un hipervisor dentro de una máquina virtual para poder ejecutar contenedores u otras máquinas virtuales anidadas.

Objetivo:

Habilitar y configurar la virtualización anidada (Nested Virtualization) para permitir que una máquina virtual (invitado de nivel 1) actúe a su vez como un hipervisor capaz de ejecutar contenedores u otras máquinas virtuales secundarias (invitados de nivel 2) dentro de su propio entorno.

Escenario:

  • Un equipo físico anfitrión cuya CPU soporta tecnologías de virtualización asistida por hardware (Intel VT-x o AMD-V).
  • Una máquina virtual creada en un hipervisor compatible (como Oracle VM VirtualBox o KVM/Proxmox) que requiere ejecutar cargas de trabajo de virtualización o contenedores avanzados en su interior.
  • Privilegios de administrador en el equipo anfitrión y acceso a la interfaz de comandos o configuración avanzada del hipervisor.

Instrucciones:

Fase 1: Activación de la virtualización anidada en VirtualBox (mediante comandos)

  1. Asegúrate de que la máquina virtual de destino se encuentra completamente apagada.
  2. Abre una terminal o consola de comandos con privilegios de administrador en tu equipo anfitrión.
  3. Ejecuta el comando correspondiente de la herramienta de gestión del hipervisor para habilitar la exposición de las características de virtualización de la CPU a la máquina virtual:
    • En entornos VirtualBox (sustituyendo el nombre entre comillas por el nombre exacto de tu VM):
      VBoxManage modifyvm "Nombre-De-Tu-VM" --nested-hw-virt on
  4. Enciende la máquina virtual y comprueba que el sistema operativo invitado reconoce las extensiones de hardware ejecutando en su terminal:
    lscpu | grep Virtualization

Fase 2: Verificación e instalación de un hipervisor anidado o motor de contenedores

  1. Dentro de la máquina virtual (invitado de nivel 1), instala un software de virtualización o contenedores (como KVM, Docker o QEMU).
  2. Crea o levanta una sub-máquina virtual o contenedor en el interior (nivel 2) y verifica que arranca correctamente haciendo uso del hardware virtualizado expuesto.

Verificación:

  • Comprueba que el comando de verificación de CPU dentro de la máquina virtual indica que las instrucciones de virtualización de hardware están habilitadas.
  • Verifica que el hipervisor secundario o motor de contenedores se ejecuta con éxito en el interior de la VM sin arrojar errores de incompatibilidad de procesador.

Preguntas de reflexión:

  1. ¿Qué implicaciones de rendimiento y sobrecarga (overhead) experimenta un sistema ejecutándose en un entorno de virtualización anidada de nivel 2 frente a uno de nivel 1 directo?
  2. ¿Por qué es indispensable que el procesador físico del equipo anfitrión exponga las instrucciones VT-x o AMD-V hacia la máquina virtual para que la virtualización anidada funcione?
  3. ¿Qué casos de uso reales en laboratorios de desarrollo, pruebas de infraestructura o despliegues de contenedores justificarían el uso de virtualización anidada?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué sobrecarga de rendimiento genera la virtualización anidada?

Cada nivel adicional de abstracción (hardware físico -> hipervisor anfitrión -> S.O. invitado nivel 1 -> hipervisor anidado -> S.O. invitado nivel 2) añade una sobrecarga significativa en la gestión de interrupciones, traducción de memoria (SLAT/EPT) y cambios de contexto de CPU. Esto reduce notablemente el rendimiento general en comparación con la virtualización directa de nivel 1.


2. ¿Por qué se requiere exponer las instrucciones VT-x o AMD-V?

Por defecto, muchos hipervisores ocultan las características de virtualización del silicio físico a las máquinas virtuales para aislarlas. Al activar la virtualización anidada, el hipervisor principal permite que las instrucciones de hardware del procesador atraviesen la primera capa y se presenten al sistema operativo invitado, permitiéndole crear sus propias máquinas virtuales asistidas por hardware en lugar de recurrir a una emulación por software extremadamente lenta.


3. ¿Qué casos de uso justifican la virtualización anidada?

Es ampliamente utilizada en laboratorios de formación en cloud computing, pruebas de despliegue de clústeres de orquestación (como Kubernetes sobre máquinas virtuales), laboratorios de ciberseguridad donde se requiere emular arquitecturas de centros de datos complejos dentro de un único ordenador portátil, y en entornos de integración continua (CI/CD) para probar código en múltiples sistemas virtuales aislados.