C贸mo instalar KVM/QEMU en Manjaro/Archlinux

Compruebe los detalles de conexi贸n de QEMU/KVM

KVM es un acr贸nimo de M谩quina virtual basada en kernel, es una soluci贸n tecnol贸gica para la virtualizaci贸n basada en el m贸dulo kernel de Linux. KVM es una soluci贸n de software de c贸digo abierto que se ejecuta en la m谩quina Linux x86 con el soporte de extensiones de virtualizaci贸n de hardware Intel VT o AMD-V. El m贸dulo de kernel KVM se envi贸 al kernel de Linux desde la versi贸n 2.6.20 y se ha portado a otros sistemas operativos como FreeBSD e Illumos como m贸dulos de kernel cargables.

La tecnolog铆a KVM convertir谩 la m谩quina Linux en una virtualizaci贸n de hipervisor, que se denomina m谩quina host. En la m谩quina host, podr谩 crear m煤ltiples sistemas aislados llamados m谩quinas virtuales (VM). Cada m谩quina virtual tiene su sistema (puede ser Linux, Windows o BSD), tambi茅n tiene hardware privado virtualizado como memoria, CPU, tarjeta de red, disco, gr谩fica, etc.

驴Qu茅 es QEMU?

QEMU o Emulador r谩pido es un emulador y virtualizador de sistemas de c贸digo abierto para la virtualizaci贸n de hardware. Generalmente, se usa como un virtualizador con el m贸dulo kernel KVM para ejecutar m谩quinas virtuales. Para lograr un gran rendimiento para m谩quinas invitadas/m谩quinas virtuales, aprovechar谩 las extensiones de virtualizaci贸n de hardware como Intel VT o AMD-V. La virtualizaci贸n QEMU/KVM se utiliza principalmente como hipervisor en un centro de datos.

En esta gu铆a, aprender谩 a configurar la virtualizaci贸n KVM/QEMU en una m谩quina Manjaro/Archlinux. Adem谩s, aprender谩 a crear la primera m谩quina virtual con la aplicaci贸n GUI 芦virt-manager禄, una interfaz de usuario de escritorio para administrar m谩quinas virtuales.

requisitos previos

  • Un Manjaro/Archlinux con arquitectura x86 o 64 bits.
  • Una CPU/procesador con soporte de virtualizaci贸n (Intel VT o AMD-V).
  • Un usuario no root con privilegios de sudo root.

Comprobaci贸n de la arquitectura del sistema y la compatibilidad con la virtualizaci贸n de la CPU

Primero, verifique la arquitectura de la m谩quina y el soporte de hardware de aceleraci贸n de virtualizaci贸n Intel VT para CPU Intel y AMD-v para CPU AMD.

1. Ejecute el siguiente comando para verificar la arquitectura del sistema de su sistema.

uname -m

Obtendr谩 el siguiente resultado.

Linux machine1 5.4.134-1 #1 SMP PREEMPT Tue Jul 06 08:10:03 UTC 2021 x86_64 GNU/Linux

Como se ve, actualmente estamos usando el sistema Linux con 芦x86_64禄 o 芦64 bits禄 arquitectura y la versi贸n del kernel 芦5.4芦.

2. A continuaci贸n, verifique el soporte de virtualizaci贸n de hardware ejecutando el siguiente comando.

sudo lscpu | grep Virtualization

Para el procesador Intel, ver谩 un resultado similar al que se muestra a continuaci贸n.

Virtualization:聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 VT-x

Y para los procesadores AMD, a continuaci贸n se muestra un resultado similar.

Virtualization:聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 AMD-V

3. Opcionalmente, puede habilitar la virtualizaci贸n anidada en su m谩quina usando el siguiente comando.

sudo modprobe -r kvm_intel
sudo modprobe kvm_intel nested=1

Despu茅s de eso, ejecute el siguiente comando para verificar la virtualizaci贸n anidada.

cat /sys/module/kvm_intel/parameters/nested

Si obtienes la salida como 芦Y禄 o 芦1禄, significa que la funci贸n de virtualizaci贸n anidada est谩 habilitada. De lo contrario, ver谩 el mensaje de error como 芦El fichero o directorio no existe禄.

Instalaci贸n de paquetes QEMU y Virt-Manager

1. Para instalar los paquetes qemu y virt-manager, ejecute el siguiente comando.

sudo pacman -S qemu virt-manager libvirt virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat ebtables libguestfs

Para el sistema manjaro, habr谩 un conflicto de paquetes entre 芦iptables禄 y 芦ebtables芦. Escribe 芦y禄 para eliminar el paquete de iptables predeterminado y reemplazarlo con 芦ebtables禄 y 芦nftables芦.

