Instalación de QEMU/KVM + libvirt en Debian 12

kvm

¿Que son QEMU, KVM y libvirt?

QEMU (Quick Emulator) es un emulador de sistemas informáticos de código abierto que puede ejecutar máquinas virtuales y emular procesadores.

KVM (Kernel-based Virtual Machine) es una herramienta de virtualización de código abierto para Linux. KVM convierte el kernel de Linux en un hipervisor de tipo 1 lo que permite ejecutar múltiples máquinas virtuales aisladas en un solo host físico.

Libvirt es una API de virtualización de código abierto que proporciona herramientas para administrar las máquinas virtuales y otros recursos de virtualización, como el almacenamiento y la red.

Requisitos

  • Sistema Debian 12 actualizado.
  • Privilegios de root o sudo.
  • Acceso a internet.

Instalacion

Para instalar QEMU/KVM + libvirt en Debian 12, tenemos que ejecutar el siguiente comando:

root@virtualization:~# qemu-system libvirt-clients libvirt-daemon-system -y

Verificar la instalacion

Para verificar la instalacion de QEMU/KVM + libvirt en Debian 12, tenemos que ejecutar el siguiente comando:

root@virtualization:~# virsh version

Compilada con biblioteca: libvirt 9.0.0
Uso de biblioteca: libvirt  9.0.0
Utilizando API: QEMU 9.0.0
Ejecutando hypervisor: QEMU 7.2.5

Conexión con libvirt

En libvirt, podemos realizar en un equipo la conexión de forma local (usuario no privilegiado) o privilegiada (usuario root).

Conexión no privilegiada

Para realizar una conexión no privilegiada, tenemos que ejecutar el siguiente comando:

root@virtualization:~# virsh -c qemu:///session

Con esta conexión, podemos manejar los recursos virtualizados del usuario que estamos utilizando.

Nota: Para la conexión no privilegiada no es realmente necesario especificar la url ‘qemu:///session’, ya que es la conexión por defecto.

Conexión privilegiada

Para realizar la conexión privilegiada, tenemos que ejecutar el siguiente comando:

root@virtualization:~# virsh -c qemu:///system

Con esta conexión, podemos manejar los recursos virtualizados del usuario root.

En este caso, si es necesario especificar la url ‘qemu:///system’, ya que no es la conexión por defecto.

Para que un usuario no privilegiado pueda realizar la conexión privilegiada, tenemos que añadirlo al grupo ’libvirt’.

root@virtualization:~# adduser usuario libvirt

Creación de una maquina virtual

Para crear una maquina virtual primero necesitamos instalar el paquete virtinst.

root@virtualization:~# apt install virtinst -y

Para instalar una maquina virtual, tenemos que ejecutar el siguiente comando:

usuario@virtualization:~/Descargas$ virt-install --connect qemu:///session  --virt-type kvm  --name debian12  --cdrom debian-12.0.0-amd64-netinst.i
so  --os-variant debian11  --disk size=10  --memory 1024  --vcpus 1
  • –connect qemu:///session: Conexión no privilegiada.
  • –virt-type kvm: Tipo de virtualización.
  • –name debian12: Nombre de la maquina virtual.
  • –cdrom debian-12.0.0-amd64-netinst.iso: Imagen ISO de Debian 12.
  • –os-variant debian11: Sistema operativo. (Podemos consultar las variantes disponibles con el comando ‘virt-install –os-variant list’)
  • –disk size=10: Tamaño del disco duro de la maquina virtual.
  • –memory 1024: Memoria RAM de la maquina virtual.
  • –vcpus 1: Numero de CPUs de la maquina virtual.

Una vez ejecutado el comando, nos debería aparecer automáticamente una ventana con el instalador de la máquina. En caso de que no aparezca, podemos hacerlo manualmente con el siguiente comando:

usuario@virtualization:~/Descargas$ virt-viewer debian12

También podemos listar las maquinas virtuales que tenemos instaladas con el siguiente comando:

usuario@virtualization:~/Descargas$ virsh list

 Id   Nombre     Estado
-----------------------------
 1    debian12   ejecutando

Podemos borrar una maquina virtual con los siguientes comandos:

usuario@virtualization:~/Descargas$ virsh destroy debian12
usuario@virtualization:~/Descargas$ virsh undefine debian12

Con esto, ya hemos finalizado la instalación y prueba de funcionamiento de QEMU/KVM + libvirt en Debian 12.