Cómo instalar KVM/QEMU en Manjaro/Archlinux

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.
2. En la pestaña «Visión general» verá que virt-manager se conectará automáticamente a «qemu:///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
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«.
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/
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.
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.
3. Haga clic en «Navegar» para seleccionar el archivo ISO.
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«.
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.
4. Elija la cantidad de memoria y CPU para la máquina virtual, luego haga clic en «Delantero«.
5. Elija cuánto disco para la máquina virtual y haga clic en «Delantero«.
6. Vuelva a verificar su configuración y haga clic en «Finalizarbotón » para instalar.
7. Ahora la máquina virtual está funcionando con la virtualización QEMU/KVM y puede continuar con la instalación del sistema operativo.
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.
Compañero, muchísimas gracias por tu gran trabajo. He seguido el tutorial y todo funciona como se espera.