Instalando os Serviços de Integração do Hyper-V no CentOS 5.8 e 6.3 e Kernel 2.6.32+

Os Serviços de Integração do Hyper-V possibilita aos computadores virtualizados acesso à internet e a discos SCSI (instalação dos drivers).

Ele não acompanha o Windows, sendo necessário baixar a ISO no Centro de Downloads da Microsoft [download]. Do lado esquerdo (na barra de opções) selecione, em “Download type“, a opção “Driver“.

CentOS 5.8 e 6.3

Antes de instalar, recomendo atualizar o sistema operacional usando o comando:

yum update

Se estiver sem internet, use o adaptador de rede herdado.

Você pode ver a versão instalada no sistema lendo as informações de um dos drivers instalados no sistema com o comando

modinfo hv_vmbus

Após o download, inicie o computador virtual e, no menu superior, expanda Mídia > Unidade de DVD > Inserir disco… e selecione a ISO baixada.

Agora, precisamos montar o disco para podermos acessar o instalador.

mount /dev/cdrom /media

Se você está atualizando o Serviço de Integração, é possível que esteja sem acesso ao Drive de CD/DVD. Isso por que a Microsoft desinstalou o driver IDE padrão do CentOS (ata_piix) substituindo-o pelo dela (hv_storvsc), removendo o suporte ao Drive de CD/DVD. (O serviço de integração não era para aumentar a compatibilidade ao invés de diminuí-la?). Se a mensagem “mount: você precisa especificar o sistema de arquivos” aparecer, restaure o antigo driver usando o comando:

insmod /lib/modules/$(uname -r)/kernel/drivers/ata/ata_piix.ko

Precisamos acessar o diretório de acordo com a versão do CentOS usada. Acessaremos o diretório RHEL63. Você pode usar o comando ls -la para mostrar os diretórios disponíveis.

cd /media/RHEL63 # ou RHEL58

Use ./install.sh ou ./upgrade.sh dependendo da operação que você está realizando (pode listar os arquivos disponíveis no diretório com o comando ls). Após a instalação, reinicie o sistema e pronto! Estamos com os drivers instalados e com acesso aos recursos do Hyper-V!

Distribuições com Kernel 2.6.32+

Nota: A partir do Ubuntu 12.04 LTS, os drivers do Hyper-V (2.1) são instalados por padrão. Sim, há uma versão mais recente (3.4) disponível, mas ela é destinada apenas ao Red Hat (e distribuições derivadas) e SUSE Linux, únicas distribuições suportadas oficialmente pela Microsoft. [link]

Você pode habilitar os módulos (“drivers“) do Hyper-V no Ubuntu lendo o post escrito pelo pessoal do TechNet, da Microsoft. [link] Mas toda vez que iniciava os módulos, o Linux deixava de iniciar.

Se isso acontecer com você, use o Adaptador de rede herdado (a internet funcionará se o módulo Tulip estiver disponível) e não use o Serviço de Integração.

Se puder, atualize o sistema antes de continuar com os comandos:

apt-get update  # atualiza lista de servidores com atualizações
apt-get upgrade # realiza atualização dos componentes encontrados

A versão mais recente do Kernel pode ser instalada com os comandos:

apt-get install linux-headers-server linux-image-server linux-server
apt-get autoremove # remove versão antiga do Kernel
reboot

O comando pode mudar de acordo com a versão do Ubuntu instalada (desktop ou servidor), mas a lista de sugestões de atualizações pode ser vista ao executamos apt-get upgrade no terminal.

Pensava que era devido a falta do Serviço de Integração que a tela ficava lenta, na qual “linha por linha” era escrita no terminal. Mas não, é devido ao driver de vídeo utilizado por padrão. Precisamos desabilitá-lo para que o Ubuntu procure por outro, para que cada linha seja escrita instantaneamente e pare a lentidão! Para isso, abra o arquivo /etc/modprobe.d/blackilist-framebuffer.conf e adicione na lista de exclusão de drivers de vídeo a linha:

blacklist vga16fb

Se a mensagem abaixo aparecer na parte superior da tela de logon após a reinicialização:

piix4_smbus 0000.00.07.0: SMBus base address uninitialized – upgrade bios or use force_addr=0xaddr

É por que o driver hv_vmbus substituiu o driver SMBus padrão do Ubuntu pelo do Hyper-V. Podemos desabilitar o driver padrão e usar apenas o disponibilizado pelo Hyper-V editando o arquivo /etc/modprobe.d/blacklist.conf e adicionando a linha:

blacklist i2c_piix4

Você pode verificar quais drivers do Hyper-V estão disponíveis usando o comando:

lsmod |grep hv

