Instalar Qemu y VirtManager en Arch - 1

· 5 min · @Linux · #Arch #QEMU

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

◇ Referencia