Conceptos básicos de virtualización

Introducción

La virtualización permite ejecutar múltiples sistemas operativos de forma simultánea sobre el mismo hardware físico, mediante una capa de software llamada hipervisor. Es una tecnología fundamental en la administración moderna de sistemas y en la computación en la nube.

¿Qué es la virtualización?

La virtualización abstrae los recursos físicos (CPU, memoria, disco, red) y los presenta a los sistemas operativos invitados (guests) como si fueran hardware real. El sistema operativo que ejecuta el hipervisor se denomina anfitrión (host).

  • Máquina virtual (VM): sistema operativo completo aislado que corre sobre el hipervisor
  • Host: máquina física que proporciona los recursos
  • Guest: sistema operativo que corre dentro de la VM
  • Hipervisor: software que gestiona y aísla las VMs

Tipos de virtualización

Virtualización completa (Full virtualization)

El guest no sabe que está virtualizado. El hipervisor traduce todas las instrucciones privilegiadas. Ejemplos: KVM, VMware ESXi, VirtualBox.

Paravirtualización

El guest es modificado para saber que está virtualizado y usa llamadas directas al hipervisor (hypercalls), mejorando el rendimiento. Ejemplo: Xen con drivers paravirtualizados.

Virtualización asistida por hardware

La CPU incluye extensiones específicas que aceleran la virtualización sin necesidad de traducción software. Intel llama a esto Intel VT-x y AMD lo llama AMD-V. KVM depende de estas extensiones.

Contenedores (virtualización a nivel de SO)

No virtualizan hardware sino que aíslan procesos usando namespaces y cgroups del kernel del host. Más ligeros que las VMs pero comparten el kernel. Ejemplos: Docker, LXC, Podman.

Hipervisor tipo 1 vs tipo 2

  • Tipo 1 (bare-metal): el hipervisor se ejecuta directamente sobre el hardware o integrado en el núcleo del sistema, gestionando las máquinas virtuales con acceso directo a los recursos físicos. Ofrece mayor rendimiento y aislamiento. Ejemplos: VMware ESXi, Xen, Hyper-V y KVM.
  • Tipo 2 (hosted): el hipervisor se ejecuta como una aplicación sobre un sistema operativo anfitrión convencional. Suele ser más sencillo de instalar y utilizar en equipos de escritorio. Ejemplos: VirtualBox, VMware Workstation y QEMU sin KVM.

KVM (Kernel-based Virtual Machine) integra capacidades de virtualización en el kernel Linux, permitiendo que Linux actúe como hipervisor con aceleración por hardware. Es una de las soluciones más utilizadas en servidores Linux.

Ventajas de la virtualización

  • Consolidación: múltiples servicios en un solo servidor físico
  • Aislamiento: un fallo en una VM no afecta a las demás
  • Snapshots: capturas del estado que permiten rollback
  • Migración en vivo: mover VMs entre hosts sin parar el servicio
  • Aprovisionamiento rápido: clonar VMs en segundos
  • Laboratorios seguros: entornos de prueba aislados del sistema real

Principales soluciones en Linux

  • KVM + QEMU: solución estándar en Linux, incluida en el kernel
  • Xen: hipervisor externo, usado en Amazon AWS
  • VirtualBox: tipo 2, ideal para escritorio y desarrollo
  • VMware ESXi: solución empresarial de VMware
  • LXC/LXD: contenedores Linux con experiencia similar a VM

En entornos Linux de producción, la combinación KVM + libvirt es el estándar de facto. KVM proporciona la virtualización asistida por hardware y libvirt ofrece una API unificada para gestionarla.

KVM (Kernel-based Virtual Machine)

Índice de la sección

Índice del curso