Pode usar o comando modinfo [resultado encontrado] para ver as informações sobre o driver, como versão, por exemplo.

Se você recebe, antes de aparecer a tela de logon, a mensagem error: no such disk, pode desconsiderar a mensagem, ok? Ela ocorre devido ao fato do Hyper-V não nos deixar remover o disquete nas opções da VM. Como não há disco presente, o grub retorna a mensagem acima. [link]

Com a atualização para o kernel 2.6.32-279.11.1.el6 (i686), o CentOS não iniciava, mostrando uma mensagem de kernel panic. Isso não ocorreu quando a atualização foi feita no CentOS x86_64.

Ele ocorre devido ao driver IDE padrão do CentOS (ata_piix) ser substituído pelo do Hyper-V (hv_storvsc) e, por este não ser compatível com a nova versão do Kernel, a VM deixou de iniciar.

Antes da versão 3.1 dos Serviços de Integração, toda vez que atualizássemos o Kernel precisávamos desinstalar os Serviços de Integração, atualizar o Kernel e então reinstalar os Serviços. Se não fizéssemos isso, teríamos “tela-azul” (kernel panic). [link] Para não precisarmos fazer todo este processo, precisávamos instalar os Serviços de Integração manualmente usando o DKMS (Dynamic Kernel Module Support). Como o nome indica, ele permite que adicionemos drivers (módulos) ao Linux sem que estes estejam integrados ao Kernel. Assim, eles se mantém mesmo após a atualização do Kernel. Com os pacotes RPM, este processo é automático e não precisa ser realizado. [link]

Para solucionarmos o problema, precisamos refazer o pacote RPM para o novo kernel.

Primeiro, instale o grupo “Development Tools” com o YUM. Ele possui todas as dependências que o rpm-build (utilitário que usaremos para refazermos o pacote) necessita para funcionar, como o make, gcc kernel-devel.

yum groupinstall "Development Tools"
yum install rpm-build

Se está sem acesso a internet, use o Adaptador de rede herdado.

Após a instalação, precisamos criar os diretórios que o rpm-build usa com o comando:

mkdir ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

Precisamos definir a macro para o rpm-build. Podemos comparar uma macro com a variável %PATH% do Windows, que indica ao Windows onde procurar um executável quando executamos um comando no prompt. (Para uma explicação mais detalhada, leia este post). No caso, precisamos definir uma macro que indique o diretório onde o rpm-build se encontra. Mais informações sobre macros e o rpmbuild podem ser encontradas aqui.

echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

Com o rpmbuild instalado e configurado, podemos começar!

Coloque o disco de integração do Linux na unidade de CD-ROM, acesse o diretório de acordo com a versão da sua distribuição e instale o código fonte do Hyper-V com o comando:

rpm -ivh microsoft-hyper-v-rhel63.3.4-1.20120727.src.rpm

Após a instalação, será criado um arquivo spec no diretório ~/rpmbuild/SPECS. Este arquivo é um arquivo de instrução, que indica como um determinado pacote RPM tem que ser feito, sendo que o rpmbuild somente segue as instruções presentes neste arquivo.

Para refazermos o pacote, acesse o diretório SPECS em rpmbuild e use o comando:

rpmbuild -bb microsoft-hyper-v.spec

O argumento -bb indica que queremos apenas refazer o pacote de instalação sem fazermos um pacote rpm que contém o código-fonte. Uma lista de opções disponíveis pode ser encontrada em http://www.rpm-based.org/how-to-create-rpm-package-p4-building-the-package

Agora, precisamos apenas instalar os novos pacotes. Para isso, acesse o diretório ~/rpmbuild/RPMS e use os comandos (necessário usar nesta ordem):

rpm -ivh kmod*
rpm -ivh microsoft*

Após a instalação, reinicie o sistema e pronto! ^-^’

Installing Linux on Hyper-Vhttp://codechief.wordpress.com/2012/04/13/installing-linux-on-hyper-v/

CD-ROM device is no longer accessible after installing the Hyper-V Linux Integration Services in a Red Hat or CentOS virtual machine http://support.microsoft.com/kb/2600152

Serious issues with Kernel 2.6.32-279.11.1.el6 – http://mail.blueonyx.it/pipermail/blueonyx/2012-October/011639.html

Fix: piix4_smbus error in Virtual Machines – http://automation.binarysage.net/?p=1466

Fix: Slow Refresh Rate On Hyper-V console running Ubuntu 10.04 LTS – http://jasonbos.co/fix-slow-refresh-rate-on-hyper-v-console-runn

Anúncios

2 comentários em “Instalando os Serviços de Integração do Hyper-V no CentOS 5.8 e 6.3 e Kernel 2.6.32+

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s