A continuaci贸n se encuentran los paquetes esenciales que debe conocer:

  • qemu: un emulador y virtualizador de m谩quinas de c贸digo abierto.
  • virt-gerente; Una aplicaci贸n GUI para administrar m谩quinas virtuales.
  • libvirt: una API para controlar motores de virtualizaci贸n como KVM, QEMU, etc.
  • dnsmasq: Reenviador de DNS ligero y servidor DHCP.
  • bridge-utils: Utilidades para configurar el puente ethernet de Linux.
  • libguestfs: conjunto de herramientas para modificar im谩genes de disco de m谩quina virtual (VM).

2. Luego, inicie y habilite el servicio libvirtd usando el siguiente comando.

sudo systemctl enable --now libvirtd

Obtendr谩 un resultado similar al siguiente.

Created symlink /etc/systemd/system/multi-user.target.wants/libvirtd.service 鈫 /usr/lib/systemd/system/libvirtd.service.
Created symlink /etc/systemd/system/sockets.target.wants/virtlockd.socket 鈫 /usr/lib/systemd/system/virtlockd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/virtlogd.socket 鈫 /usr/lib/systemd/system/virtlogd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd.socket 鈫 /usr/lib/systemd/system/libvirtd.socket.
Created symlink /etc/systemd/system/sockets.target.wants/libvirtd-ro.socket 鈫 /usr/lib/systemd/system/libvirtd-ro.socket.

3. Despu茅s de eso, ejecute el siguiente comando para verificar el estado del servicio libvirtd.

sudo systemctl status libvirtd

Y deber铆a ver una salida similar a la siguiente. Como se ve, el servicio libvritd est谩 activo y ejecut谩ndose.

? libvirtd.service - Virtualization daemon
聽聽聽聽 Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; disabled; vendor preset: disabled)
聽聽聽聽 Active: active (running) since Fri 2021-07-23 10:33:25 UTC; 6s ago
TriggeredBy: ? libvirtd-ro.socket
聽聽聽聽聽聽聽聽聽聽聽聽 ? libvirtd.socket
聽聽聽聽聽聽聽聽聽聽聽聽 ? libvirtd-admin.socket
聽聽聽聽聽聽 Docs: man:libvirtd(8)
聽聽聽聽聽聽聽聽聽聽聽聽 https://libvirt.org
聽聽 Main PID: 16828 (libvirtd)
聽聽聽聽聽 Tasks: 19 (limit: 32768)
聽聽聽聽 Memory: 16.4M
聽聽聽聽聽聽聽 CPU: 226ms
聽聽聽聽 CGroup: /system.slice/libvirtd.service
聽聽聽聽聽聽聽聽聽聽聽聽 ??16828 /usr/bin/libvirtd --timeout 120

Permitir que usuarios no root utilicen la virtualizaci贸n KVM/QEMU

De forma predeterminada, solo el usuario 芦ra铆z禄 puede crear y administrar m谩quinas virtuales. Para permitir que los usuarios no root creen y administren m谩quinas virtuales, debe seguir la configuraci贸n de libvirtd a continuaci贸n.

1. Ejecute el siguiente comando para editar la configuraci贸n de libvirtd.

sudo nano /etc/libvirt/libvirtd.conf

Descomenta la opci贸n 芦unix_sock_group禄 e ingrese el nombre del grupo como 芦biblioteca芦.

# Set the UNIX domain socket group ownership. This can be used to
# allow a 'trusted' set of users access to management capabilities
# without becoming root.
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# This is restricted to 'root' by default.
unix_sock_group = "libvirt"

Despu茅s de eso, descomente la opci贸n 芦unix_sock_rw_perms芦y dejar el permiso por defecto禄0770芦.

# Set the UNIX socket permissions for the R/W socket. This is used
# for full management of VMs
#
# This setting is not required or honoured if using systemd socket
# activation.
#
# Default allows only root. If PolicyKit is enabled on the socket,
# the default will change to allow everyone (eg, 0777)
#
# If not using PolicyKit and setting group ownership for access
# control, then you may want to relax this too.
unix_sock_rw_perms = "0770"

Guarde la configuraci贸n presionando el bot贸n Control+x bot贸n y tipo ydespu茅s ingresar.

2. A continuaci贸n, agregue su usuario al grupo 芦biblioteca禄 usando el siguiente comando.

sudo usermod -a -G libvirt username

3. Despu茅s de eso, reinicie el servicio libvirtd para aplicar una nueva configuraci贸n.

sudo systemctl restart libvirtd

Ahora todos los usuarios dentro del grupo 芦libvirt禄 podr谩n crear y configurar m谩quinas virtuales.

Verifique la instalaci贸n de QEMU/KVM con virt-manager

Ahora abre la aplicaci贸n 芦virt-manager禄 del men煤 de su aplicaci贸n.

1. Haz clic en el men煤 芦Editar -> Detalles de conexi贸n禄 en la aplicaci贸n virt-manager.

