sexta-feira, 14 de setembro de 2012

PVM (Paravirtualizado) ou HVM (HardwareVirtualizado)? O que usar?

Olá pessoal, vou falar um pouco sobre os tipos de virtualização a ser utilizado nas VMs rodando em OVM.

Já vi bastante confusão em torno deste topico (talvez pela sopa de letrinhas :), enfim o modo de virtualização escolhido é muito importante e influenciará  bastante na performance e outras features que poderá ter ou perder de acordo com o modo de virtualização escolhido.
 
No OVM temos 3 modos de virtualização:

  • Hardware Virtualised ou Fully Virtualised (HVM)
  • Paravirtualised (PVM)
  • Hardware Virtualised using Paravirtualised Drivers (PVHVM)

Em HVM utilizamos a midia de instalação padrão do Sistema Operacional, a VM não sabe que está rodando em ambiente virtual.

Para habilitar HVM no OVM o processador do servidor físico deverá ter suporte a virtualização por exemplo: Intel VT-x ou AMD SVM/AMD-V.

As vantagens em utilizar HVM são:

  a) A instalação é muito fácil (da mesma forma que você instala um servidor físico)
  b) VMs Linux suportam a feature HugePages
  c) VMs suportam PAE (Physical Address Extension)

As desvantagens em utilizar HVM:

  a) Performance (o Hypervisor [explicarei mais detalhes em outro topico] tem que fazer o translation causando um overhead, pra mim este é o principal ponto em escolher PVM ao invés de HVM)
  b) Problemas com clock poderão ocorrer
  c) Não é possível efetuar o boot da VM utilizando discos SCSI.

Em PVM as VMs são projetadas para rodar em ambiente virtual. O kernel e os drivers são otimizados para obter uma melhor performance em ambiente virtual (Acredite: o Unbreakable Kernel 2 do Oracle Linux tem signficativas melhoras para o Xen)

Não é necessário que o processador do servidor físico suporte virtualização para utilizar VMs em PVM.

As vantagens em utilizar VMs em PVM:
  a) Oferece melhor performance comparado aos modos HVM ou PVHVM (reforçando... ao meu ver este item é muito importante)

As desvantagens em utilizar VMs em PVM:
  a) O kernel e os drivers devem suportar este modo (compatível com Xen)
  b) Não é possível utilizar HugePages para VMs Linux (depende da versão do SO, mas é sempre bom falar...)
  c) Algumas features do Oracle VM Manager não são disponíveis, por exemplo, não é possível utilizar uma imagem ISO em uma VM PVM.

Em PVHVM as VMs empregam um mix de HVM e PVM. As VMs rodam com drivers em PVM o qual permite um ganho de performance com relação a uma VM HVM "pura".

As vantagens em utilizar PVHVM:
  a) Oferece melhor performance comparado a HVM (Mas não é melhor que PVM)
  b) VMs Linux suportam a feature HugePages
  c) VMs suportam PAE (Physical Address Extension)

As desvantagens em utilizar PVHVM:


   a) Requer significativas modificações das VMs (pode ser um problema)
   b) Para o Linux é necessário ter o pacote kmod-pvhvm para prover drivers paravirtualizados

Bem, como no mundo nem tudo são flores, nem todos os SOs suportam PVM, abaixo uma lista dos Sistemas Operacionais que suportam PVM e HVM no OVM:





Guest Operating System Paravirtualized 32-bit Paravirtualized 64-bit Hardware Virtualized 32-bit Hardware Virtualized 64-bit
SUPPORTED GUEST OPERATING SYSTEMS ON 64-BIT CPUs
Oracle Linux 6.x x x x x
Oracle Linux 5.x x x x x
Oracle Linux 4.x x x x x
Red Hat Enterprise Linux 5.x x x x x
Red Hat Enterprise Linux 4.x x x x x
Red Hat Enterprise Linux 3.x x x x
Microsoft Windows 2000 x x
Microsoft Windows 2003 x x x x
Microsoft Windows XP Pro x x x x
Microsoft Windows Vista x x x x
Microsoft Windows 7 x x x x
Microsoft Windows 2008 SP1 x x x x
Microsoft Windows 2008 R2 x x
Oracle Solaris 11 Express* x x x x
Oracle Solaris 10* x x x x
SUPPORTED GUEST OPERATING SYSTEMS ON 32-BIT CPUs
Oracle Linux 6.x x x
Oracle Linux 5.x x x
Oracle Linux 4.x x x
Red Hat Enterprise Linux 5.x x x
Red Hat Enterprise Linux 4.x x x
Red Hat Enterprise Linux 3.x x x
Microsoft Windows 2000 x
Microsoft Windows 2003 x x
Microsoft Windows XP Pro x x
Microsoft Windows Vista x x
Microsoft Windows 7 x x
Microsoft Windows 2008 SP1 x x
Oracle Solaris 11 Express* x x
Oracle Solaris 10* x x

* Paravirtualization support for RHEL 3.x and Windows 2008/2003/7/Vista/XP are paravirtualized device drivers only (ou seja, PVHVM).
(fonte: oracle.com) 



Resumindo, depende de cada cenário para escolher o modo de virtualização, o importante aqui é ressaltar que cada modo de virtualização trabalha de uma maneira diferente e o resultado será diferente de acordo com o modo escolhido.


Espero que tenham gostado e aguardem para o proximo tópico...


Um abraço.

Um comentário:

  1. Muito bom, essa é a grand edúvida d amaioria dos profissionais iniciantes na hora de criar sua Guest.

    Ótimo artigo parceiro. Abraço e Sucesso.

    ResponderExcluir