6 tecnologías de virtualización de código abierto que hay que conocer en 2020

Virtualization Tools, más conocida como Virt Tools, es una colección de seis herramientas de virtualización de código abierto creadas por varios colaboradores para hacer del mundo de la virtualización un lugar mejor.

Algunas de las herramientas, como KVM y QEMU, podrían ser familiares para los entusiastas de Linux, pero herramientas como libvirt y libguestfs probablemente lo sean menos.

En caso de que prefieras aprender viendo vídeos que leyendo, he creado una versión en vídeo de este artículo, a la que puedes acceder en YouTube.

Antes de recorrer las herramientas, es una buena idea conocer alguna terminología esencial de la virtualización. Obtuve muchas de estas definiciones de Wikipedia, con páginas enlazadas en la tabla.

Término Definición
Virtualización En informática, la virtualización se refiere al acto de crear una versión virtual (en lugar de física) de algo, incluyendo plataformas virtuales de hardware informático, dispositivos de almacenamiento y recursos de red informática.
Emulador Un emulador es un hardware o un software que permite que un sistema informático (llamado anfitrión) se comporte como otro sistema informático (llamado invitado).
Máquina virtual (VM) También conocidas como «máquinas invitadas», son emulaciones de ordenadores reales de hardware físico.
Hosts En la virtualización de hardware, un ordenador en el que un hipervisor ejecuta una o más VMs.
Hipervisor Es el software, firmware o hardware del ordenador que crea y ejecuta una VM.
Kernel Es un programa informático que se encuentra en el núcleo del sistema operativo de un ordenador y que tiene un control total sobre todo el sistema.
Daemon Es un programa informático que se ejecuta como un proceso en segundo plano, en lugar de estar bajo el control directo de un usuario interactivo.

Esta tabla resume cada Herramienta Virt, incluyendo la información de la licencia y los enlaces al sitio web y al código fuente de cada herramienta. Gran parte de esta información proviene del sitio web de Virt Tools y del sitio de cada herramienta.

Nombre Qué es Licencia Código fuente
Kernel-basado en el núcleo (KVM) Un módulo de virtualización en el núcleo de Linux que permite al núcleo funcionar como un hipervisor GNU GPL o LGPL Código fuente
Quick Emulador (QEMU) Un emulador y virtualizador de máquinas genérico y de código abierto GPLv2 Código fuente
Libvirt Una biblioteca y demonio que proporciona una de código abierto para gestionar hosts de virtualización GNU Código fuente
Libguestfs Un conjunto de herramientas para acceder y modificar imágenes de disco de VM LGPL, GPL Código fuente
Virt-manager Una interfaz de usuario de escritorio para gestionar máquinas virtuales a través de libvirt GPLv2+ Código fuente
Libosinfo Proporciona una base de datos de información sobre las versiones del sistema operativo para ayudar a configurar de forma óptima el hardware al desplegar las máquinas virtuales LGPLv2+ Código fuente

Kernel-(KVM)

2_kvm.jpg

Sitio web de KVM

(Bryant Son, CC BY-SA 4.0)

KVM es una solución de virtualización completa para Linux en hardware que contiene extensiones de virtualización. KVM proporciona la virtualización de hardware para una amplia variedad de sistemas operativos invitados, incluyendo Linux, Windows, macOS, ReactOS y Haiku. Usando KVM, puedes ejecutar múltiples VMs en imágenes de Linux o Windows no modificadas. Cada VM tiene hardware virtualizado privado: una tarjeta de red, un disco, un adaptador de gráficos, etc.

La mayoría de las veces, no interactuará directamente con KVM. En su lugar, debe utilizar QEMU, virt-manager u otra herramienta de gestión de la virtualización para aprovechar KVM.

Puede encontrar la documentación completa en el sitio web de KVM, así como acceder a su código fuente.

Emulador rápido (QEMU)

3_qemu.jpg

Sitio web de QEMU

(Bryant Son, CC BY-SA 4.0)

