Xen vs. VirtualBox sob carga pesada?

Respostas:

25

O Xen geralmente terá um desempenho muito melhor que o VirtualBox porque o VirtualBox executa o SO convidado de uma maneira que o SO convidado não sabe que está sendo executado em um ambiente virtual. Ou, em outras palavras, o sistema operacional convidado não é modificado para ser executado virtualmente. Por isso, o VirtualBox precisa 'interceptar' as instruções do tipo de kernel, executar algum código personalizado e retornar o controle ao convidado. Ele pode usar o suporte de virtualização de hardware fornecido pela Intel e AMD, mas mesmo assim a sobrecarga aumenta.

Enquanto isso, o Xen garante que o SO convidado seja recompilado para se ajustar ao modelo Xen. Portanto, o controle flui sem problemas do SO convidado para o hypervisor, sem a sobrecarga de ter que fingir que o SO convidado tem acesso direto ao hardware.

Para uma visão geral de algumas tecnologias de virtualização, incluindo dados de testes de desempenho, leia este relatório . Ele fala apenas sobre Linux, mas abrange Linux-Vserver, Xen, OpenVZ, KVM, VirtualBox e QEMU. O Linux-Vserver e o Xen foram geralmente os melhores desempenhos, mas leia o relatório para ver as diferentes cargas de trabalho.

Dito isto, algumas áreas em que o VirtualBox supera o Xen. Se o sistema operacional convidado tiver uma camada gráfica de janelas, o VirtualBox terá um bom suporte para isso, principalmente se você instalar alguns componentes especiais do VirtualBox no sistema operacional convidado.

E, finalmente, você deve estar ciente de que o Xen executará apenas um SO convidado modificado. Ele não pode executar um sistema operacional convidado não modificado.

Hamish Downer
fonte
2
Observe que as máquinas virtuais no xen executando o Windows podem usar apenas um núcleo!
Thomaschaaf
29

A resposta de Hamish Downer está errada em seu último ponto. O Xen pode executar convidados não modificados, no entanto, eles precisam ser executados como convidados da HVM totalmente virtualizados. Para fazer isso, é necessário que o computador host tenha suporte à virtualização de hardware com CPUs compatíveis com Intel VT ou AMD-V.

O Xen e o Virtualbox têm um lugar, mas são dois tipos diferentes de hipervisores. Xen é um hipervisor Tipo 1 em que o Virtualbox é um hipervisor Tipo 2. Os hipervisores tipo 1 tendem a ser o que você encontra em ambientes de servidor em que os hipervisores tipo 2 tendem a ser mais comuns para a execução de vários SOs com os quais você interage como desktops. Eu acho que isso se deve principalmente à sua simplicidade e melhor integração com a área de trabalho. No entanto, os convidados em um hipervisor tipo 2 estão mais distantes do hardware subjacente e tendem a ser mais lentos que os convidados em um hipervisor tipo 1. Como em tudo, sempre haverá uma exceção à regra.

3dinfluence
fonte
2
Você está perfeitamente certo :-) Então, você recebe +1
Antoine Benkemoun
3

Só posso falar sobre o Xen, pois só usei o Virtualbox para virtualizar uma máquina Windows no meu desktop Mac.

Como outros já mencionaram, o Xen (e o XenServer, que é baseado no Xen) usa kernels paravirtualizados que melhoram drasticamente as características de desempenho associadas à CPU e à Memória. No entanto, isso é verdadeiro apenas para hosts Linux com kernels especializados. Você precisa de um kernel Xen "ativado" para poder tirar vantagem disso.

Além disso - o Windows não suporta ser virtualizado dessa maneira, mas as extensões Intel VT e AMD-V em suas respectivas CPUs "capturam" o Windows e o fazem se comportar de maneira paravirtualizada. O Windows 2003 e o Windows 2000 nunca sabem que estão executando virtualizados, enquanto o Windows 2008, por outro lado, detecta isso e é executado no chamado modo "iluminado", que pode ser comparado ao modo "paravirtualizado" do Linux.

user1952
fonte