Guía de Libvirt, QEMU/KVM y Virt-Manager.

Por Julio Mena
Guía de Libvirt, QEMU/KVM y Virt-Manager.

Si buscas el máximo rendimiento al ejecutar sistemas operativos virtuales, las herramientas nativas de Linux son la respuesta. Hoy vamos a configurar un entorno profesional de virtualización usando KVM (el motor del kernel), QEMU (el emulador) y Virt-Manager (la interfaz gráfica).

Autocompletions screen zsh shell


Paso 1: Verificación de Hardware

Antes de instalar nada, debemos confirmar que tu procesador soporta virtualización por hardware y que está activada en la BIOS/UEFI.

Ejecuta este comando:

Terminal window
LC_ALL=C lscpu | grep Virtualization


Autocompletions screen zsh shell


Paso 2: Instalación de paquetes (El enfoque minimalista)

En Arch Linux, tenemos varias opciones para instalar QEMU. Podrías instalar qemu-emulators-full (que incluye emuladores para casi cualquier arquitectura existente) o qemu-desktop, pero en esta guía apostamos por la eficiencia.

Usaremos qemu-base porque incluye solo lo esencial para virtualizar arquitecturas modernas (x86_64), evitando llenar tu disco duro con soporte para procesadores antiguos o exóticos que no vas a utilizar.

Terminal window
sudo pacman -S libvirt qemu-base qemu-guest-agent virt-manager openbsd-netcat edk2-ovmf libayatana-appindicator

¿Qué estamos instalando exactamente?


Paso 3: Configuración de permisos y servicios

Para gestionar tus máquinas virtuales sin necesidad de ser usuario root constantemente, añadiremos tu usuario al grupo de gestión de libvirt.

Terminal window
sudo gpasswd -a $USER libvirt

Autocompletions screen zsh shell

Activar los servicios del sistema: Ahora habilitamos los demonios necesarios para que arranquen automáticamente con el equipo:

Terminal window
sudo systemctl enable --now libvirtd.service
Terminal window
sudo systemctl enable --now virtlogd.service

Autocompletions screen zsh shell


Paso 4: Configuración de Red y Firewall

Para que tus máquinas virtuales tengan acceso a internet de forma automática, necesitamos activar la red virtual de Libvirt y configurar el cortafuegos.

Terminal window
sudo virsh net-autostart default

Autocompletions screen zsh shell

Configurar Firewalld: Si utilizas un cortafuegos como firewalld, es necesario permitir el tráfico para que la red virtual pueda asignar IPs y navegar:

Terminal window
sudo firewall-cmd --permanent --add-service=libvirt
sudo firewall-cmd --permanent --add-service=dhcp
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

Autocompletions screen zsh shell

Configurar UFW: Si en lugar de Firewalld utilizas ufw, la configuración es algo distinta ya que debemos trabajar con las reglas de reenvío (forwarding) para que la máquina virtual pueda recibir conexión desde el exterior:

Terminal window
sudo ufw route allow in on virbr0
sudo ufw route allow out on virbr0

Autocompletions screen zsh shell


Conclusión: Tu hipervisor está listo

Ya tienes un entorno de virtualización nativo, ligero y extremadamente potente. Al haber elegido qemu-base, tu sistema permanece limpio y enfocado en el rendimiento.

En el próximo post, veremos cómo realizar el “passthrough” de discos para que tus máquinas virtuales funcionen casi a la misma velocidad que el sistema real. ¡Sígueme en la página de Facebook para no perdértelo!