Compruebe los detalles de conexi贸n de QEMU/KVM

2. En la pesta帽a 芦Visi贸n general禄 ver谩 que virt-manager se conectar谩 autom谩ticamente a 芦qemu:///sistema芦.

virt-manager se conectar谩 autom谩ticamente a QEMU/KVM dentro del sistema

3. Mover a las pesta帽as 芦Redes virtuales禄 y ver谩s el 芦defecto芦configuraci贸n de red.Publicidad

  • Interfaz: virbr0
  • Inicio autom谩tico en el arranque: s铆
  • Direcci贸n IP: 192.168.122.0/24
  • Rango de direcci贸n IP DHCP: 192.168.122.2 – 192.168.122.254
  • Tipo de red: NAT

Configuraci贸n de red predeterminada para QEMU/KVM con NAT

4. Ahora ve a la pesta帽a 芦Almacenamiento芦, y ver谩s el禄defecto芦Configuraci贸n de almacenamiento de grupo.

  • Tipo: directorio del sistema de archivos
  • Tama帽o: Depende de su disco
  • Ubicaci贸n: /var/lib/libvirt/images
  • Inicio autom谩tico en el arranque: s铆

Todas las im谩genes de m谩quinas virtuales estar谩n disponibles en este almacenamiento predeterminado, el directorio 芦/var/lib/libvirt/im谩genes芦.

Almacenamiento QEMU/KVM predeterminado

5. A continuaci贸n, haga clic en el bot贸n 芦+禄 para crear un nuevo almacenamiento de grupo para archivos de imagen ISO. Todos los sistemas operativos de archivos ISO estar谩n disponibles en este grupo.

Siga la configuraci贸n de almacenamiento de la siguiente manera:

  • Nombre: ISO
  • Tipo: dir: directorio del sistema de archivos
  • Ruta de destino: /ruta/directorio/a/su/iso/

Crear nuevo almacenamiento para sistemas operativos de archivos ISO

Haga clic en el 芦Finalizar禄 para completar el proceso. Despu茅s de eso, estar谩 listo para crear nuevas m谩quinas virtuales.

Crear nueva m谩quina virtual usando virt-manager

1. En la aplicaci贸n virt-manager, haga clic en el bot贸n 芦+禄 para crear una nueva m谩quina virtual.

Crear nueva m谩quina virtual con virt-manager

2. Seleccione 芦Medios de instalaci贸n locales禄 para usar la imagen ISO para la instalaci贸n y haga clic en 芦Delantero芦bot贸n para continuar.

Seleccione la instalaci贸n de tipo ISO de medios locales

3. Haga clic en 芦Navegar禄 para seleccionar el archivo ISO.

Explore el sistema operativo ISO que desea instalar

Ahora elija el almacenamiento de la piscina 芦YO ASI禄 y seleccione el archivo iso para la instalaci贸n (para este ejemplo es el 芦Debian 10芦), luego haga clic en 芦Elija volumen芦.

Seleccione el archivo ISO del sistema operativo para el ejemplo de instalaci贸n Debian 10

Desmarque la opci贸n 芦Detectar autom谩ticamente desde el medio/fuente de instalaci贸n芦, escriba el sistema operativo que desea instalar (para este ejemplo es 芦Debian 10芦), luego haga clic en 芦Delantero禄 bot贸n de nuevo para continuar.

Elija el tipo de sistema operativo que desea instalar

4. Elija la cantidad de memoria y CPU para la m谩quina virtual, luego haga clic en 芦Delantero芦.

configuraci贸n de memoria y CPU para m谩quina virtual

5. Elija cu谩nto disco para la m谩quina virtual y haga clic en 芦Delantero芦.

Elija el tama帽o del disco para la m谩quina virtual

6. Vuelva a verificar su configuraci贸n y haga clic en 芦Finalizarbot贸n 禄 para instalar.

Confirme para crear e instalar una m谩quina virtual

7. Ahora la m谩quina virtual est谩 funcionando con la virtualizaci贸n QEMU/KVM y puede continuar con la instalaci贸n del sistema operativo.

La m谩quina virtual est谩 funcionando con la virtualizaci贸n QEMU/KVM

Conclusi贸n

隆Felicidades! ha aprendido a configurar la virtualizaci贸n QEMU/KVM en una m谩quina Manjaro/Archlinux. Adem谩s, c贸mo usar la aplicaci贸n virt-manager para crear m谩quinas virtuales. Ahora puede crear m谩quinas virtuales con su sistema operativo preferido. Puede usar otra distribuci贸n de Linux, Windows o sistema operativo de la familia BSD.

1 respuesta

  1. Jos茅 Miguel dice:

    Compa帽ero, much铆simas gracias por tu gran trabajo. He seguido el tutorial y todo funciona como se espera.

Deja una respuesta

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *