En informática, paravirtualización o paravirtualización es una virtualización técnica que presenta una interfaz de software para las máquinas virtuales que es similar, pero no idéntica, a la interfaz de hardware-software subyacente.
La intención de la interfaz modificada es reducir la parte del tiempo de ejecución del invitado que se dedica a realizar operaciones que son sustancialmente más difíciles de ejecutar en un entorno virtual en comparación con un entorno no virtualizado. La paravirtualización proporciona 'ganchos' especialmente definidos para permitir que los invitados y el host soliciten y reconozcan estas tareas, que de otro modo se ejecutarían en el dominio virtual (donde el rendimiento de ejecución es peor). Una plataforma paravirtualizada exitosa puede permitir que el monitor de la máquina virtual (VMM) sea más simple (al reubicar la ejecución de tareas críticas del dominio virtual al dominio del host) y / o reducir la degradación general del rendimiento de la ejecución de la máquina dentro del invitado virtual.
La paravirtualización requiere que el sistema operativo invitado sea portado explícitamente para la para- API ; una distribución de sistema operativo convencional que no es consciente de la paravirtualización no se puede ejecutar sobre un VMM paravirtualizado. Sin embargo, incluso en los casos en los que el sistema operativo no se puede modificar, es posible que haya componentes disponibles que permitan muchas de las ventajas de rendimiento significativas de la paravirtualización. Por ejemplo, el proyecto Xen Windows GPLPV proporciona un kit de controladores de dispositivos compatibles con la paravirtualización, con licencia según los términos de la GPL , que están destinados a instalarse en un invitado virtual de Microsoft Windows que se ejecuta en el hipervisor Xen . [1] Estas aplicaciones tienden a ser accesibles a través del entorno de interfaz de máquina paravirtual. Esto asegura la compatibilidad del modo de ejecución en varios modelos de algoritmos de cifrado, lo que permite una integración perfecta dentro del marco paravirtual. [2]
Historia
La paravirtualización es un nuevo término para una vieja idea. El sistema operativo VM de IBM ha ofrecido tal facilidad desde 1972 [3] (y antes como CP-67 ). En el mundo de las VM, esto se denomina "código de DIAGNÓSTICO", porque utiliza un código de instrucción que normalmente solo utiliza el software de mantenimiento de hardware y, por lo tanto, no está definido.
El sistema operativo Parallels Workstation llama a su equivalente un "hipercall". Todos son lo mismo: una llamada del sistema al hipervisor a continuación. Dichas llamadas requieren soporte en el sistema operativo "invitado", que debe tener un código específico del hipervisor para realizar dichas llamadas.
El término "paravirtualización" se utilizó por primera vez en la literatura de investigación en asociación con Denali Virtual Machine Manager. [4] El término también se utiliza para describir los hipervisores Xen , L4 , TRANGO , VMware , Wind River y XtratuM . Todos estos proyectos usan o pueden usar técnicas de paravirtualización para admitir máquinas virtuales de alto rendimiento en hardware x86 mediante la implementación de una máquina virtual que no implementa las partes difíciles de virtualizar del conjunto de instrucciones x86 real. [5]
Un hipervisor proporciona la virtualización del sistema informático subyacente. En la virtualización completa , un sistema operativo invitado se ejecuta sin modificaciones en un hipervisor. Sin embargo, se logra un rendimiento y una eficiencia mejorados al hacer que el sistema operativo invitado se comunique con el hipervisor. Al permitir que el sistema operativo invitado indique su intención al hipervisor, cada uno puede cooperar para obtener un mejor rendimiento cuando se ejecuta en una máquina virtual. Este tipo de comunicación se conoce como paravirtualización.
En 2005, VMware propuso una interfaz de paravirtualización, Virtual Machine Interface (VMI), como mecanismo de comunicación entre el sistema operativo invitado y el hipervisor. Esta interfaz permitió una paravirtualización transparente en la que una única versión binaria del sistema operativo puede ejecutarse en hardware nativo o en un hipervisor en modo paravirtualizado. A medida que las CPU AMD e Intel agregaron soporte para una virtualización asistida por hardware más eficiente, el estándar quedó obsoleto y el soporte VMI se eliminó del kernel de Linux en 2.6.37 [6] y de los productos VMware en 2011. [7]
En 2008, Red Hat anunció la paravirtualización VirtIO para KVM y Linux, el controlador VirtIO para Microsoft Windows también está disponible.
En 2008, Microsoft anunció la paravirtualización de Hyper-V .
Soporte de paravirtualización de Linux
En la conferencia USENIX de 2006 en Boston, Massachusetts , varios proveedores de desarrollo de Linux (incluidos IBM, VMware, Xen y Red Hat) colaboraron en una forma alternativa de paravirtualización, inicialmente desarrollada por el grupo Xen, llamada "paravirt-ops". . [8] El código paravirt-ops (a menudo abreviado como pv-ops) se incluyó en el kernel principal de Linux a partir de la versión 2.6.23, y proporciona una interfaz independiente del hipervisor entre el hipervisor y los kernels invitados. El soporte de distribución para kernels invitados pv-ops apareció a partir de Ubuntu 7.04 y RedHat 9. Los hipervisores Xen basados en cualquier kernel 2.6.24 o posterior admiten invitados pv-ops, al igual que el producto Workstation de VMware a partir de la versión 6. [9] VirtualBox también admite a partir de la versión 5.0.
Ver también
Referencias
- ^ "Instalación de controladores GPLPV firmados en instancias de Windows Xen" . Wiki Univention . Consultado el 10 de abril de 2013 .
El controlador GPLPV es un controlador para Microsoft Windows, que permite que los sistemas Windows DomU virtualizados en Xen accedan a la red y bloqueen los controladores del Xen Dom0. Esto proporciona una ganancia significativa de rendimiento y confiabilidad sobre los dispositivos estándar emulados por Xen / Qemu / Kvm.
- ^ Armstrong, D (2011). "Problemas de rendimiento en las nubes: una evaluación de la propagación de imágenes virtuales y paravirtualización de E / S". The Computer Journal . 54 (6).
- ^ "Historia y herencia de VM" . IBM . Consultado el 10 de octubre de 2007 .
- ^ A. Whitaker; M. Shaw; SD Gribble (2002). "Denali: máquinas virtuales ligeras para aplicaciones distribuidas y en red" . Informe técnico de la Universidad de Washington. Archivado desde el original el 14 de enero de 2008 . Consultado el 9 de diciembre de 2006 .
- ^ Strobl, Marius (2013). Virtualización para sistemas integrados confiables . Múnich: GRIN Publishing GmbH. pag. 54,63. ISBN 978-3-656-49071-5.
- ^ "kernel / git / torvalds / linux.git - árbol de fuentes del kernel de Linux" . Git.kernel.org . Consultado el 3 de marzo de 2017 .
- ^ "Actualización: la compatibilidad con la paravirtualización del SO invitado mediante VMware VMI se retirará de los nuevos productos en 2010-2011 - Guía de instalación del SO invitado - Blogs de VMware" . Blogs.vmware.com . 2009-09-22 . Consultado el 3 de marzo de 2017 .
- ^ "XenParavirtOps - Xen" . Wiki.xenproject.org . Consultado el 3 de marzo de 2017 .
- ^ "VMware presenta soporte para paravirtualización multiplataforma - VMware" . VMware. 16 de mayo de 2008. Archivado desde el original el 13 de abril de 2011.
enlaces externos
- Anandtech - Virtualización de hardware: artículo técnico de tuercas y tornillos sobre paravirtualización