Infra - Virtualização

Executando Máquinas Virtuais não Microsoft no Hyper-V

Neste artigo você verá como executar máquinas virtuais de outras plataformas no Hyper-V

por Leandro Carvalho



Executando Máquinas Virtuais não Microsoft no Hyper-V

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 Má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 conhecidos como enlightenment, e para as 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 executados no Hyper-V.

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

Leandro Carvalho

Leandro Carvalho - Leandro Carvalho trabalha em um parceiro na Australia como instrutor e engenheiro de sistemas em produtos Microsoft como Windows Server, virtualização, ISA Server, Exchange Server, System Center, CRM Server, Sharepoint e sistemas clientes, além de ajudar a comunidade constantemente com artigos, palestras e foruns.
Possui as certificações MCP/MCSA+M+S/MCSE+S/MCTS/MCITP/MCBMS, MCT e MVP Virtual Machine. No ano de 2009 ele ganhou o prêmio MCT Awards destaque do ano da América Latina e em 2010 o MVP awards especialista em virtualização.
Blog: http://msmvps.com/blogs/msvirtualization
Twitter: @leandroeduardo