¿Qué funciona mejor bajo uso intensivo de CPU y memoria en los servidores virtuales, Xen o VirtualBox?
¿Qué funciona mejor bajo uso intensivo de CPU y memoria en los servidores virtuales, Xen o VirtualBox?
Xen generalmente funcionará mucho mejor que VirtualBox porque VirtualBox ejecuta el SO invitado de una manera que el SO invitado no sabe que se está ejecutando en un entorno virtual. O para decirlo de otra manera, el sistema operativo invitado no se modifica para ejecutarse virtualmente. Debido a esto, VirtualBox tiene que 'atrapar' las instrucciones del tipo de núcleo, ejecutar un código personalizado y luego devolver el control al invitado. Puede usar el soporte de virtualización de hardware provisto por Intel y AMD, pero aun así la sobrecarga se suma.
Mientras tanto, Xen se asegura de que el sistema operativo invitado se vuelva a compilar para adaptarse al modelo Xen. Por lo tanto, el control fluye sin problemas desde el sistema operativo invitado al hipervisor, sin la sobrecarga de tener que fingir que el sistema operativo invitado tiene acceso directo al hardware.
Para obtener una descripción general de algunas tecnologías de virtualización, incluidos los datos de las pruebas de rendimiento, lea este informe . Solo habla de Linux, pero cubre Linux-Vserver, Xen, OpenVZ, KVM, VirtualBox y QEMU. Linux-Vserver y Xen fueron generalmente los mejores, pero lea el informe para ver las diferentes cargas de trabajo.
Habiendo dicho todo lo anterior, puede haber algunas áreas donde VirtualBox supera a Xen. Si su sistema operativo invitado tiene una capa de ventana gráfica, VirtualBox tiene un buen soporte para eso, particularmente si instala algunos componentes especiales de VirtualBox en el sistema operativo invitado.
Y, por último, debe tener en cuenta que Xen solo ejecutará un sistema operativo invitado modificado. No puede ejecutar un SO huésped no modificado.
La respuesta de Hamish Downer se equivoca en su último punto. Xen puede ejecutar invitados no modificados, sin embargo, deben ejecutarse como invitados HVM que están completamente virtualizados. Hacer esto requiere que la computadora host tenga soporte de virtualización de hardware con CPU compatibles con Intel VT o AMD-V.
Xen y Virtualbox tienen un lugar, pero son dos tipos diferentes de hipervisores. Xen es un hipervisor Tipo 1 donde Virtualbox es un hipervisor Tipo 2. Los hipervisores tipo 1 tienden a ser lo que se encuentra en entornos de servidores donde los hipervisores tipo 2 tienden a ser más comunes para ejecutar múltiples sistemas operativos con los que interactúa como escritorios. Creo que esto se debe principalmente a su simplicidad y mejor integración de escritorio. Sin embargo, los invitados bajo un hipervisor tipo 2 están más lejos del hardware subyacente y tienden a ser más lentos que los invitados bajo un hipervisor tipo 1. Como con todo, siempre habrá una excepción a la regla.
fuente
Solo puedo hablar de Xen, ya que solo he usado Virtualbox para virtualizar una máquina Windows en mi escritorio Mac.
Como otros han mencionado, Xen (y XenServer, que se basa en Xen) utiliza núcleos paravirtualizados que mejoran drásticamente las características de rendimiento vinculadas a la CPU y la memoria. Sin embargo, esto solo es cierto para los hosts Linux con núcleos especializados. Necesita un núcleo Xen- "habilitado" para poder aprovechar esto.
Además, Windows no admite la virtualización de esta manera, pero las extensiones Intel VT y AMD-V en sus respectivas CPU "capturan" Windows y hacen que se comporte de forma paravirtualizada. Windows 2003 y Windows 2000 nunca se dan cuenta de que se están ejecutando virtualizados, mientras que Windows 2008, por otro lado, lo detecta y se ejecuta en el llamado modo "iluminado", que se puede comparar con el modo "paravirtualizado" de Linux.
fuente