KVM admite la virtualización asistida por hardware para una amplia variedad de sistemas operativos invitados, incluidos BSD , Solaris , Windows , Haiku , ReactOS , Plan 9 , AROS , macOS e incluso otros sistemas Linux. [10] [11] Además, se sabe que Android 2.2, GNU/Hurd [12] ( Debian K16), Minix 3.1.2a, Solaris 10 U3 y Darwin 8.0.1, junto con otros sistemas operativos y algunas versiones más nuevas de estos enumerados, funcionan con ciertas limitaciones. [13]
KVM apareció en octubre de 2006 [22] y se fusionó con la línea principal del kernel de Linux en la versión 2.6.20 del kernel, que se lanzó el 5 de febrero de 2007. [1]
KVM es mantenido por Paolo Bonzini. [23]
Internos
KVM ofrece abstracción de dispositivos, pero no emulación de procesador. Expone la interfaz /dev/kvm , que un host en modo usuario puede utilizar para:
Configurar el espacio de direcciones de la máquina virtual invitada. El host también debe proporcionar una imagen de firmware (normalmente, un BIOS personalizado cuando se emulan PC) que el invitado puede usar para iniciar su sistema operativo principal.
Alimente al invitado con E/S simulada.
Asigna la pantalla de video del invitado nuevamente al host del sistema.
Originalmente, se proporcionó una versión bifurcada de QEMU para iniciar invitados y manejar la emulación de hardware que no es manejada por el núcleo. Ese soporte finalmente se fusionó con el proyecto original. Ahora hay numerosos monitores de máquinas virtuales (VMM) que pueden utilizar la interfaz KVM, incluidos kvmtool, crosvm y Firecracker , y numerosos VMM especializados creados con marcos como rust-vmm.
KVM ha tenido soporte para vCPU intercambiables en caliente , [26] administración de memoria dinámica, [27] y migración en vivo desde febrero de 2007. [28] [29] También reduce el impacto que las cargas de trabajo de escritura intensiva en memoria tienen en el proceso de migración. [30]
Hardware emulado
KVM en sí mismo emula muy poco hardware y, en cambio, delega la emulación del dispositivo en una aplicación cliente de nivel superior, como QEMU , crosvm o Firecracker .
KVM proporciona los siguientes dispositivos emulados:
CPU y memoria virtuales [31]
VirtIO
Herramientas de gestión gráfica
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 mediante arrastrar y soltar de máquinas virtuales entre hosts.
Proxmox Virtual Environment : un paquete de gestión de virtualización de código abierto que incluye KVM y LXC . Tiene un instalador básico, una interfaz gráfica de usuario de gestión remota basada en la web, una pila de clúster de alta disponibilidad, almacenamiento unificado, red flexible y soporte comercial opcional.
OpenQRM : plataforma de gestión para gestionar infraestructuras de centros de datos heterogéneos
GNOME Boxes : interfaz de Gnome para administrar invitados de libvirt en Linux
oVirt : herramienta de gestión de virtualización de código abierto para KVM basada en libvirt
^ ab "Kernel Linux 2.6.20, Sección 2.2. Soporte de virtualización a través de KVM". kernelnewbies.org . 2007-02-05 . Consultado el 2014-06-16 .
^ Preguntas frecuentes sobre KVM: ¿Qué necesito para utilizar KVM?
^ "Informe de situación trimestral de FreeBSD: Portación de Linux KVM a FreeBSD".
^ "KVM en illumos".
^ "Gmane - Mail To News And Back Again" (Enviar correo a las noticias y viceversa). Archivado desde el original el 29 de septiembre de 2007. Consultado el 7 de mayo de 2007 .
^ Telar de Gmane Archivado el 29 de septiembre de 2007 en Wayback Machine
^ "Proyecto de código abierto KVM/ARM". Archivado desde el original el 10 de marzo de 2013. Consultado el 1 de noviembre de 2017 .
^ Christoffer Dall; Jason Nieh (2014). "KVM/ARM: El diseño y la implementación del hipervisor ARM de Linux". Conferencia internacional de la ACM sobre soporte arquitectónico para lenguajes de programación y sistemas operativos.
^ "KVM wiki: Estado de soporte para invitados" . Consultado el 27 de mayo de 2007 .
^ "Ejecutar Mac OS X como invitado QEMU/KVM" . Consultado el 20 de agosto de 2014 .
^ "estado". Gnu.org . Consultado el 12 de febrero de 2014 .
^ "Estado de soporte para invitados - KVM". Linux-kvm.org . Consultado el 12 de febrero de 2014 .
^ "Página del manual de OpenBSD virtio(4)" . Consultado el 4 de febrero de 2018 .
^ "Paquetes binarios de Virtio para FreeBSD" . Consultado el 29 de octubre de 2012 .
^ "Página de manual de NetBSD virtio(4)". Archivado desde el original el 13 de noviembre de 2019. Consultado el 15 de julio de 2013 .
^ "plan9front" . Consultado el 11 de febrero de 2013 .
^ "Una API para E/S virtual: virtio". LWN.net . 2007-07-11 . Consultado el 2014-04-16 .
^ "Objetivo SCSI para la wiki de KVM". linux-iscsi.org. 7 de agosto de 2012. Archivado desde el original el 5 de junio de 2020. Consultado el 12 de agosto de 2012 .
^ "Red Hat avanza en su liderazgo en virtualización con la adquisición de Qumranet, Inc." Red Hat . 4 de septiembre de 2008 . Consultado el 16 de junio de 2015 .
^ "KVM 15 equipado con migración en vivo | IT World Canada News". 7 de marzo de 2007.
^ Libby Clark (7 de abril de 2015). "Historias de éxito de Git y consejos del mantenedor de KVM Paolo Bonzini". Linux.com . Archivado desde el original el 15 de marzo de 2016. Consultado el 17 de junio de 2015 .
^ Khoa Huynh; Stefan Hajnoczi (2010). "Discusión sobre el rendimiento de la pila de almacenamiento KVM/QEMU" (PDF) . IBM . Conferencia de fontaneros de Linux . Consultado el 3 de enero de 2015 .[ enlace muerto permanente ]
^ "SeaBIOS". seabios.org. 21 de diciembre de 2013. Consultado el 16 de junio de 2014 .
^ "Conexión en caliente de CPU virtuales con Red Hat Enterprise Virtualization Manager".
^ "Preguntas frecuentes - KVM".
^ "Lanzamiento de KVM-15 [LWN.net]".
^ "Migración - KVM".
^ "Daniel P. Berrangé » Blog Archive » Análisis de técnicas para asegurar la finalización de la migración con KVM".
^ "La documentación definitiva de la API de KVM (máquina virtual basada en kernel): la documentación del kernel de Linux".
^ "Reglas de licencias del kernel de Linux: documentación del kernel de Linux" www.kernel.org . Archivado desde el original el 7 de marzo de 2020 . Consultado el 6 de enero de 2020 .
Bibliografía
Amit Shah (2 de noviembre de 2016). "Diez años de KVM". lwn.net . Consultado el 10 de febrero de 2017 .
Enlaces externos
Mejores prácticas para la máquina virtual basada en kernel Archivado el 6 de noviembre de 2019 en Wayback Machine , IBM, segunda edición, abril de 2012
Mejora del rendimiento de Virtio-blk, Foro KVM 2012, 8 de noviembre de 2012, por Asias He
Wikilibro QEMU y KVM
crosvm - Monitor de máquinas virtuales de Chrome OS