Virtualización con KVM: Instalación

Kernel-based Virtual Machine (KVM) es una tecnología de virtualización que permite al kernel funcionar como un hypervisor.  Para poder usar KVM se necesita un procesador que admita virtualización por hardware. Intel y AMD han desarrollado extensiones para sus procesadores, Intel VT-x (nombre clave Vanderpool) y AMD-V (nombre clave Pacifica) respectivamente.

Para ver si un procesador admite Intel VT-x o AMD-V, tenemos que buscar en /proc/cpuinfo:

$ egrep -c '(vmx|svm)' /proc/cpuinfo
64

Si obtenemos 0 significa que el sistema no soporta la virtualización por hardware, 1 o más indica que el sistema si la soporta (aunque el sistema soporte la virtualización esta podría estar deshabilitada en la BIOS).

Podemos usar la aplicación kvm-ok para determinar si el sistema puede alojar máquinas virtuales KVM aceleradas por hardware.

Instalamos la aplicación:

$ sudo apt install cpu-checker

y ejecutamos el comando:

$ sudo kvm-ok 
INFO: /dev/kvm exists
KVM acceleration can be used

El programa primero determina si /proc/cpuinfo contiene los flags que indican que la CPU tienen la capacidad de virtualización por hardware, Intel VT-x o AMD-V. Después verificará si /dev/kvm existe, y si lo ejecutamos como root verificará los MSR de la CPU para ver si la virtualización por hardware esta desactivada en la BIOS.

Vamos ahora a instalar los paquetes necesarios para usar kvm (concretamente en un Ubuntu 18.04 LTS):

$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Ahora verificamos que la instalación ha añadido nuestro usuario (david en mi caso) al grupo libvirt:

$ getent group libvirt
libvirt:x:117:david

En este caso nos muestra que ha añadido el usuario al grupo correctamente. Si no estuviera el usuario en el grupo lo podemos añadir con:

$ sudo adduser david libvirt


Vamos a verificar que tenemos todo preparado para virtualizar máquinas. Para ello usamos el comando virsh para listar todas las máquinas virtuales que tenemos en el sistema:

$ virsh list --all
 Id    Name                           State
----------------------------------------------------

El comando no muestra ninguna máquina virtual, como era de esperar, pero nos muestra que se ha podido conectar al hypervisor y que tenemos los permisos necesarios. Si recibimos un error al ejecutar virsh es conveniente que reiniciemos la sesión. 

Y esto es todo lo que necesitamos para correr máquinas virtuales en este equipo. 

 

 

Modificado por última vez enViernes, 31 Julio 2020 16:03
(0 votos)

2 comentarios

  • David Quiroga
    David Quiroga Miércoles, 16 Septiembre 2020 10:14 Enlace al Comentario

    En QEMU/KVM es posible usar diferentes formatos, entre los que está vmdk que también es posible usar con Virtualbox. Pero que se pueda usar un formato no significa que que sea la opción ideal para usar de forma regular en entornos KVM. De los formatos que admite QEMU/KVM:
    - raw: a plain file
    - bochs: Bochs disk image format
    - cloop: compressed loopback disk image format
    - cow: User Mode Linux disk image format
    - dmg: Mac disk image format
    - iso: CDROM disk image format
    - qcow: QEMU v1 disk image format
    - qcow2: QEMU v2 disk image format
    - qed: QEMU Enhanced Disk image format
    - vmdk: VMware disk image format
    - vpc: VirtualPC disk image format

    Siempre se recomienda convertir las imágenes a raw o qcow2. Y si ya hablamos de optimizar la configuración para las VM olvídate! Optimizar (incluida la instalación de controladores en el host) se hace para un entorno.
    No uso nunca virtualbox, pero si paso muchas imágenes de Hyper-V o VMware a QEMU/KVM y viceversa y siempre las convierto y optimizo, no mantengo nunca el formato nativo.

  • un usuario inconforme
    un usuario inconforme Martes, 15 Septiembre 2020 15:39 Enlace al Comentario

    Quizás sea una pregunta un tanto tardada, pero, ¿cuál es la mejor configuración de imágenes de disco para usar de forma compartida en QEMU y Virtualbox?, ¿y también la más aceptable configuración de máquina virtual entre ambas aplicaciones?

Deja un comentario

Asegúrese de introducir toda la información requerida, indicada por un asterisco (*). No se permite código HTML.