Xen vs. KVM: Comparação entre hipervisores open source
Na era da computação em nuvem, hipervisores como KVM e Xen ganham cada vez mais destaque e importância. Apesar de ambas serem tecnologias de virtualização, elas se diferem em alguns aspectos. Nossa comparação Xen vs. KVM destaca e explora essas diferenças, assim como as principais afinidades.
Resumão sobre o hipervisor Xen
O hipervisor Xen é uma plataforma de virtualização de código aberto (open source) que possibilita a execução simultânea de vários sistemas operacionais convidados em um único servidor físico. Especificamente, o papel do hipervisor Xen consiste em alocar recursos de hardware do servidor, justamente para possibilitar essa execução simultânea.
Tipo de hipervisor
Essa plataforma de virtualização adota uma abordagem do tipo 1, sendo seu produto classificado como hipervisor tipo 1 ou bare-metal. Isso quer dizer que o Xen é executado diretamente sobre o hardware físico, não necessitando de um sistema operacional host. Domínios são atribuídos a cada sistema operacional instalado, como dom0 e domU, com o objetivo de diferenciar o nível de privilégios. Mais especificamente, o sistema operacional host é classificado como dom0, obtendo, então, o mais alto nivel de privilégios. Aos sistemas operacionais convidados é atribuído o domínio domU, que não contém privilégios.
Graças a uma API especial, toda comunicação entre o sistema operacional host e o hardware é realizada por meio do hipervisor, ao invés de ocorrer por drivers. Essa profunda integração permite que o Xen utilize hardwares de forma bem mais eficiente, evitando sobrecargas e diminuindo a superfície de ataque.
Paravirtualização para maior eficiência
A técnica de virtualização que o Xen utiliza para aumentar sua eficiência é a paravirtualização. Nela, componentes de hardware não são emulados pelo hipervisor, portanto os sistemas convidados ficam cientes de que estão sendo executados em um ambiente virtualizado. Assim, a comunicação entre os sistemas operacionais convidados e o hipervisor Xen dá-se muito mais rapidamente, garantindo um melhor desempenho. Por outro lado, essa técnica de virtualização exige algumas coisas dos sistemas operacionais instalados: entre outras, o kernel do sistema operacional deve oferecer suporte à paravirtualização e contar com drivers especializados. Tais exigências, entretanto, costumam já ser atendidas pelos sistemas operacionais mais comuns, como o Linux e o BSD.
Caso a paravirtualização seja impossibilitada ou barrada por um sistema operacional específico, o Xen oferece a alternativa de virtualização completa. Nela, componentes de hardware são emulados virtualmente. Apesar desse tipo de virtualização ser mais lento, ele oferece maior compatibilidade, possibilitando que sistemas operacionais sem suporte à paravirtualização também executem o Xen.
Além do KVM, existem outras alternativas ao Xen. Nosso Digital Guide as apresenta a você.
Resumão sobre o hipervisor KVM
O KVM (Kernel-based Virtual Machine) também é um hipervisor de código aberto que possibilita a execução de vários sistemas operacionais convidados em um único servidor físico. Embora o KVM e o Xen tenham basicamente a mesma finalidade, eles se baseiam em princípios funcionais diferentes e, portanto, são adequados a usos distintos.
Tipo de hipervisor
No passado, o KVM costumava ser classificado como hipervisor do tipo 2, uma vez que ele só conseguia se comunicar com o hardware por meio dos drivers do sistema operacional host. Até então, a paravirtualização era impossível: todos os componentes de hardware tinham de ser emulados pelo KVM nos sistemas convidados.
O KVM foi, contudo, se expandido até conseguir incluir o recurso de paravirtualização, embora este funcione de forma diferente aqui: a paravirtualização não ocorre sob o sistema operacional host, sendo diretamente integrada ao kernel do Linux. Assim, ela se utiliza de componentes de software do próprio sistema Linux para gerenciar os sistemas virtualizados e seus processos. Cada sistema operacional convidado tem seu próprio hardware virtualizado no KVM, que inclui interface de rede, armazenamento em disco rígido e outros. Para possibilitar a virtualização completa, esse hipervisor usa a técnica de virtualização assistida por hardware, já incorporada na maioria dos processadores modernos.
No hipervisor KMV, entretanto, nem todos os componentes são totalmente virtualizados. Para acelerar a execução de sistemas e aplicações, ele disponibiliza diferentes interfaces paravirtualizadas que se comunicam diretamente pela API Virtio. Isso quer dizer que a paravirtualização oferecida pelo KVM é, na verdade, uma paravirtualização parcial, sendo mais adequada a dispositivos de entrada e saída, como a interfaces de rede.
Empresas de médio e grande porte optam pela nuvem da Alemanha. Serviços IaaS e PaaS são para campeões.
- Seguro
- Confiável
- Flexível
KVM vs. Xen: Qual hipervisor tem melhor desempenho?
A maior diferença entre os hipervisores KVM e Xen está no nível da pilha de software que cada um consegue operar. Como parte do kernel do Linux, o KVM usa a técnica de virtualização assistida por hardware para virtualizar totalmente muitos componentes desse hardware, sem que o desempenho seja significativamente afetado. As principais interfaces de entrada/saída são paravirtualizadas, provavelmente o fator mais importante na maioria das aplicações de servidor. O Xen, por outro lado, é um hipervisor do tipo 1 clássico, sendo, portanto, instalado sob o respectivo sistema operacional. Isso permite que ele gerencie a distribuição dos recursos de hardware de forma mais adequada. Assim, teoricamente, o Xen possibilita uma comunicação mais eficiente e de melhor desempenho com o hardware. Na prática, contudo, Xen e KVM registram semelhante desempenho, graças à API Virtio do KVM e à virtualização suportada pelo hardware.
Afinidade de processador
Obviamente, os dois hipervisores não registram o mesmo desempenho para as mesmas aplicações. O KVM permite que seus usuários tenham mais poder que usuários do Xen, especialmente em se tratando de afinidade de processador (CPU pinning). Por CPU pinning, o KVM atribui um processador físico (ou um núcleo de processador) a um processador virtualizado, de modo que somente esse sistema virtual possa utilizá-lo. Aplicações pesadas (CPU heavy) tendem a lucrar mais com esse esquema.
Desempenho de rede
Em se tratando de desempenho de rede, o Xen sai na frente. Embora ambos os hipervisores disponham de interfaces de rede paravirtualizadas, no KVM cada sistema virtualizado ganha um dispositivo de rede próprio. Já no Xen todos os sistemas convidados compartilham uma única interface de rede virtual, o que garante uma maior eficiência.
Conclusão
Não há como a nossa comparação KVM vs. Xen apontar um vencedor. Cada hipervisor é mais adequado a um tipo de necessidade. Por ser o líder do mercado e pelo fato de ele estar integrado ao kernel do Linux — o que possibilita uma virtualização completa — podemos afirmar que o KVM é bem mais fácil de se usar. O Xen, por outro lado, promete um melhor desempenho devido a uma paravirtualização completa. Sua escolha deve se basear, portanto, na aplicação que você deseja virtualizar e no seu nível de experiência em tecnologias de virtualização.
Está à procura de uma alternativa de hipervisor que consiga migrar a sua infraestrutura de TI para uma nuvem? Conheça o Cloud Migration da IONOS e beneficie-se da melhor relação de preço-desempenho do mercado, e dos mais altos níveis de segurança.