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).

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:

LC_ALL=C lscpu | grep Virtualization

Si el resultado muestra VT-x (Intel) o AMD-V (AMD), estamos listos para continuar.

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.

Ejecuta la instalación:

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

¿Qué estamos instalando exactamente?

  • libvirt: El «cerebro» que gestiona las máquinas virtuales y la comunicación con el kernel.
  • qemu-base: El emulador y virtualizador principal, limitado a lo esencial para mayor ligereza.
  • qemu-guest-agent: Una herramienta que se comunica con el sistema invitado para mejorar el rendimiento y permitir apagados limpios.
  • virt-manager: La interfaz gráfica que nos permite gestionar todo de forma visual y sencilla.
  • openbsd-netcat: Necesario para la gestión de redes y conexiones remotas.
  • edk2-ovmf: Crucial para poder ejecutar máquinas virtuales que utilicen UEFI en lugar de la BIOS tradicional.
  • libayatana-appindicator: Permite que aparezcan iconos de estado en el panel de tu escritorio.

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.

Añadir tu usuario al grupo:

sudo gpasswd -a $USER libvirt

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

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

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.

Activar la red predeterminada:

sudo virsh net-autostart default
sudo virsh net-start default

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

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

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:

sudo ufw route allow in on virbr0
sudo ufw route allow out on virbr0
  • Nota: virbr0 es el nombre de la interfaz de red virtual que crea Libvirt por defecto. Al aplicar estas reglas, permites que los paquetes fluyan correctamente entre tu sistema físico y el virtual.

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!

Deja un comentario