Máquina virtual basada en kernel

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Kernel-based Virtual Machine (KVM) es un módulo de virtualización gratuito y de código abierto en el núcleo Linux que permite que el núcleo funcione como un hipervisor. Se fusionó con el núcleo Linux principal en la versión 2.6.20, que se lanzó el 5 de febrero de 2007. KVM requiere un procesador con extensiones de virtualización de hardware, como Intel VT o AMD-V. KVM también se ha adaptado a otros sistemas operativos como FreeBSD e illumos en forma de módulos de núcleo cargables.

KVM fue diseñado originalmente para procesadores x86, pero desde entonces se adaptó a ESA/390, PowerPC, IA-64 y ARM. La adaptación a IA-64 se eliminó en 2014.

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. Además, se sabe que Android 2.2, GNU/Hurd (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 los mencionados, funcionan con ciertas limitaciones.

Además, KVM ofrece compatibilidad con paravirtualización para Linux, OpenBSD, FreeBSD, NetBSD, Plan 9 y huéspedes de Windows mediante la API VirtIO. Esto incluye una tarjeta Ethernet paravirtual, un controlador de E/S de disco, un controlador de globo y una interfaz gráfica VGA mediante controladores SPICE o VMware.

Historia

Avi Kivity comenzó a desarrollar KVM a mediados de 2006 en Qumranet, una empresa tecnológica emergente que fue adquirida por Red Hat en 2008.

KVM apareció en octubre de 2006 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.

KVM es mantenido por Paolo Bonzini.

Internos

Una visión general de alto nivel del entorno de virtualización KVM/QEMU

KVM proporciona abstracción de dispositivos pero no emulación de procesador. Expone la interfaz /dev/kvm, que un host en modo usuario puede utilizar para:

  • Establece el espacio de dirección del huésped VM. El host también debe proporcionar una imagen de firmware (generalmente un BIOS personalizado al emular PCs) que el huésped puede utilizar para arrancar en su sistema operativo principal.
  • Alimenta al invitado simulado I/O.
  • Envíe la pantalla de vídeo del huésped 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.

En el interior, KVM utiliza SeaBIOS como una implementación de código abierto de un BIOS x86 de 16 bits.

Características

KVM ha recibido soporte para VCPU de intercambio en caliente, gestión de memoria dinámica y migración en vivo desde febrero de 2007. También reduce el impacto que las cargas de trabajo intensivas en escritura de memoria tienen en el proceso de migración.

Herrajes emulados

KVM en sí mismo emula muy poco hardware, en lugar de diferir a una aplicación cliente de nivel superior, como QEMU, CROSVM o Firecracker para la emulación del dispositivo.

kvm proporciona los siguientes dispositivos emulados:

  • CPU virtual y memoria
  • VirtIO

Herramientas de gestión gráfica

libvirt admite KVM
  • Kimchi – herramienta de gestión de virtualización basada en web para KVM
  • Máquina virtual Manager – soporta crear, editar, comenzar y detener máquinas virtuales basadas en KVM, así como la migración en vivo o frío de arrastrar y soltar entre anfitriones.
  • Proxmox Virtual Environment – un paquete de gestión de virtualización de código abierto que incluye KVM y LXC. Cuenta con un instalador de metal simple, un GUI de gestión remota basado en la web, una pila de racimo HA, almacenamiento unificado, red flexible y soporte comercial opcional.
  • OpenQRM – plataforma de gestión para gestionar infraestructuras de centros de datos heterogéneos
  • GNOME Cajas – Interfaz Gnome para gestionar los invitados libvirt en Linux
  • o Virt – herramienta de gestión de virtualización de código abierto para KVM construida sobre libvirt

Licencias

El componente de modo kernel de KVM es parte del kernel de Linux, que a su vez tiene licencia GNU General Public License, versión 2.

Véase también

  • CloudStack
  • Comparación del software de virtualización de plataformas
  • Hyper-V
  • Merging de la misma página (KSM)
  • Lguest
  • libguestfs
  • Open Virtualization Alliance
  • OpenNebula
  • OpenStack
  • Red Hat Virtualization
  • Vx32
  • Xen

Referencias

  1. ^ a b "Linux kernel 2.6.20, Sección 2.2. Apoyo de virtualización a través de KVM". kernelnewbies.org. 2007-02-05. Retrieved 2014-06-16.
  2. ^ KVM FAQ: ¿Qué necesito para usar KVM?
  3. ^ "FreeBSD Informe de estado trimestral: Porting Linux KVM to FreeBSD".
  4. ^ "KVM on illumos". 15 agosto 2011.
  5. ^ "Gmane - Mail to News and Back Again". Archivado desde el original el 2007-09-29. Retrieved 2007-05-07.
  6. ^ Gmane Loom Archived 2007-09-29 en la máquina Wayback
  7. ^ "KVM/ARM Open Source Project". Archivado desde el original en 2013-03-10. Retrieved 2017-11-01.
  8. ^ Christoffer Dall; Jason Nieh (2014). "KVM/ARM: Diseño e Implementación del Hypervisor ARM de Linux". SIGARCH Comput. Archit. Noticias. 42 1). ACM Conferencia Internacional sobre Apoyo Arquitectónico para la Programación Idiomas y Sistemas Operativos: 333–348. doi:10.1145/2654822.2541946.
  9. ^ "kernel/git/torvalds/linux.git: KVM: ia64: remove".
  10. ^ "KVM wiki: estado de apoyo de los huéspedes". Retrieved 2007-05-27.
  11. ^ "Running Mac OS X como un QEMU/KVM Guest". Retrieved 2014-08-20.
  12. ^ "status". Gnu.org. Retrieved 2014-02-12.
  13. ^ "Estado de asistencia al cliente - KVM". Linux-kvm.org. Retrieved 2014-02-12.
  14. ^ "OpenBSD man page virtio(4)". Retrieved 2018-02-04.
  15. ^ "paquetes binariosvirtio para FreeBSD". Retrieved 2012-10-29.
  16. ^ "NetBSD man page virtio(4)". Archivado desde el original en 2019-11-13. Retrieved 2013-07-15.
  17. ^ "plan9front". Retrieved 2013-02-11.
  18. ^ "Una API para I/O virtual: virtio". LWN.net. 2007-07-11. Retrieved 2014-04-16.
  19. ^ "SSCSI target for KVM wiki". linux-iscsi.org. 2012-08-07. Archivado desde el original el 20 de marzo de 2012. Retrieved 2012-08-12.
  20. ^ Entrevista: Avi Kivity Archivado 2007-04-26 en la máquina Wayback en KernelTrap
  21. ^ "Red Hat Advances Virtualization Leadership with Qumranet, Inc. Adquisición". Red Hat. 4 de septiembre de 2008. Retrieved 16 de junio 2015.
  22. ^ "KVM 15 equipado con la migración en vivo TEN IT World Canada News". 7 de marzo de 2007.
  23. ^ Libby Clark (7 abril 2015). "Git Success Stories and Tips from KVM Maintainer Paolo Bonzini". Linux.com. Archivado desde el original el 15 de marzo de 2016. Retrieved 17 de junio 2015.
  24. ^ Khoa Huynh; Stefan Hajnoczi (2010). "KVM/QEMU Storage Stack Performance Discussion" (PDF). IBM. Linux Plumbers Conferencia. Retrieved 3 de enero, 2015.
  25. ^ "SeaBIOS". seabios.org. 2013-12-21. Retrieved 2014-06-16.
  26. ^ "Hot Plugging Virtual CPUs with Red Hat Enterprise Virtualization Manager". 16 febrero 2016.
  27. ^ "Faq - KVM".
  28. ^ "KVM-15 release [LWN.net]".
  29. ^ "Migración - KVM".
  30. ^ "Daniel P. Berrangé » Blog Archive » Análisis de técnicas para asegurar la terminación de la migración con KVM".
  31. ^ "The Definitive KVM (Kernel-based Virtual Machine) API Documentation — the Linux Kernel documentation".
  32. ^ "Reglas de licencias del kernel de Linux — La documentación del kernel de Linux". www.kernel.org. Archivado desde el original el 7 de marzo de 2020. Retrieved 2020-01-06.

Bibliografía

  • Amit Shah (2016-11-02). Diez años de KVM. lwn.net. Retrieved 2017-02-10.
  • Las mejores prácticas para la máquina virtual con base en núcleo Archivo 2019-11-06 en la máquina Wayback, IBM, segunda edición, abril 2012
  • Virtio-blk Performance Improvement, KVM Forum 2012, 8 de noviembre de 2012, por Asias He
  • Wikibook QEMU & KVM
  • crosvm - Chrome OS monitor de máquina virtual
  • Firecracker VMM para KVM
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save