Kvm
This content is not available in your language yet.
10.1 Virtualización con KVM: Fundamentos y Operación en Linux
Sección titulada «10.1 Virtualización con KVM: Fundamentos y Operación en Linux»Introducción
Sección titulada «Introducción»La virtualización es un pilar fundamental en cualquier infraestructura moderna. Permite ejecutar múltiples sistemas operativos aislados sobre un mismo hardware físico, optimizando recursos y facilitando la gestión.
En el ecosistema Linux, KVM (Kernel-based Virtual Machine) es la solución estándar para virtualización de tipo 1 integrada en el propio kernel. Permite convertir un servidor Linux en un hypervisor completo, capaz de ejecutar máquinas virtuales con alto rendimiento y aislamiento.
Para un Sysadmin senior, dominar KVM implica poder construir entornos reproducibles, aislar cargas de trabajo críticas y desplegar infraestructura eficiente sin depender de soluciones propietarias.
Objetivos de aprendizaje
Sección titulada «Objetivos de aprendizaje»Al finalizar este capítulo serás capaz de:
- Comprender la arquitectura de KVM y su integración con el kernel.
- Identificar los componentes clave del stack de virtualización.
- Instalar y configurar KVM en un sistema Linux.
- Crear y gestionar máquinas virtuales desde CLI.
- Aplicar buenas prácticas en entornos de producción.
Conceptos Teóricos
Sección titulada «Conceptos Teóricos»1. ¿Qué es KVM?
Sección titulada «1. ¿Qué es KVM?»KVM es un módulo del kernel de Linux que permite transformar el sistema en un hypervisor tipo 1 (bare-metal).
Componentes clave:
- kvm.ko → módulo principal
- kvm-intel.ko / kvm-amd.ko → soporte de CPU
- QEMU → emulación de hardware
- libvirt → capa de gestión
KVM proporciona virtualización, pero la gestión se realiza mediante herramientas como libvirt y virsh.
2. Tipos de virtualización
Sección titulada «2. Tipos de virtualización»Virtualización completa
Sección titulada «Virtualización completa»- El sistema huésped no sabe que está virtualizado.
- Usa extensiones de CPU (Intel VT-x / AMD-V).
Paravirtualización
Sección titulada «Paravirtualización»- Mejora rendimiento mediante drivers optimizados (virtio).
3. Arquitectura del stack
Sección titulada «3. Arquitectura del stack»Hardware │Kernel (KVM) │QEMU │libvirt │Herramientas (virsh, virt-manager)Roles:
- QEMU → ejecuta la VM
- libvirt → gestión centralizada
- virsh → CLI administrativa
4. Requisitos del sistema
Sección titulada «4. Requisitos del sistema»Verificar soporte de virtualización:
egrep -c '(vmx|svm)' /proc/cpuinfoResultado:
0→ no soportado>0→ soportado
5. Tipos de almacenamiento en KVM
Sección titulada «5. Tipos de almacenamiento en KVM»- archivos (
.qcow2,.raw) - LVM
- NFS / iSCSI
Formato recomendado:
- qcow2 → flexible (snapshots, compresión)
Laboratorio Práctico
Sección titulada «Laboratorio Práctico»Escenario
Sección titulada «Escenario»Configurar un servidor Linux como hypervisor:
- instalar KVM
- crear una máquina virtual
- arrancarla y comprobar su estado
Parte 1: Instalación de KVM
Sección titulada «Parte 1: Instalación de KVM»sudo apt updatesudo apt install qemu-kvm libvirt-daemon-system libvirt-clients virtinstPaso 2: Verificar instalación
Sección titulada «Paso 2: Verificar instalación»systemctl status libvirtdlsmod | grep kvmPaso 3: Añadir usuario a grupo
Sección titulada «Paso 3: Añadir usuario a grupo»sudo usermod -aG libvirt $USERAplicar cambios:
newgrp libvirtParte 2: Crear máquina virtual
Sección titulada «Parte 2: Crear máquina virtual»Paso 1: Descargar ISO
Sección titulada «Paso 1: Descargar ISO»wget https://releases.ubuntu.com/22.04/ubuntu-22.04.isoPaso 2: Crear VM con virt-install
Sección titulada «Paso 2: Crear VM con virt-install»virt-install \--name test-vm \--ram 2048 \--vcpus 2 \--disk path=/var/lib/libvirt/images/test-vm.qcow2,size=10 \--os-type linux \--os-variant ubuntu22.04 \--cdrom ubuntu-22.04.iso \--network network=default \--graphics noneExplicación clave
Sección titulada «Explicación clave»- –name → nombre VM
- –ram → memoria
- –vcpus → CPU
- –disk → almacenamiento
- –network → red virtual
Parte 3: Gestión de la VM
Sección titulada «Parte 3: Gestión de la VM»Listar máquinas
Sección titulada «Listar máquinas»virsh list --allArrancar VM
Sección titulada «Arrancar VM»virsh start test-vmApagar VM
Sección titulada «Apagar VM»virsh shutdown test-vmAcceder a consola
Sección titulada «Acceder a consola»virsh console test-vmSalir:
Ctrl + ]Output esperado
Sección titulada «Output esperado» Id Name State-------------------------------- 1 test-vm runningErrores Comunes y Troubleshooting
Sección titulada «Errores Comunes y Troubleshooting»1. CPU sin soporte de virtualización
Sección titulada «1. CPU sin soporte de virtualización»KVM acceleration not available-Causa:*
- VT-x/AMD-V deshabilitado en BIOS
-Solución:*
activar en BIOS/UEFI.
2. Permisos insuficientes
Sección titulada «2. Permisos insuficientes»Errores al usar virsh.
-Solución:*
usermod -aG libvirt usuario3. Servicio libvirt caído
Sección titulada «3. Servicio libvirt caído»systemctl restart libvirtd4. Red no funcional
Sección titulada «4. Red no funcional»virsh net-listReiniciar red:
virsh net-start default5. Disco no encontrado
Sección titulada «5. Disco no encontrado»Verificar ruta y permisos en:
/var/lib/libvirt/images/Buenas Prácticas (Nivel Senior)
Sección titulada «Buenas Prácticas (Nivel Senior)»1. Uso de virtio
Sección titulada «1. Uso de virtio»Mejora rendimiento:
--disk bus=virtio--network model=virtio2. Separación de almacenamiento
Sección titulada «2. Separación de almacenamiento»- sistema → disco principal
- datos → volúmenes independientes
3. Snapshots
Sección titulada «3. Snapshots»Permiten rollback rápido:
virsh snapshot-create-as test-vm snap14. Networking avanzado
Sección titulada «4. Networking avanzado»- bridges para integración real
- VLANs en entornos complejos
5. Automatización
Sección titulada «5. Automatización»Integrar con:
- Ansible
- Terraform
6. Seguridad
Sección titulada «6. Seguridad»- aislar redes virtuales
- limitar acceso a libvirt
- usar SELinux/AppArmor
7. Monitorización
Sección titulada «7. Monitorización»- uso de CPU/RAM
- I/O discos
- latencias
8. Backup de VMs
Sección titulada «8. Backup de VMs»- copiar discos apagados
- usar snapshots coherentes
9. Overcommit controlado
Sección titulada «9. Overcommit controlado»Evitar saturar host:
- CPU overcommit moderado
- RAM con ballooning
Resumen y Siguiente Paso
Sección titulada «Resumen y Siguiente Paso»Has aprendido a desplegar y gestionar virtualización con KVM, comprendiendo su arquitectura, instalación y operación en entornos Linux. Este conocimiento es la base para construir infraestructuras virtualizadas eficientes y escalables.
El siguiente paso es evolucionar hacia modelos más ligeros y portables:
➡️ 10.2 Containers — Virtualización a nivel de sistema operativo con Docker y tecnologías relacionadas.
