La máquina virtual basada en kernel ( KVM ) es un módulo de virtualización en el kernel de Linux que permite que el kernel funcione como un hipervisor . Se fusionó con el núcleo principal de Linux en la versión 2.6.20, que se lanzó el 5 de febrero de 2007. [1] KVM requiere un procesador con extensiones de virtualización de hardware , como Intel VT o AMD-V . [2] KVM también se ha adaptado a otros sistemas operativos como FreeBSD [3] e illumos [4] en forma de módulos de kernel cargables.
Autor (es) original (es) | Qumranet |
---|---|
Desarrollador (es) | La comunidad del kernel de Linux |
Repositorio | |
Escrito en | C |
Sistema operativo | Tipo Unix |
Plataforma | BRAZO , IA-64 , PowerPC , S / 390 , x86 , x86-64 |
Tipo | Hipervisor |
Licencia | GNU GPL o LGPL |
Sitio web | www |
KVM se diseñó originalmente para procesadores x86 , pero desde entonces se ha adaptado a S / 390 , [5] PowerPC , [6] IA-64 y ARM . [7]
KVM proporciona virtualización asistida por hardware para una amplia variedad de sistemas operativos invitados, incluidos Linux, BSD , Solaris , Windows , Haiku , ReactOS , Plan 9 , AROS Research Operating System y macOS . [8] [9] Además, Android 2.2, GNU / Hurd [10] ( 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, se sabe que funcionan con ciertas limitaciones. [11]
Además, KVM proporciona soporte de paravirtualización para Linux, OpenBSD , [12] FreeBSD, [13] NetBSD , [14] Plan 9 [15] e invitados de Windows usando la API VirtIO . [16] Esto incluye una tarjeta Ethernet paravirtual , un controlador de E / S de disco, [17] controlador de globo y una interfaz gráfica VGA que utiliza controladores SPICE o VMware .
Historia
Avi Kivity comenzó el desarrollo de KVM a mediados de 2006 en Qumranet , una empresa de nueva creación de tecnología [18] que fue adquirida por Red Hat en 2008. [19]
KVM apareció en octubre de 2006 [20] y se fusionó con la línea principal del kernel de Linux en la versión 2.6.20 del kernel, que se publicó el 5 de febrero de 2007. [1]
KVM es mantenido por Paolo Bonzini. [21]
Internos
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 máquina virtual 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 al huésped E / S simuladas.
- Vuelva a asignar la pantalla de video del invitado al host del sistema.
En Linux, QEMU versiones 0.10.1 y posteriores es uno de esos hosts de espacio de usuario. QEMU usa KVM cuando está disponible para virtualizar invitados a velocidades casi nativas, pero por lo demás recurre a la emulación de solo software.
Internamente, KVM usa SeaBIOS como una implementación de código abierto de un BIOS x86 de 16 bits . [23]
Características
KVM admite vCPU de conexión en caliente , [24] administración de memoria dinámica [25] y migración en vivo desde febrero de 2007. [26] [27] impactos de la carga de trabajo intensiva de escritura de memoria en el proceso de migración [28]
Hardware emulado
KVM en sí mismo emula muy poco hardware, en lugar de ello difiere 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:
- CPU y memoria virtuales [29]
- 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 de arrastrar y soltar de máquinas virtuales entre hosts.
- Entorno virtual Proxmox : 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 heterogéneas de centros de datos.
- GNOME Boxes : interfaz Gnome para administrar invitados libvirt en Linux.
- oVirt : herramienta de gestión de virtualización de código abierto para KVM construida sobre libvirt
Licencia
El componente en modo kernel de KVM es parte del kernel de Linux , que a su vez tiene licencia GNU General Public License, versión 2 . [30]
Ver también
- CloudStack
- Comparación de software de virtualización de plataformas
- Combinación de la misma página del kernel (KSM)
- Lguest
- libguestfs
- libvirt
- multipass
- Alianza de virtualización abierta
- OpenNebula
- OpenStack
- oVirt
- Proxmox VE
- Virtualización de Red Hat
- Vx32
- Xen
Referencias
- ^ a b "Kernel 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 utilizar KVM?
- ^ "Informe de estado trimestral de FreeBSD: portando Linux KVM a FreeBSD" .
- ^ "KVM en illumos" .
- ^ "Gmane - correo a noticias y viceversa" . Archivado desde el original el 29 de septiembre de 2007 . Consultado el 7 de mayo de 2007 .
- ^ Gmane Loom 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 .
- ^ "Wiki de KVM: estado de soporte de invitado" . Consultado el 27 de mayo de 2007 .
- ^ "Ejecución de 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 de manual de OpenBSD virtio (4)" . Consultado el 4 de febrero de 2018 .
- ^ "paquetes binarios virtio para FreeBSD" . Consultado el 29 de octubre de 2012 .
- ^ "Página de manual de NetBSD virtio (4)" . 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 16 de abril de 2014 .
- ^ "Destino SCSI para KVM wiki" . linux-iscsi.org. 2012-08-07 . Consultado el 12 de agosto de 2012 .
- ^ Entrevista: Avi Kivity Archivado el 26 de abril de 2007 en la Wayback Machine en KernelTrap
- ^ "Red Hat avanza en el liderazgo de virtualización con la adquisición de Qumranet, Inc." . Red Hat . 4 de septiembre de 2008 . Consultado el 16 de junio de 2015 .
- ^ https://www.itworldcanada.com/article/kvm-15-equipped-with-live-migration/7901
- ^ 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. 2013-12-21 . Consultado el 16 de junio de 2014 .
- ^ https://access.redhat.com/articles/1339413
- ^ https://www.linux-kvm.org/page/FAQ#Is_dynamic_memory_management_for_guests_supported.3F
- ^ https://lwn.net/Articles/223754/
- ^ https://www.linux-kvm.org/page/Migration
- ^ https://www.berrange.com/posts/2016/05/12/analysis-of-techniques-for-ensuring-migration-completion-with-kvm/
- ^ https://www.kernel.org/doc/html/latest/virt/kvm/api.html#kvm-create-irqchip
- ^ "Reglas de licenciamiento del kernel de Linux - La 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
- Página web oficial
- Mejores prácticas para la máquina virtual basada en kernel , IBM, segunda edición, abril de 2012
- Virtio-blk Performance Improvement , KVM Forum 2012, 8 de noviembre de 2012, por Asias He
- Wikibook QEMU y KVM
- crosvm - monitor de máquina virtual de Chrome OS
- Firecracker VMM para KVM