Kernel-based Virtual Machine (KVM)

Kernel-based Virtual Machine (KVM) es un módulo de virtualización gratuito y de código abierto en el kernel de Linux, que permite que el kernel funcione como un hipervisor. Este artículo brinda una visión general detallada sobre KVM, explorando sus orígenes, características internas, hardware emulado, herramientas de gestión gráfica y licencia.

Historia y Desarrollo

KVM fue introducido en la versión 2.6.20 del kernel de Linux, lanzada el 5 de febrero de 2007. Fue desarrollado inicialmente por Avi Kivity en Qumranet, una empresa tecnológica adquirida por Red Hat en 2008. Paolo Bonzini mantiene actualmente KVM.

Características Técnicas

Requisitos y Compatibilidad

KVM requiere un procesador con extensiones de virtualización de hardware, como Intel VT o AMD-V. Aunque originalmente diseñado para procesadores x86, KVM ha sido portado a otras arquitecturas como ESA/390, PowerPC, IA-64 y ARM. El puerto IA-64 fue eliminado en 2014.

Sistemas Operativos Invitados

KVM admite una amplia variedad de sistemas operativos invitados, incluyendo BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS, macOS y otros sistemas Linux. También es compatible con Android 2.2, GNU/Hurd, Minix 3.1.2a, Solaris 10 U3, Darwin 8.0.1 y versiones más recientes de estos, aunque con ciertas limitaciones.

Soporte de Paravirtualización

KVM ofrece soporte de paravirtualización para varios sistemas operativos invitados, incluyendo Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 y Windows, utilizando la API VirtIO. Esto incluye una tarjeta Ethernet paravirtual, controlador de E/S de disco, driver de globo y una interfaz gráfica VGA utilizando drivers SPICE o VMware.

Internos del KVM

KVM proporciona abstracción de dispositivos pero no emula el procesador. Expone la interfaz /dev/kvm, que un host en modo usuario puede utilizar para configurar el espacio de direcciones de la VM invitada, alimentar la simulación de E/S y mapear la visualización de video del invitado de vuelta al host del sistema.

Kernel-based Virtual Machine (KVM) | Kernel based Virtual Machine
Kernel-based Virtual Machine (KVM)

Originalmente, se proporcionó una versión bifurcada de QEMU para lanzar invitados y manejar la emulación de hardware que no es gestionada por el kernel. Ese soporte eventualmente se fusionó con el proyecto principal. Ahora hay numerosos Monitores de Máquina Virtual (VMM) que pueden utilizar la interfaz KVM, incluyendo kvmtool, crosvm y Firecracker.

Internamente, KVM utiliza SeaBIOS como una implementación de código abierto de un BIOS x86 de 16 bits.

Características

KVM ha tenido soporte para CPUs virtuales intercambiables en caliente, gestión dinámica de memoria y Migración en Vivo desde febrero de 2007. También reduce el impacto que las cargas de trabajo intensivas de escritura de memoria tienen en el proceso de migración.

Hardware Emulado

KVM en sí mismo emula muy poco hardware, delegando en aplicaciones de nivel superior como QEMU, crosvm o Firecracker para la emulación de dispositivos. Proporciona los siguientes dispositivos emulados:

  • CPU virtual y memoria.
  • VirtIO.

Herramientas de Gestión Gráfica

  • libvirt soporta KVM.
  • Kimchi: herramienta de gestión de virtualización basada en web para KVM.
  • Virtual Machine Manager: admite la creación, edición, inicio y detención de máquinas virtuales basadas en KVM, así como la migración en vivo o en frío de VM entre hosts.
  • Proxmox Virtual Environment: paquete de gestión de virtualización de código abierto que incluye KVM y LXC.
  • OpenQRM: plataforma de gestión para infraestructuras de centros de datos heterogéneos.
  • GNOME Boxes: interfaz Gnome para gestionar invitados libvirt en Linux.
  • oVirt: herramienta de gestión de virtualización de código abierto para KVM basada en libvirt.

Licencia

El componente de modo kernel de KVM es parte del kernel de Linux, licenciado bajo la GNU General Public License, versión 2.

En conclusión, KVM se destaca como una solución de virtualización integral y versátil, integrada en el kernel de Linux, que ofrece soporte para una amplia gama de sistemas operativos invitados y múltiples opciones de paravirtualización. Su naturaleza de código abierto y su integración con diversas herramientas de gestión lo convierten en una opción atractiva para entornos empresariales y de investigación.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×