KVM se diseñó originalmente para procesadores x86 , pero desde entonces se ha portado a ESA/390 , [5] PowerPC , [6] IA-64 y ARM . [7] [8]
El puerto IA-64 se eliminó en 2014. [9]
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, 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 recientes de los enumerados, Se sabe que 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
Una descripción general de alto nivel del entorno de virtualización KVM/QEMU [24] : 3
KVM proporciona abstracción de dispositivos pero no emulación de procesador. Expone la interfaz /dev/kvm , que un host en modo de usuario puede usar para:
Configure el espacio de direcciones de la VM invitada. El host también debe proporcionar una imagen de firmware (generalmente un BIOS personalizado al emular PC) que el invitado puede usar para iniciar su sistema operativo principal.
Alimente las E/S simuladas del invitado.
Asigne la pantalla de video del huésped nuevamente al host del sistema.
Originalmente, se proporcionó una versión bifurcada de QEMU para lanzar invitados y manejar la emulación de hardware que no es manejada por el kernel. Ese apoyo finalmente se fusionó con el proyecto upstream. En la actualidad existen 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 dinámica de memoria, [27] y Live Migration 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
El propio KVM emula muy poco hardware y, en lugar de ello, recurre a una aplicación cliente de nivel superior como QEMU , crosvm o Firecracker para la emulación de dispositivos.
KVM proporciona los siguientes dispositivos emulados:
Kimchi : herramienta de gestión de virtualización basada en web para KVM
Virtual Machine Manager : admite la creación, edición, inicio y parada de máquinas virtuales basadas en KVM, así como la migración en vivo o en frío de máquinas virtuales mediante arrastrar y soltar 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 completo, una GUI de administración remota basada en web, una pila de clúster HA, almacenamiento unificado, red flexible y soporte comercial opcional.
OpenQRM – plataforma de gestión para gestionar infraestructuras de centros de datos heterogéneas
GNOME Boxes : interfaz de Gnome para administrar invitados libvirt en Linux
oVirt : herramienta de gestión de virtualización de código abierto para KVM construida sobre libvirt
^ ab "Núcleo de Linux 2.6.20, Sección 2.2. Soporte de virtualización a través de KVM". kernelnewbies.org . 2007-02-05 . Consultado el 16 de junio de 2014 .
^ Preguntas frecuentes sobre KVM: ¿Qué necesito para usar KVM?
^ "Informe de estado trimestral de FreeBSD: migración de KVM de Linux a FreeBSD".
^ "KVM en ilumos".
^ "Gmane - Enviar por correo a noticias y viceversa". Archivado desde el original el 29 de septiembre de 2007 . Consultado el 7 de mayo de 2007 .
^ Telar Gmane Archivado el 29 de septiembre de 2007 en la 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 ACM sobre soporte arquitectónico para lenguajes de programación y sistemas operativos.
^ "Red Hat avanza en el liderazgo en virtualización con la adquisición de Qumranet, Inc.". Sombrero rojo . 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/12/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é» Archivo del blog »Análisis de técnicas para asegurar la finalización de la migración con KVM".
^ "La documentación API definitiva de KVM (máquina virtual basada en kernel): la documentación del kernel de Linux".
^ "Reglas de licencia 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