Executando VMs não Microsoft no Hyper-V

Bom dia pessoal.

Já faz um tempo que venho ouvindo algumas reclamações, geralmente comparando com outros produtos, sobre o suporte do Hyper-V e máquinas virtuais não Microsoft.

Por padrão, é possível executar qualquer sistema operacional x86 e x64, não importa se é Microsoft, Linux, Unix, Solaris, etc.

O ponto importante a ser levado é a integração dessas Váquinas Virtuais (VMs) com o Hyper-V. Para isso elas precisam de alguns serviços que provém a integração entre o sistema virtual e o sistema host. Esses serviços são chamados de componentes de integração (IC).

Os ICs são agentes instalados nas VMs para que as mesmas reconheçam e usufluam dos benefícios do Hyper-V. As VMs que tem os ICs são reconhecidas como sistemas sintéticos, também conhecido como enlightenment e para a outras que não tenham o IC são conhecidas como sistemas emulados.

Os sistemas emulados são aqueles que não dão suporte aos IC. Para o uso do hardware através do Hypervisor, o Hyper-V emula todos os dispositivos para elas, perdendo assim algumas funcionalidades e performance. Em alguns casos a perda na escrita e gravação do disco chega a 40%. Outro exemplo é a velocidade das conexões de rede. Nessas VMs sem os ICs só é possível usar um tipo de placa de rede específica chamada Legacy Network, que deve ser configurada nas propriedades das máquinas virtuais. A perda de performance com essa placa chega a 30%. Para alguns cenários de servidores esses valores são inadmissíveís.

Para resolver esses impasses é possível instalar os ICs nas VMs suportadas e não ter esses problemas de hardware. Entretanto, existem também dois tipos de ICs: Os oficiais, fornecidos pela própria Microsoft, e os não oficiais, fornecidos pela comunidade ou pelo próprio fabricante do sistema operacional. Vale lembrar que ambos fornecem as integrações e podem ser usados sem problemas, mas a Microsoft não garante e não dá suporte aos ICs não oficiais.

O KB954958 fornece uma lista de servidores e sistemas clientes que dão suporte ao Integration Components atualmente. Perceba na tabela abaixo que o número de processadores depende do sistema operacional usando o IC.

Server guest operating system

Editions

Virtual processors

Windows Server 2008 R2

Standard, Enterprise, Datacenter, and Windows Web Server 2008 R2

1, 2, or 4

Windows Server 2008

Standard, Standard without Hyper-V, Enterprise, Enterprise without Hyper-V, Datacenter, Datacenter without Hyper-V, Windows Web Server 2008, and HPC Edition

1, 2, or 4

Windows Server 2003 R2 with Service Pack 2

Standard, Enterprise, Datacenter, and Web

1 or 2

Windows Server 2003 R2 x64 Edition with Service Pack 2

Standard, Enterprise, and Datacenter

1 or 2

Windows Server 2003 with Service Pack 2

Standard, Enterprise, Datacenter, and Web

1 or 2

Windows Server 2003 x64 Edition with Service Pack 2

Standard, Enterprise, and Datacenter

1 or 2

Windows 2000 Server with Service Pack 4

Server, Advanced Server

1

Red Hat Enterprise Linux 5.5

x86 edition and x64 edition

1, 2, or 4

Red Hat Enterprise Linux 5.4

x86 edition and x64 edition

1, 2, or 4

Red Hat Enterprise Linux 5.3

x86 edition and x64 edition

1, 2, or 4

Red Hat Enterprise Linux 5.2

x86 edition and x64 edition

1, 2, or 4

SUSE Linux Enterprise Server 11

x86 edition and x64 edition

1, 2, or 4

SUSE Linux Enterprise Server 10 with Service Pack 3

x86 edition and x64 edition

1, 2, or 4

Lista dos sistemas operacionais clientes:

Client guest operating system

Editions

Virtual processors

Windows 7

Enterprise, Ultimate, and Professional. This applies to both 32-bit and 64-bit editions, as well as N and KN editions.

1, 2, or 4

Windows Vista

Business, Enterprise, and Ultimate, including N and KN editions

1 or 2

Windows XP with Service Pack 3

Professional

1 or 2

Windows XP with Service Pack 2

Professional

1

Windows XP x64 Edition with Service Pack 2

Professional

1 or 2

Alguns sistemas operacionais como Windows 2008, 2008 R2 e Windows 7 não precisam da instalação dos componentes, pois eles já existem por padrão no Kernel do Windows. Já outros como Windows 2003, Windows XP e Windows 2000 SP4 o IC precisa ser instalado manualmente.

Na lista existem algumas distribuições Linux disponíveis: Red Hat Enterprise e Suse Linux Enterprise. Para essas distros existe uma versão específica, o Integration Components 2.1 que deve ser instalada manualmente. O download pode ser feito pelo link a seguir:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=eee39325-898b-4522-9b4c-f4b5b9b64551

A lista abaixo contém as funcionalidades do novo IC 2.1:

Fastpath Boot Support: Os Boot Devices podem usar o storage VSC para fornecer mais performance.

Timesync: Sincronização da hora entre o Host e a VM

Integrated Shutdown: Opção de desligar a VM pelo Hyper-V ou System Center Virtual Machine Manager.

Symmetric Multi-Processing (SMP) Support: Suporte para 4 processadores por VM.

Heartbeat: Possibilita o host saber se a VM está ligada e operacional.

