// Engineering Log

Virtualización: Parte 4 — KVM

Publicado el 22.09.2026

// Ruta rapida

Este articulo pertenece al tema Servidores e infraestructura.

KVM (Kernel-based Virtual Machine) — subsistema de virtualización integrado en el kernel de Linux desde la versión 2.6.20. Utiliza el soporte de virtualización por hardware del procesador (Intel VT-x, AMD-V) y convierte el kernel de Linux en un hipervisor. Cada máquina virtual funciona como un proceso normal de Linux, por lo que se aplican los mecanismos habituales: planificador, gestión de memoria, cgroups.

KVM consta del módulo kvm.ko y de un módulo para el procesador concreto — kvm-intel.ko o kvm-amd.ko. El propio KVM se encarga solo de la ejecución del código de la VM en el procesador. Los discos virtuales, tarjetas de red, adaptador de vídeo y demás dispositivos los emula QEMU, que funciona en el espacio de usuario. Por eso en la práctica se habla de la combinación KVM + QEMU, y las VMs se gestionan a través de libvirt — una capa de gestión con la utilidad virsh. Sobre esta combinación se construyen Proxmox VE, OpenStack, la mayoría de proveedores de nube y plataformas de virtualización rusas.

Comprobación de soporte

El procesador debe soportar virtualización por hardware, y ésta debe estar activada en la BIOS/UEFI:

bash
grep -Ec '(vmx|svm)' /proc/cpuinfo   # mayor que cero — hay soporte
ls -l /dev/kvm                       # el dispositivo aparece tras cargar el módulo

En Ubuntu y Debian hay una utilidad kvm-ok del paquete cpu-checker: indica si se puede usar el acelerador KVM y avisa si la virtualización está desactivada en la BIOS.

Instalación en Ubuntu o Debian

bash
sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system virtinst
sudo adduser $USER libvirt     # luego cerrar la sesión y volver a iniciarla
virsh list --all

libvirt-daemon-system instala el servicio libvirt, virtinst — la utilidad virt-install para crear VMs. Para gestión desde interfaz gráfica existe virt-manager (aplicación de escritorio) y la consola web Cockpit con el módulo cockpit-machines, que permite crear, arrancar y configurar VMs desde el navegador.

Primera máquina virtual

Ejemplo de instalación de una VM desde una imagen ISO. El comando está tomado del ejemplo de la documentación de virt-install:

bash
virt-install --connect qemu:///system \
  --name web01 \
  --memory 4096 --vcpus 2 \
  --disk size=40 \
  --osinfo ubuntu24.04 \
  --cdrom /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso \
  --network bridge=br0
  • --osinfo establece el tipo de SO invitado, y libvirt selecciona la configuración por defecto; la lista de valores conocidos se muestra con virt-install --osinfo list;
  • --disk size=40 crea un disco nuevo de 40 GB en el pool de almacenamiento por defecto;
  • --network bridge=br0 conecta la VM al puente del host; sin este parámetro la VM entra en la red por defecto de libvirt.

Gestión habitual:

bash
virsh list --all            # todas las VMs y su estado
virsh start web01           # iniciar
virsh shutdown web01        # apagar correctamente desde el SO invitado
virsh autostart web01       # arrancar junto con el host
virsh edit web01            # modificar la configuración (XML)

Red: NAT o puente

  • Red por defecto (NAT). libvirt crea el puente virbr0 y la subred 192.168.122.0/24. Las VMs salen a Internet a través de la dirección del host, pero desde la red externa no se puede conectar directamente a ellas. Adecuado para estaciones de trabajo y pruebas.
  • Puente (bridge). La interfaz física del host se incorpora en un puente de Linux, por ejemplo br0, y las VMs quedan en la misma red que el host, con sus propias direcciones. libvirt no gestiona el puente: se configura con las herramientas del sistema — en Ubuntu, mediante Netplan. Cómo describir puente, VLAN y bonding en Netplan — en el artículo «Netplan: configuración avanzada de red».

