Cómo validar la instalación del host KVM
Antes de crear y ejecutar máquinas virtuales con KVM, es fundamental validar que el host cumpla con los requisitos de hardware y software necesarios para garantizar un rendimiento óptimo. Esta guía describe cómo verificar las capacidades del sistema utilizando herramientas como virt-host-validate y virsh.
1. Validando soporte de virtualización en la CPU
KVM requiere procesadores con extensiones de virtualización:
- Intel: VT-x
- AMD: AMD-V
Para verificar si tu CPU es compatible, ejecuta:
grep --color -Ew 'svm|vmx|lm' /proc/cpuinfo
vmx→ CPU Intel con VT-xsvm→ CPU AMD con AMD-Vlm→ soporte de 64 bits
Si tu CPU no cuenta con estas extensiones, solo será posible ejecutar emulación de CPU, lo que reduce significativamente el rendimiento.
2. Comprobando módulos del kernel
Los módulos de kernel necesarios para virtualización deben estar cargados:
lsmod | grep kvm
- Sistemas Intel:
kvm_intel - Sistemas AMD:
kvm_amd
Si no aparecen, cárgalos manualmente:
sudo modprobe kvm
sudo modprobe kvm_intel # Para Intel
sudo modprobe kvm_amd # Para AMD
3. Validando el host con virt-host-validate
La herramienta virt-host-validate ejecuta una serie de pruebas para asegurar que el sistema está preparado para KVM:
sudo virt-host-validate
Un resultado exitoso mostrará PASS en todas las pruebas, incluyendo:
- Virtualización de hardware
- Existencia de dispositivos
/dev/kvm,/dev/vhost-nety/dev/net/tun - Soporte de controladores de CPU y memoria
Si alguna prueba falla, se indicará con FAIL, lo que puede afectar el rendimiento de las VMs.
Ejemplo de salida exitosa
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
Ejemplo de fallo por CPU sin VT-x/AMD-V
QEMU: Checking for hardware virtualization : FAIL (Only emulated CPUs are available, performance will be significantly limited)
4. Validando información del host con virsh
virsh permite consultar detalles del host y capacidades del hypervisor:
virsh nodeinfo
Salida de ejemplo:
CPU model: x86_64
CPU(s): 24
CPU frequency: 4252 MHz
CPU socket(s): 1
Core(s) per socket: 12
Thread(s) per core: 2
NUMA cell(s): 1
Memory size: 62324512 KiB
Para ver las capacidades máximas de las VMs:
virsh domcapabilities | grep -i max
Salida de ejemplo:
<vcpu max='255'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<maxphysaddr mode='passthrough' limit='48'/>
También se pueden listar los tipos de dispositivos soportados por el hypervisor:
virsh domcapabilities | grep diskDevice -A 5
<enum name='diskDevice'>
<value>disk</value>
<value>cdrom</value>
<value>floppy</value>
<value>lun</value>
</enum>
virsh es una herramienta de línea de comandos para la gestión de máquinas virtuales y del hypervisor. Permite administrar VMs, monitorear recursos, gestionar almacenamiento, snapshots y redes virtuales.
