Na era da com­pu­ta­ção em nuvem, hi­per­vi­so­res como KVM e Xen ganham cada vez mais destaque e im­por­tân­cia. Apesar de ambas serem tec­no­lo­gias de vir­tu­a­li­za­ção, elas se diferem em alguns aspectos. Nossa com­pa­ra­ção Xen vs. KVM destaca e explora essas di­fe­ren­ças, assim como as prin­ci­pais afi­ni­da­des.

Resumão sobre o hi­per­vi­sor Xen

O hi­per­vi­sor Xen é uma pla­ta­forma de vir­tu­a­li­za­ção de código aberto (open source) que pos­si­bi­lita a execução si­mul­tâ­nea de vários sistemas ope­ra­ci­o­nais con­vi­da­dos em um único servidor físico. Es­pe­ci­fi­ca­mente, o papel do hi­per­vi­sor Xen consiste em alocar recursos de hardware do servidor, jus­ta­mente para pos­si­bi­li­tar essa execução si­mul­tâ­nea.

Tipo de hi­per­vi­sor

Essa pla­ta­forma de vir­tu­a­li­za­ção adota uma abordagem do tipo 1, sendo seu produto clas­si­fi­cado como hi­per­vi­sor tipo 1 ou bare-metal. Isso quer dizer que o Xen é executado di­re­ta­mente sobre o hardware físico, não ne­ces­si­tando de um sistema ope­ra­ci­o­nal host. Domínios são atri­buí­dos a cada sistema ope­ra­ci­o­nal instalado, como dom0 e domU, com o objetivo de di­fe­ren­ciar o nível de pri­vi­lé­gios. Mais es­pe­ci­fi­ca­mente, o sistema ope­ra­ci­o­nal host é clas­si­fi­cado como dom0, obtendo, então, o mais alto nivel de pri­vi­lé­gios. Aos sistemas ope­ra­ci­o­nais con­vi­da­dos é atribuído o domínio domU, que não contém pri­vi­lé­gios.

Graças a uma API especial, toda co­mu­ni­ca­ção entre o sistema ope­ra­ci­o­nal host e o hardware é realizada por meio do hi­per­vi­sor, ao invés de ocorrer por drivers. Essa profunda in­te­gra­ção permite que o Xen utilize hardwares de forma bem mais eficiente, evitando so­bre­car­gas e di­mi­nuindo a su­per­fí­cie de ataque.

Pa­ra­vir­tu­a­li­za­ção para maior efi­ci­ên­cia

A técnica de vir­tu­a­li­za­ção que o Xen utiliza para aumentar sua efi­ci­ên­cia é a pa­ra­vir­tu­a­li­za­ção. Nela, com­po­nen­tes de hardware não são emulados pelo hi­per­vi­sor, portanto os sistemas con­vi­da­dos ficam cientes de que estão sendo exe­cu­ta­dos em um ambiente vir­tu­a­li­zado. Assim, a co­mu­ni­ca­ção entre os sistemas ope­ra­ci­o­nais con­vi­da­dos e o hi­per­vi­sor Xen dá-se muito mais ra­pi­da­mente, ga­ran­tindo um melhor de­sem­pe­nho. Por outro lado, essa técnica de vir­tu­a­li­za­ção exige algumas coisas dos sistemas ope­ra­ci­o­nais ins­ta­la­dos: entre outras, o kernel do sistema ope­ra­ci­o­nal deve oferecer suporte à pa­ra­vir­tu­a­li­za­ção e contar com drivers es­pe­ci­a­li­za­dos. Tais exi­gên­cias, en­tre­tanto, costumam já ser atendidas pelos sistemas ope­ra­ci­o­nais mais comuns, como o Linux e o BSD.

Caso a pa­ra­vir­tu­a­li­za­ção seja im­pos­si­bi­li­tada ou barrada por um sistema ope­ra­ci­o­nal es­pe­cí­fico, o Xen oferece a al­ter­na­tiva de vir­tu­a­li­za­ção completa. Nela, com­po­nen­tes de hardware são emulados vir­tu­al­mente. Apesar desse tipo de vir­tu­a­li­za­ção ser mais lento, ele oferece maior com­pa­ti­bi­li­dade, pos­si­bi­li­tando que sistemas ope­ra­ci­o­nais sem suporte à pa­ra­vir­tu­a­li­za­ção também executem o Xen.

Dica

Além do KVM, existem outras al­ter­na­ti­vas ao Xen. Nosso Digital Guide as apresenta a você.

Resumão sobre o hi­per­vi­sor KVM

O KVM (Kernel-based Virtual Machine) também é um hi­per­vi­sor de código aberto que pos­si­bi­lita a execução de vários sistemas ope­ra­ci­o­nais con­vi­da­dos em um único servidor físico. Embora o KVM e o Xen tenham ba­si­ca­mente a mesma fi­na­li­dade, eles se baseiam em prin­cí­pios fun­ci­o­nais di­fe­ren­tes e, portanto, são adequados a usos distintos.

Tipo de hi­per­vi­sor

No passado, o KVM costumava ser clas­si­fi­cado como hi­per­vi­sor do tipo 2, uma vez que ele só conseguia se comunicar com o hardware por meio dos drivers do sistema ope­ra­ci­o­nal host. Até então, a pa­ra­vir­tu­a­li­za­ção era im­pos­sí­vel: todos os com­po­nen­tes de hardware tinham de ser emulados pelo KVM nos sistemas con­vi­da­dos.