Al configurar un puente en un servidor remoto, tenga a mano la consola del proveedor: un error en la configuración de la red cortará el acceso por SSH.

Discos: qcow2 o raw

  • qcow2 — formato principal de QEMU: el archivo crece a medida que se escriben datos, soporta snapshots y compresión. Conveniente cuando se necesitan snapshots y ahorro de espacio.
  • raw — imagen «tal cual», sin metadatos. Más simple y algo más rápida en I/O, fácil de portar a otros sistemas, pero no permite snapshots mediante el propio formato.

Para VMs de producción a menudo se usa raw sobre LVM o ZFS: los snapshots los realiza entonces el almacenamiento, no el formato del disco.

Qué no incluye KVM

KVM y libvirt son «ladrillos», no una plataforma completa. De serie no incluyen:

  • una interfaz web de gestión de clúster;
  • alta disponibilidad con reinicio automático de VMs en otro host;
  • copia de seguridad centralizada.

Todo esto lo proporcionan plataformas sobre KVM: Proxmox VE, OpenStack, las plataformas rusas zVirt y SpaceVM. Un KVM «puro» con libvirt tiene sentido para uno o dos hosts, entornos de desarrollo y casos en los que la infraestructura ya está descrita con Ansible o Terraform.

Errores típicos

  • La virtualización está desactivada en la BIOS. La VM se ejecuta sin aceleración KVM y funciona mucho más lento; revise /dev/kvm y la salida de kvm-ok.
  • Operar como root en lugar de usar el grupo libvirt y dar acceso a qemu:///system a todos los usuarios del servidor.
  • Windows sin los controladores virtio. El instalador no ve el disco en el controlador virtio; la imagen con los controladores virtio-win se conecta como segunda unidad durante la instalación.
  • Snapshots en lugar de copias de seguridad. Un snapshot de qcow2 vive en el mismo archivo que el disco de la VM.
  • Falta de memoria en el host. La suma de la memoria de las VMs supera la física — y el kernel empieza a terminar procesos de las VMs cuando falta memoria.

// Tarea parecida

Si estas resolviendo algo parecido

Este articulo pertenece a uno de los temas principales de trabajo. Puedes seguir leyendo sobre el tema, ir a la pagina principal para entender a que me dedico o abrir directamente los servicios.

Tema del articulo

Servidores e infraestructura

VPS, Linux, stack web, migraciones, hosting, bases de datos y operacion base.

Tareas frecuentes de esta tema

  • Migrar un sitio o servicio a un nuevo servidor
  • Configurar Linux, Nginx, base de datos y copias de seguridad
  • Entender por que el sistema funciona de forma inestable

// Siguiente paso

Si necesitas ayuda con este tema y no solo otro articulo, es mejor ir directo a la pagina del servicio. La pagina principal y la seleccion de materiales quedan como rutas secundarias.

Abrir servicios

// Reviews

Reseñas relacionadas

Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más sencilla y económica. Al final ahorré dinero y tiempo. Mikhail — un verdadero experto que trabaja por el resultado del cliente, no por la factura. ¡Lo recomiendo!

Llegué con una solicitud costosa para la configuración de un servidor VPS, pero durante la consulta Mikhail propuso una solución mucho más simple y económica. Al final ahorré presupuesto y tiempo. Mikhail es un …

kfhzasorin

Configuración de VPS, configuración del servidor

12.05.2026 · ★ 5/5

Hubo varios problemas, tanto en la parte técnica como en la comprensión general. Mijaíl respondió rápido a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos; por ello, muchas gracias. Estoy satisfecho con el resultado.

Hubo varios problemas relacionados tanto con la parte técnica como con la comprensión en general. Mijaíl respondió rápidamente a la solicitud, ayudó a aclarar las cosas y resolvió los problemas técnicos, por lo que le …

abazawolf

Configuración de VPS, configuración del servidor

18.02.2026 · ★ 5/5

// Contact

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Respondo en un día laborable (03:00-13:00 GMT)

Или оставьте заявку здесь:

Confirme que no es un bot.

Escribir y recibir una respuesta rápida