Virtualización

¿Qué es Hypervisor?

Definición

A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them. A type-1 hypervisor runs directly on the hardware; KVM is unusual in being a type-1 hypervisor implemented as a Linux kernel module, which lets it use the whole Linux driver ecosystem.

Por qué es importante Hypervisor

Un hipervisor de tipo 1 se ejecuta directamente sobre el hardware; KVM es inusual por ser un hipervisor de tipo 1 implementado como módulo del kernel de Linux, lo que le permite usar todo el ecosistema de controladores de Linux.

Hypervisor en la práctica

Cuando ejecutas un servidor en un hipervisor KVM, observas la asignación real de hardware: vCPUs, RAM, E/S de disco. Ajustas estos desde el panel, a menudo añadiendo memoria adicional en caliente sin reiniciar. Si lo haces mal sobrecomprometiendo el host, las cargas ruidosas de tus vecinos privan de CPU o E/S a tu instancia, convirtiendo un invitado perfectamente configurado en uno lento. La virtualización anidada significa que puedes ejecutar un hipervisor dentro de tu hipervisor, útil para pruebas, pero cuesta rendimiento y puede confundir tu propio conteo de recursos.

Lo que se suele malinterpretar sobre Hypervisor

El error común es tratar el hipervisor como un límite de contenedor. No lo es. Un hipervisor te da una máquina virtual completa, tu propio kernel, tu propio /proc, sin espacio de nombres compartido. La gente asume que los procesos de su vecino son invisibles o que su kernel personalizado es imposible, y luego se topan con limitaciones. La corrección: con KVM, obtienes aislamiento y control genuinos, por lo que puedes arrancar una imagen hecha a mano o ejecutar virtualización anidada, cosas que un contenedor no puede hacer.

Hypervisor — preguntas frecuentes

¿Qué significa hipervisor de tipo 1?

Un hipervisor de tipo 1 se ejecuta directamente sobre el hardware del host, no sobre un sistema operativo. KVM es especial porque es un hipervisor de tipo 1 implementado como un módulo del kernel de Linux, por lo que puede usar todo el ecosistema de controladores de Linux para gestionar el hardware. Esto te da el rendimiento de la virtualización de metal desnudo con la flexibilidad de Linux.

¿En qué se diferencia KVM de los contenedores como OpenVZ?

KVM proporciona virtualización real: cada invitado tiene su propio kernel, su propio /proc y sin espacio de nombres compartido, por lo que tienes acceso root completo y puedes ejecutar kernels personalizados. Los contenedores comparten el kernel del host y los espacios de nombres, lo que limita lo que puedes hacer. Con KVM, obtienes aislamiento y control, incluida la capacidad de ejecutar virtualización anidada o arrancar un ISO personalizado.

Más de virtualización

KVM
KVM es virtualización completa por hardware integrada en el kernel de Linux, lo que da a cada invitado su propio kernel y un aislamiento reforzado por hardware de otros inquilinos.
OpenVZ
OpenVZ es virtualización por contenedores en la que cada instancia comparte el kernel del host, por lo que los invitados no pueden cargar módulos del kernel ni ejecutar un sistema operativo diferente.
LXC
LXC es contenedorización nativa de Linux que aísla procesos con namespaces y cgroups mientras comparte el kernel del host.
Virtualización anidada
La virtualización anidada permite que una máquina virtual ejecute a su vez máquinas virtuales, exponiendo las extensiones de virtualización del procesador al invitado.
vCPU
Una vCPU es un procesador virtual presentado a un invitado, respaldado por tiempo de planificación en un núcleo o hilo físico.
cloud-init
cloud-init es el mecanismo estándar para configurar una máquina virtual en el primer arranque, usando metadatos proporcionados por la plataforma.