Instalar Qemu y VirtManager en Arch - 1
Este artículo es más un resumen o unos apuntes para mí, de cómo se hace la instalación de Qemu y VirtManager en Arch, basado en este video que podéis encontrar en Youtube.
Nunca se sabe si puede desaparecer o no, pero yo me lo guardo, por si acaso.
nota: Antes de empezar lo primero es agradecer a Ruben por esta excelente guía de instalación.
Desde hace mucho tiempo, he estado usando VirtualBox, pero últimamente con tanto cambio de equipo, había empezado a notar, que la temperatura de la CPU (incluso con un Xeon) era un poco alta, por no decir, más de lo normal, a la hora de utilizar este programa para virtualizar.
Desde hace un par de semanas, supongo que como tengo Arch, me voy fijando más en todas las noticias que hacen referencia a este sistema, había escuchado a miembros del canal de telegram de atareao donde se comentaba, que habían notado una gran mejora a la hora de usar Qemu en comparación de VirtualBox.
Me puse a buscar información de qué había de cierto en esto, además, de buscar también, cómo se realiza la instalación en Arch y me encontré este estupendo video, donde está explicado todo perfectamente y muy fácilmente de seguir. Pero como ya he dicho antes, me apunto las instrucciones, porque nunca sabes qué puede pasar.
nota: Lo que sí que puedo decir, es que pasadas ya unas cuantas semanas que llevo usando Qemu, puedo decir que sí que hay una diferencia en el consumo de recursos entre Qemu y VirtualBox.
Después de esta pequeña introducción, ahora pasamos a lo más importante, cómo se realiza la instalación.
◇ Capacidad de virtualización de nuestra CPU
Con esta instrucción, sabemos el número de núcleos que tiene nuestro procesador con capacidad de virtualización. A mayor número, mejor nos irá.
usuari@archlinux:~/ grep -Ec '(vmx|svm)' /proc/cpuinfo
◇ Instalación
Ahora viene la parte más importante, la instalación en sí de Qemu y VirtManager más todo lo necesario, yo uso la siguiente instrucción:
usuari@archlinux:~/ update
usuari@archlinux:~/ install virt-manager virt-viewer qemu vde2 iptables-nft nftables dnsmasq bridge-utils swtpm
Aquí hay que tener en cuentas 2 cosas:
- Yo tengo un alias para la actualización de paquetes - update (
sudo pacman -Syy) y otra para instalación - install (sudo pacman -S). - A la hora de instalar qemu, os pedirá si queréis instalar 1) qemu-base, 2) qemu-desktop o 3) qemu-full, en mi caso he probado la opción 2 y la opción 3 y al final escogí la opción 2. Pero es mi elección.
- También os puede aparecer un mensaje donde indique
iptable-nft y iptables están en conflicto. Quitar iptables [s/N], se tiene que escoger la opción S.
También se puede dar el caso, de que haga falta instalar los siguientes paquetes:
usuari@archlinux:~/ install openbsd-netcat demicode iptables libguestfs
Pero a mí no me hizo falta instalarlos.
◇ Configuración de libvirt
Ahora procedemos a la modificación del archivo /etc/libvirt/libvird.conf de la siguiente manera:
usuari@archlinux:~/ sudo nano /etc/libvirt/libvirtd.conf
Buscamos las opciones unix_sock_group y la opción unix_sock_rw_perms y quitamos la almohadilla #, quedando de la siguiente manera:
unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"
◇ Añadimos nuestro usuario al grupo kvm y libvirt
No hace falta explicar mucha cosa de este paso
usuari@archlinux:~/ sudo usermod -a -G kvm,libvirt $(whoami)
usuari@archlinux:~/ newgrp libvirt
◇ Activamos el servicio
No hace falta explicar mucha cosa de este paso
usuari@archlinux:~/ sudo systemctl enable libvirtd.service
usuari@archlinux:~/ sudo systemctl start libvirtd.service
usuari@archlinux:~/ sudo systemctl status libvirtd.service
En la última instrucción, lo único importante, es que ponga active running, si es así, todo está funcionando correctamente. Si no, es que tenemos un problema.
◇ Configuración de qemu.conf
Ahora pasamos a configurar el archivo /etc/libvirt/qemu.con:
usuari@archlinux:~/ sudo nano /etc/libvirt/qemu.conf
Donde tenemos que buscar las opciones user y group y tenemos que poner nuestro nombre de usuario. Esto sirve, para que nuestro usuario pueda funcionar correctamente con qemu, quedando de la siguiente manera:
user = "your username"
group = "your username"
◇ Reiniciar el servicio libvirtd
No hace falta explicar mucha cosa de este paso
usuari@archlinux:~/ sudo systemctl restart libvirtd
◇ Crear red para qemu
Lo que hacemos a continuación, es crear una red, para que la podamos usar en nuestras virtualizaciones que llamamos default:
usuari@archlinux:~/ sudo virsh net-autostart default
◇ Reiniciar el sistema
No hace falta explicar mucha cosa de este paso
usuari@archlinux:~/ sudo reboot
A continuación, voy a explicar cómo se tiene que activar la funcionalidad de poder virtualizar una máquina dentro de otra máquina que ya estamos virtualizando. No le encuentro ningún sentido a esta opción, porque es consumir recursos de un sistema virtualizado para virtualizar otro 🤨.
◇ Habilitar virtualización anidada
La función de virtualización anidada le permite ejecutar máquinas virtuales dentro de una VM. Habilite la virtualización anidada kvm_intel / kvm_amd habilitando el módulo del kernel como se muestra.
usuari@archlinux:~/ sudo modprobe -r kvm_intel
usuari@archlinux:~/ sudo modprobe kvm_intel nested=1
usuari@archlinux:~/ echo "options kvm_intel nested=1" | sudo tee /etc/modprobe.d/kvm-intel.conf
Para verificar que funciona correctamente, se hace a través de la siguiente instrucción:
usuari@archlinux:~/ systool -m kvm_intel -v | grep nested
usuari@archlinux:~/ cat /sys/module/kvm_intel/parameters/nested
En el caso de que tengamos un procesador AMD en vez de Intel, lo único que se tiene que hacer es sustituir kvm_intel por kvm_amd, quedando de la siguiente manera:
usuari@archlinux:~/ sudo modprobe -r kvm_amd
usuari@archlinux:~/ sudo modprobe kvm_amd nested=1
usuari@archlinux:~/ echo "options kvm_amd nested=1" | sudo tee /etc/modprobe.d/kvm-amd.conf
Espero que esto os sirva de ayuda. Ya os digo que a mí sí, porque este artículo lo guardaré como oro en paño 😀.