QEMU es un emulador y virtualizador de máquinas genérico y de código abierto. Cuando se utiliza como emulador, QEMU puede ejecutar sistemas operativos y programas hechos para una máquina (por ejemplo, una placa ARM) en una máquina diferente (por ejemplo, su propio PC x86_64). Cuando se utiliza como virtualizador, QEMU consigue un rendimiento casi nativo al ejecutar el código invitado directamente en la CPU anfitriona utilizando KVM.

QEMU es compatible con múltiples sistemas operativos, y su proceso de instalación es tan fácil como ejecutar unos simples comandos; aquí puedes ver cómo instalar QEMU en macOS con Homebrew.

3_1_qemuinstall.jpg

Información sobre la instalación de QEMU en macOS

(Bryant Son, CC BY-SA 4.0)

Después de instalarlo, aprende a usarlo leyendo su documentación, y también puedes acceder a su código fuente.

Libvirt

4_libvirt.jpg

Sitio web de Libvirt

(Bryant Son, CC BY-SA 4.0)

Libvirt es una librería y demonio que proporciona una API estable de código abierto para gestionar hosts de virtualización. Se dirige a múltiples hipervisores, incluyendo QEMU, KVM, LXC, Xen, OpenVZ, VMWare ESX, VirtualBox, y más.

Otra cosa interesante sobre libvirt es que KubeVirt, un proyecto de código abierto para la creación y gestión de máquinas virtuales dentro de la plataforma Kubernetes, utiliza en gran medida Libvirt. (Cubriré KubeVirt en un futuro artículo.) Libvirt es un proyecto interesante para explorar, y puedes encontrar una plétora de información en su sitio web oficial, así como descargar su código fuente.

Libguestfs

5_libguestfs.jpg

Sitio web de Libguestfs

(Bryant Son, CC BY-SA 4.0)

Libguestfs es un conjunto de herramientas para acceder y modificar imágenes de disco de VM. Puedes usarlo para ver y editar archivos dentro de los invitados; programar cambios en las VMs; monitorizar las estadísticas de uso/libertad de disco; crear invitados, máquinas físicas a virtuales (P2V), o virtuales a virtuales (V2V); realizar copias de seguridad; clonar VMs; construir VMs; formatear discos; cambiar el tamaño de los discos; y mucho más. Lo he estado usando recientemente mientras trabajaba en un proyecto basado en KubeVirt llamado OpenShift Virtualization, del que puedes aprender más en mi video tutorial.

El sitio web oficial de Libguestfs contiene una extensa documentación sobre cómo usar cada comando, y también puedes descargar su código fuente en GitHub.

Virt-manager

6_virtualmanager.jpg

Sitio web deirt-manager

(Bryant Son, CC BY-SA 4.0)

Virt-manager es una interfaz de usuario de escritorio para gestionar VMs a través de libvirt. Se dirige principalmente a las VMs KVM pero también gestiona Xen y LXC. También incluye la herramienta de aprovisionamiento de línea de comandos virt-install. Piensa en virt-manager como una herramienta de gestión fácil de usar para tus máquinas virtuales. Por ejemplo, puede utilizar virt-manager para ejecutar un entorno Microsoft Windows en una estación de trabajo Linux o viceversa.

El código fuente de virt-manager está disponible en GitHub y la documentación está en su sitio web. En este momento, virt-manager sólo está disponible para plataformas Linux.

Libosinfo

7_libosinfo.jpg

Sitio web de Libosinfo

(Bryant Son, CC BY-SA 4.0)

Libosinfo proporciona una base de datos con información sobre las versiones del sistema operativo para ayudar a configurar el hardware al desplegar las máquinas virtuales. Incluye una librería en C para consultar la información de la base de datos, que también es accesible desde cualquier lenguaje soportado por la introspección GObject. Como se puede adivinar, libosinfo es más bien un bloque de construcción para permitir la funcionalidad de un sistema operativo, pero bastante importante.

El código fuente de libosinfo está disponible en GitLab, y su documentación se puede encontrar en su sitio web.

Conclusión

Deja una respuesta

Tu dirección de correo electrónico no será publicada.