O KVM foi, contudo, se expandido até conseguir incluir o recurso de pa­ra­vir­tu­a­li­za­ção, embora este funcione de forma diferente aqui: a pa­ra­vir­tu­a­li­za­ção não ocorre sob o sistema ope­ra­ci­o­nal host, sendo di­re­ta­mente integrada ao kernel do Linux. Assim, ela se utiliza de com­po­nen­tes de software do próprio sistema Linux para gerenciar os sistemas vir­tu­a­li­za­dos e seus processos. Cada sistema ope­ra­ci­o­nal convidado tem seu próprio hardware vir­tu­a­li­zado no KVM, que inclui interface de rede, ar­ma­ze­na­mento em disco rígido e outros. Para pos­si­bi­li­tar a vir­tu­a­li­za­ção completa, esse hi­per­vi­sor usa a técnica de vir­tu­a­li­za­ção assistida por hardware, já in­cor­po­rada na maioria dos pro­ces­sa­do­res modernos.

No hi­per­vi­sor KMV, en­tre­tanto, nem todos os com­po­nen­tes são to­tal­mente vir­tu­a­li­za­dos. Para acelerar a execução de sistemas e apli­ca­ções, ele dis­po­ni­bi­liza di­fe­ren­tes in­ter­fa­ces pa­ra­vir­tu­a­li­za­das que se comunicam di­re­ta­mente pela API Virtio. Isso quer dizer que a pa­ra­vir­tu­a­li­za­ção oferecida pelo KVM é, na verdade, uma pa­ra­vir­tu­a­li­za­ção parcial, sendo mais adequada a dis­po­si­ti­vos de entrada e saída, como a in­ter­fa­ces de rede.

Cloud Compute Engine da IONOS

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 hi­per­vi­sor tem melhor de­sem­pe­nho?

A maior diferença entre os hi­per­vi­so­res 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 vir­tu­a­li­za­ção assistida por hardware para vir­tu­a­li­zar to­tal­mente muitos com­po­nen­tes desse hardware, sem que o de­sem­pe­nho seja sig­ni­fi­ca­ti­va­mente afetado. As prin­ci­pais in­ter­fa­ces de entrada/saída são pa­ra­vir­tu­a­li­za­das, pro­va­vel­mente o fator mais im­por­tante na maioria das apli­ca­ções de servidor. O Xen, por outro lado, é um hi­per­vi­sor do tipo 1 clássico, sendo, portanto, instalado sob o res­pec­tivo sistema ope­ra­ci­o­nal. Isso permite que ele gerencie a dis­tri­bui­ção dos recursos de hardware de forma mais adequada. Assim, te­o­ri­ca­mente, o Xen pos­si­bi­lita uma co­mu­ni­ca­ção mais eficiente e de melhor de­sem­pe­nho com o hardware. Na prática, contudo, Xen e KVM registram se­me­lhante de­sem­pe­nho, graças à API Virtio do KVM e à vir­tu­a­li­za­ção suportada pelo hardware.

Afinidade de pro­ces­sa­dor

Ob­vi­a­mente, os dois hi­per­vi­so­res não registram o mesmo de­sem­pe­nho para as mesmas apli­ca­ções. O KVM permite que seus usuários tenham mais poder que usuários do Xen, es­pe­ci­al­mente em se tratando de afinidade de pro­ces­sa­dor (CPU pinning). Por CPU pinning, o KVM atribui um pro­ces­sa­dor físico (ou um núcleo de pro­ces­sa­dor) a um pro­ces­sa­dor vir­tu­a­li­zado, de modo que somente esse sistema virtual possa utilizá-lo. Apli­ca­ções pesadas (CPU heavy) tendem a lucrar mais com esse esquema.

De­sem­pe­nho de rede

Em se tratando de de­sem­pe­nho de rede, o Xen sai na frente. Embora ambos os hi­per­vi­so­res disponham de in­ter­fa­ces de rede pa­ra­vir­tu­a­li­za­das, no KVM cada sistema vir­tu­a­li­zado ganha um dis­po­si­tivo de rede próprio. Já no Xen todos os sistemas con­vi­da­dos com­par­ti­lham uma única interface de rede virtual, o que garante uma maior efi­ci­ên­cia.

Conclusão

Não há como a nossa com­pa­ra­ção KVM vs. Xen apontar um vencedor. Cada hi­per­vi­sor é mais adequado a um tipo de ne­ces­si­dade. Por ser o líder do mercado e pelo fato de ele estar integrado ao kernel do Linux — o que pos­si­bi­lita uma vir­tu­a­li­za­ção completa — podemos afirmar que o KVM é bem mais fácil de se usar. O Xen, por outro lado, promete um melhor de­sem­pe­nho devido a uma pa­ra­vir­tu­a­li­za­ção completa. Sua escolha deve se basear, portanto, na aplicação que você deseja vir­tu­a­li­zar e no seu nível de ex­pe­ri­ên­cia em tec­no­lo­gias de vir­tu­a­li­za­ção.

Dica

Está à procura de uma al­ter­na­tiva de hi­per­vi­sor que consiga migrar a sua in­fra­es­tru­tura de TI para uma nuvem? Conheça o Cloud Migration da IONOS e beneficie-se da melhor relação de preço-de­sem­pe­nho do mercado, e dos mais altos níveis de segurança.

Ir para o menu principal