stringtranslate.com

Máquina virtual basada en kernel

La máquina virtual basada en kernel ( 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 . Se fusionó con el kernel 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 ha sido portado a otros sistemas operativos como FreeBSD [3] e illusmos [4] en forma de módulos de kernel cargables.

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]

Además, KVM proporciona soporte de paravirtualización para Linux, OpenBSD , [14] FreeBSD, [15] NetBSD , [16] Plan 9 [17] y invitados 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 nueva empresa de tecnología [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 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:

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.

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

Herramientas de gestión gráfica.

libvirt soporta KVM

Licencia

El componente en modo kernel de KVM es parte del kernel de Linux , que a su vez tiene la licencia pública general GNU, versión 2 . [32]

Ver también

Referencias

  1. ^ 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 .
  2. ^ Preguntas frecuentes sobre KVM: ¿Qué necesito para usar KVM?
  3. ^ "Informe de estado trimestral de FreeBSD: migración de KVM de Linux a FreeBSD".
  4. ^ "KVM en ilumos".
  5. ^ "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 .
  6. ^ Telar Gmane Archivado el 29 de septiembre de 2007 en la 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 ACM sobre soporte arquitectónico para lenguajes de programación y sistemas operativos.
  9. ^ "kernel/git/torvalds/linux.git: KVM: ia64: eliminar".
  10. ^ "Wiki de KVM: estado de soporte para invitados" . Consultado el 27 de mayo de 2007 .
  11. ^ "Ejecutando 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 asistencia para invitados: KVM". Linux-kvm.org . Consultado el 12 de febrero de 2014 .
  14. ^ "Página de manual de OpenBSD virtio (4)" . Consultado el 4 de febrero de 2018 .
  15. ^ "paquetes binarios virtio para FreeBSD" . Consultado el 29 de octubre de 2012 .
  16. ^ "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 .
  17. ^ "plan9front" . Consultado el 11 de febrero de 2013 .
  18. ^ "Una API para E/S virtual: virtio". LWN.net . 2007-07-11 . Consultado el 16 de abril de 2014 .
  19. ^ "Destino SCSI para wiki KVM". linux-iscsi.org. 2012-08-07. 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 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 .
  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/12/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é» Archivo del blog »Análisis de técnicas para asegurar la finalización de la migración con KVM".
  31. ^ "La documentación API definitiva de KVM (máquina virtual basada en kernel): la documentación del kernel de Linux".
  32. ^ "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

enlaces externos