¿Diferencia entre Xen PV, Xen KVM y HVM?


53

Sé que Xen suele ser mejor que OpenVZ ya que el proveedor no puede vender más en Xen. Sin embargo, ¿cuál es la diferencia entre Xen PV, Xen KVMy HVM(yo estaba pasando por ese proveedor de especificaciones ? ¿Cuál es mejor para qué fines y por qué?


Editar:

Para un usuario final que solo alojará sitios web, ¿cuál es mejor? Desde la eficiencia u otro punto de vista, ¿hay alguna ventaja de uno sobre el otro?

Respuestas:


47

Xen admite tipos de virtualización

Xen admite la ejecución de dos tipos diferentes de invitados. Los invitados Xen a menudo se llaman domUs (dominios sin privilegios). Ambos tipos de invitados (PV, HVM) se pueden usar al mismo tiempo en un solo sistema Xen.

Paravirtualización Xen (PV)

La paravirtualización es una técnica de virtualización eficiente y liviana introducida por Xen, más tarde adoptada también por otras soluciones de virtualización. La paravirtualización no requiere extensiones de virtualización de la CPU del host. Sin embargo, los invitados paravirtualizados requieren un kernel especial que se ejecute para ejecutarse de forma nativa en Xen, por lo que los invitados conocen el hipervisor y pueden ejecutar de manera eficiente sin emulación o hardware virtual emulado. Los núcleos invitados Xen PV existen para los sistemas operativos Linux, NetBSD, FreeBSD, OpenSolaris y Novell Netware.

Los invitados PV no tienen ningún tipo de hardware virtual emulado, pero la consola gráfica todavía es posible usando guest pvfb (paravirtual framebuffer). La consola gráfica del invitado PV se puede ver usando el cliente VNC o el virt-viewer de Redhat. Hay un servidor VNC separado en dom0 para el PVFB de cada huésped.

Upstream kernel.org Los kernels de Linux desde Linux 2.6.24 incluyen soporte para invitado Xen PV (domU) basado en el marco pvops de Linux, por lo que cada kernel Linux anterior puede usarse automáticamente como kernel invitado Xen PV sin parches o modificaciones adicionales.

Consulte la página wiki de XenParavirtOps para obtener más información sobre el soporte de Xen para pvops de Linux.

Virtualización completa de Xen (HVM)

Los huéspedes totalmente virtualizados, también conocidos como HVM (Máquina virtual de hardware) requieren extensiones de virtualización de la CPU de la CPU del host (Intel VT, AMD-V). Xen usa la versión modificada de Qemu para emular el hardware completo de la PC, incluyendo BIOS, controlador de disco IDE, adaptador gráfico VGA, controlador USB, adaptador de red, etc. para invitados HVM. Las extensiones de virtualización de la CPU se utilizan para aumentar el rendimiento de la emulación. Los invitados totalmente virtualizados no requieren un kernel especial, por lo que, por ejemplo, los sistemas operativos Windows se pueden usar como invitados Xen HVM. Los invitados totalmente virtualizados suelen ser más lentos que los invitados paravirtualizados, debido a la emulación requerida.

Para aumentar el rendimiento, los huéspedes de HVM totalmente virtualizados pueden usar controladores de dispositivos paravirtuales especiales para evitar la emulación de disco y red IO. Los invitados Xen Windows HVM pueden usar los controladores GPLPV de código abierto. Consulte la página wiki de XenLinuxPVonHVMdrivers para obtener más información sobre los controladores Xen PV-on-HVM para los invitados de Linux HVM.

Esto es de http://wiki.xenproject.org/wiki/XenOverview

KVM no es Xen en absoluto, es otra tecnología, donde KVM es un módulo de kernel nativo de Linux y no un kernel adicional, como Xen. Lo que hace que KVM sea un mejor diseño. La desventaja aquí es que KVM es más nuevo que Xen, por lo que podría faltar algunas de las características.


99
+1 KVM no es Xen en absoluto. Es totalmente en desacuerdo que KVM sea un mejor diseño. Xen proporciona un aislamiento mucho mejor y no depende del kernel de Linux y sus posibles vulnerabilidades.
Antoine Benkemoun

2
Gracias por la info! No pude entenderlo todo. Desde el punto de vista del usuario final, ¿quién alojará sitios web? ¿Qué es mejor? ¿Existe una ventaja significativa de uno sobre el otro?

2
Xen tiene sus propias vulnerabilidades. Pero el funcionamiento de un sistema operativo con dos núcleos bootstrap es un defecto de diseño, no importa qué tan bien lo haces
dyasny

1
JP19: eso depende de los sitios web. Si puede definir la carga en el VPS, puede solicitar aquí o google la mejor solución.
dyasny

2
Xen es un hipervisor, y también lo es KVM. KVM tiene dispositivos fotovoltaicos, y agrega más con el tiempo, también permite el paso de PCI. Así que no veo el punto de su argumento, Nils
dyasny

32

Xen es un hipervisor que se ejecuta en metal (la PC / servidor) y luego aloja máquinas virtuales llamadas dominios.

Un Xen PVdominio es un dominio paravirtualizado , lo que significa que el sistema operativo (generalmente estamos hablando de Linux aquí) ha sido modificado para ejecutarse bajo Xen, y no hay necesidad de emular hardware. Este debería ser el camino más eficiente, en cuanto al rendimiento.

Un Xen HVMdominio es un dominio emulado por hardware , lo que significa que el sistema operativo (podría ser Linux, Windows, lo que sea) no se ha modificado de ninguna manera y el hardware se emula. Esto es bastante lento, por lo que generalmente instala controladores PV en el sistema operativo invitado para hardware crítico (generalmente disco y red), por lo que el invitado en su conjunto se ejecutará completamente virtualizado, pero las piezas de hardware más críticas para el rendimiento se ejecutarán paravirtualizadas. Los sistemas Linux recientes tienen controladores pv para el disco y la red en el kernel, y también existen varios controladores PV para Windows. Con todo el desarrollo de HVM en los últimos años, generalmente hay poca diferencia en el rendimiento entre HVM y PV para cargas de trabajo estándar.

KVMno es Xen, es otra plataforma de virtualización construida dentro del kernel de Linux. Desde el punto de vista del invitado , se parece a Xen HVM: el invitado se ejecuta completamente virtualizado y hay un controlador específico para ejecutar algunas partes paravirtualizadas (nuevamente, disco y red).

Tanto Xen HVM como Linux KVM necesitan soporte de virtualización asistida por hardware (Intel VT-x, AMD AMD-V), mientras que Xen PV no funciona pero no puede ejecutar sistemas operativos sin soporte PV (no puede ejecutar Windows en Xen PV).

Tanto Xen HVM como Linux KVM utilizarán partes del software de virtualización qemu para emular hardware real para dispositivos que no usan controladores PV en el sistema invitado.

Xen (tanto PV como HVM) puede realizar la migración en vivo de un invitado en ejecución de un servidor físico a otro, no sé si KVM también puede hacerlo.

Tanto Xen como KVM no pueden comprometer en exceso la memoria, por lo que generalmente se obtiene "RAM verdadera", mientras que otras plataformas como VMware pueden intercambiar parte de la memoria RAM invitada en el disco.

Existen diferencias, pero generalmente se aplican a instalaciones específicas y no al servidor privado virtual genérico para la venta a otras personas. Por ejemplo, los hipervisores Xen recientes admiten memoria trascendente que podría mejorar la utilización de la memoria y el rendimiento del invitado si el invitado lo admite (kernels de Linux> = 3.algo).

Todas esas tecnologías le brindarán una gran experiencia si se implementan correctamente, y no harán una gran diferencia desde su punto de vista. Por supuesto, hay mil maneras en que las cosas pueden salir mal y eso no está relacionado con la solución de virtualización específica (es decir, su invitado podría almacenarse en discos lentos y eso perjudicaría su rendimiento).


3
KVM puede comprometer en exceso la memoria y Xen también.
dyasny

@dyasny No sé sobre KVM, pero estoy bastante seguro de que Xen no puede comprometer demasiado la memoria en el sentido real de la palabra (permitir un tamaño máximo diferente es algo diferente). Enlace sus fuentes si cree que sí.
Luke404

Xen apoya el vuelo en globo. Agregue el intercambio estándar a esto y ya tiene al menos 2 mecanismos de sobrecompromiso. Esto es tan antiguo como 2008: blog.xen.org/index.php/2008/08/27/…
dyasny

3
@dyasny probablemente pienses que el exceso de compromiso permite un máximo más alto. AFAIK, el significado aceptado es asignar a los invitados más memoria que la físicamente presente en el host, y esto no se implementa en Xen. No puede desinflar un globo de invitado (por ejemplo, darle más memoria) si no tiene memoria física disponible en el host, y tampoco puede iniciar un nuevo invitado si ya ha asignado toda su memoria de host (a menos que infle) ejecutando globos de invitados, reduciendo así la memoria asignada para que no se comprometa demasiado).
Luke404

1
Creo que el exceso de compromiso no solo permite más de lo que el host físicamente tiene, sino que también usa más de lo que el host físicamente tiene. El intercambio es horrible, pero es un mecanismo que le permite asignar más páginas de memoria de las que tiene físicamente en un host, ya sea para procesos o máquinas virtuales, no importa. Esto es lo más lejos que voy a entrar en semántica en este caso.
dyasny
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.