9.2.2.1.2. KVM

El núcleo de Linux, desde su versión 2.6.20, incluye una solución de virtualización completa llamada KVM, que lo convierte en un hipervisor de tipo 1. Este módulo del kernel, junto al software QEmu, permite crear máquinas virtuales bastante eficientes que aprovechan la aceleración por hardware.

Sin embargo, QEmu es una CLI bastante confusa y complicada de utilizar (ya tendremos tiempo de comprobarlo), así que una buena alternativa es libvirt, una biblioteca capaz de gestionar distintas plataformas de virtualización (QEmu entre ellas) y sobre la que funciona una completa GUI llamada virt-manager.

Ver también

Esta guía introductoria de Red Hat explica más detalladamente estos conceptos.

Antes de empezar, no obstante, es necesario comprobar si nuestro sistema soporta aceleración por hardware, para lo cual basta con consultar la información del procesador:

$ grep -qE '\b(vmx|svm)\b' /proc/cpuinfo && echo "SI"
SI

Si observamos un «SI» es que existe soporte para la aceleración de AMD (AMD-V, SVM en Linux) o la de Intel (VT-X, VMX en Linux). Si no es así, entonces es muy probable que el equipo tenga soporte para la virtualización (todos los procesadores desde hace mucho tiempo la incluyen), pero que esté deshabilitada en la BIOS y haya que meterse en ella para habilitarla.

9.2.2.1.2.1. QEmu

Para su instalación no hay que más instalar el paquete adecuado:

# apt install qemu-system-x86

donde suponemos que estamos en un arquitectura amd64 y virtualizaremos tal arquitectura.

9.2.2.1.2.2. libvirt

La aplicación libvirt es un conjunto de herramientas que se encarga de la gestión de distintas plataformas de virtualización y, entre otras:

A diferencia de otras plataformas que también puede gestionar, QEmu no es una herramienta sencilla pensada para su uso directo, por lo que es habitual que los usuarios de libvirt lo hagan para usar QEmu/KVM. Así pues, aunque no sea una herramienta exclusiva, incluimos su estudio por las ventajas que ofrece:

  • La creación y gestión de las máquinas es mucho más facil, más si usamos su interfaz gráfica virt-manager.

  • libvirt almacena y gestiona configuraciones de máquinas virtuales a diferencia de QEmu en que hay que establecer tal configuración cada vez que se arranca una.

  • Si el huésped es un Linux, podemos optar por utilizar como backend LXC para ahorrar recursos.

Ver también

El texto desarrolla el uso de libvirt como frontend de QEmu. Su uso con LXC se documenta más adelante como parte de las explicaciones sobre LXC.

Para instalarlo podemos hacer simplemente:

# apt install virt-manager

que instalará la interfaz gráfica y, por dependencias, los demás paquetes necesarios. Además, es conveniente que añadamos el usuario al grupo libvirt:

# adduser misuario libvirt