stringtranslate.com

Máquina virtual basada en kernel

La máquina virtual basada en el núcleo ( KVM ) es un módulo de virtualización libre y de código abierto en el núcleo de Linux que permite que el núcleo 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 portado a otros sistemas operativos como FreeBSD [3] e illumos [4] en forma de módulos de núcleo cargables.

KVM fue diseñado originalmente para procesadores x86 , pero desde entonces se ha adaptado 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, 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]

Además, KVM proporciona soporte de paravirtualización para Linux, OpenBSD , [14] FreeBSD, [15] NetBSD , [16] Plan 9 [17] y huéspedes de Windows que utilizan la API VirtIO . [18] Esto incluye una tarjeta Ethernet paravirtual , un controlador de E/S de disco, [19] un 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 tecnológica emergente [20] que fue adquirida por Red Hat en 2008. [21]

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 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:

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.

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

Características

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:

Herramientas de gestión gráfica

libvirt admite KVM

Licencias

El componente de modo kernel de KVM es parte del kernel de Linux , licenciado bajo la Licencia Pública General GNU, versión 2. [32 ]

Véase también

Referencias

  1. ^ ab "Núcleo 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 .
  2. ^ Preguntas frecuentes sobre KVM: ¿Qué necesito para utilizar KVM?
  3. ^ "Informe de situación trimestral de FreeBSD: Portación de Linux KVM a FreeBSD".
  4. ^ "KVM en illumos".
  5. ^ "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 .
  6. ^ Telar de Gmane Archivado el 29 de septiembre de 2007 en Wayback Machine
  7. ^ "Proyecto de código abierto KVM/ARM". Archivado desde el original el 10 de marzo de 2013. Consultado el 1 de noviembre de 2017 .
  8. ^ 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.
  9. ^ "kernel/git/torvalds/linux.git: KVM: ia64: eliminar".
  10. ^ "KVM wiki: Estado de soporte para invitados" . Consultado el 27 de mayo de 2007 .
  11. ^ "Ejecutar Mac OS X como invitado QEMU/KVM" . Consultado el 20 de agosto de 2014 .
  12. ^ "estado". Gnu.org . Consultado el 12 de febrero de 2014 .
  13. ^ "Estado de soporte para invitados - KVM". Linux-kvm.org . Consultado el 12 de febrero de 2014 .
  14. ^ "Página del manual de OpenBSD virtio(4)" . Consultado el 4 de febrero de 2018 .
  15. ^ "Paquetes binarios de Virtio para FreeBSD" . Consultado el 29 de octubre de 2012 .
  16. ^ "Página del manual de NetBSD virtio(4)". Archivado desde el original el 13 de noviembre de 2019. Consultado el 15 de julio de 2013 .
  17. ^ "plan9front" . Consultado el 11 de febrero de 2013 .
  18. ^ "Una API para E/S virtual: virtio". LWN.net . 2007-07-11 . Consultado el 2014-04-16 .
  19. ^ "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 .
  20. ^ Entrevista: Avi Kivity Archivado el 26 de abril de 2007 en Wayback Machine en KernelTrap
  21. ^ "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 .
  22. ^ "KVM 15 equipado con migración en vivo | IT World Canada News". 7 de marzo de 2007.
  23. ^ 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 .
  24. ^ 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 ]
  25. ^ "SeaBIOS". seabios.org. 21 de diciembre de 2013. Consultado el 16 de junio de 2014 .
  26. ^ "Conexión en caliente de CPU virtuales con Red Hat Enterprise Virtualization Manager".
  27. ^ "Preguntas frecuentes - KVM".
  28. ^ "Lanzamiento de KVM-15 [LWN.net]".
  29. ^ "Migración - KVM".
  30. ^ "Daniel P. Berrangé » Blog Archive » Análisis de técnicas para asegurar la finalización de la migración con KVM".
  31. ^ "La documentación definitiva de la API de KVM (máquina virtual basada en kernel): la documentación del kernel de Linux".
  32. ^ "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

Enlaces externos