Pluggable Time Source: Fornece um módulo de horário para disponibilizar uma fonte de hora mais precisa pra VM.

Embora não seja oficial, este mesmo IC também suporta o CentOS 5 e Ubuntu Server 10.10. É possível observar, conforme figura abaixo, os componentes do VMBus para o Ubuntu.

Ubuntu10

Figura 1: Ubuntu 10.10

Existem alguns exemplos de sistemas operacionais que suportam o IC criados por terceiros, como o IC para Debian 2.6.36, feito pelo especialista Yusuf Ozturk.

Para usar os ICs do Debian 2.6.36, basta executar os seguintes comandos após sua instalação:

apt-get update
aptitude update
wget -c
http://www.yusufozturk.info/linux/linux-image-2.6.36-hyperv-debian.
x86_64.deb
wget -c
http://www.yusufozturk.info/linux/linux-headers-2.6.36-hyperv-debian.x86_64.deb
apt-get install build-essential
dpkg -i linux-image-2.6.36-hyperv_2.6.36-hyperv-10.00.Custom_amd64.deb linux-headers-2.6.36-hyperv_2.6.36-hyperv-10.00.Custom_amd64.deb
echo -e "hv_vmbus\nhv_storvsc\nhv_blkvsc\nhv_netvsc" >> /etc/initramfs-tools/modules
update-initramfs –u –k 2.6.36-hyperv

Depois desses comandos e a reinicialização do servidor, o IC já estará funcionando, conforme figura 2:

Debian041

Figura 2: Debian no Hyper-V

Existe também uma versão para Unix do SCO OpenServer 5.0.7V que também contém o IC para Hyper-V. Para preparar um ambiente e demonstrar alguns SOs executando sistemas não Microsoft de um Webcast apresentado para a comunidade sobre Linux no Hyper-V em 2009, eu entrei em contato com os responsáveis do SCO OpenServer perguntando se havia algum plano para criar uma versão que desse suporte para o Hyper-V. Para minha surpresa o diretor do SCO, Daniel, me ligou informando que não havia ainda esse suporte e que ele já estava tentando contato junto com o time de virtualização da Microsoft para criar uma versão para o Hyper-V. Depois de alguns meses ele mandou uma versão teste para mostrar o novo sistema operacional. Este exemplo mostra o resultado do trabalho da comunidade e algumas conquistas que podemos obter com força de vontade e dedicação. Após a criação do SCO 5.0.7V ele me mandou um e-mail agradecendo a ajuda e cooperação.

O link da nova versão pode ser conferido abaixo:

http://www.sco.com/products/openserver507v/hyperv/

Na figura abaixo é possível ver também a máquina virtual executando o SCO OpenServer 5.0.7V.

SCO

Figura 3: SCO OpenServer 5.0.7V

Portanto, a lista de sistemas não Microsoft com integração com o Hyper-V é a seguinte:

· Ubuntu Server 10.0

· CentOS 5

· Debian 2.6.36

· SCO OpenServer 5.0.7V

· RedHat Enterprise 5.2, 5.3, 5.4 e 5.5

· Suse Linux Enterprise 10 SP3 e 11.

Esperamos que esta lista continue aumentando e que tenhamos cada vez mais sistemas de terceiros sendo executadas no Hyper-V.

Leandro Carvalho
MCSA+S+M | MCSE+S | MCTS | MCITP | MCBMSS | MCT | MVP Virtual Machine
MSVirtualization | WordPress | Winsec.org | ITCentral | LinhadeCodigo

6 thoughts on “Executando VMs não Microsoft no Hyper-V”

  1. Leandro,

    Parabéns pelo artigo, muito bom. Hoje tenho 2 servidores RedHat 4 virtualizados no HYPER-V sem o IC.

    Vou baixar o IC e fazer a instalação.

    Abraços,

    !!! Alison !!!

  2. Leandro,

    Eu gostaria de saber se é possível virtualizar o banco de dados Oracle no HYPER-V e se existe algum pré-requisito necessário para que seja possível virtualizar o Oracle.

    Abraços,

    !!! Alison !!!

  3. Leandro,

    Criamos um VM com dois virtual processor rodando RedHat 5.5 com IC 2.1 instalado, porém quando executamos a nossa aplicação aparece um diferença no timestamp para menor em duas execucoes seguidas. Abaixo o resultado da consulta:
    T1 = 5240458222000 – T2 = 5240442798000 Dif = 15424000
    T1 = 5240566137000 – T2 = 5240555460000 Dif = 10677000
    T1 = 5240805174000 – T2 = 5240796752000 Dif = 8422000
    T1 = 5241493373000 – T2 = 5241492028000 Dif = 1345000
    T1 = 5241777917000 – T2 = 5241769060000 Dif = 8857000
    T1 = 5243309821000 – T2 = 5243299902000 Dif = 9919000
    T1 = 5243591245000 – T2 = 5243584252000 Dif = 6993000

  4. Olá Leandro,

    Muito bom o artigo, eu estou com uma dúvida, tenho um Ubuntu 10.04 rodando em uma VM de 1ª Geração no Hyper-V do Windows Server 2012 Std. Criei um servidor de réplica, porém ele tem um hardware totalmente diferente e está com o Windows Server 2012 R2 Std. A partir dessa réplica coloquei as VMs em failover pois pretendo atualizar o servidor original para o novo Windows Server, meu problema é que o Linux não está reconhecendo a rede Legacy da configuração, e quando vejo, não sobe a rede. Como posso resolver isso?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>