Como configurar um laboratório de virtualização (I)


Agora que terminei a explicação do panorama geral da maior parte da teoria relacionada com Alta Disponibilidade e Virtualização é altura de começar a testar alguns desses conceitos e vê-los em acção.

O meu objectivo para os próximos artigos é produzir uma série de guias mostrando como qualquer pessoa pode facilmente instalar um punhado de máquinas virtuais e explorar as possibilidades maravilhosas fornecidos por esta tecnologia. Eu vou usar um velho laptop com uma CPU Turion 64 X2 CPU, um disco SSD de 250 Gb e 4 Gb de RAM combinado com um desktop com o Windows 7 num Athlon 64 X2 4800 + com 4 Gb de RAM e muito espaço livre em disco espalhado por três discos rígidos SATA.

Criação das Máquinas Virtuais


Não vou perder tempo com os detalhes da instalação do sistema operativo porque estou a assumir que os leitores destes artigos estarão muito à frente dessa fase.

Comecei por instalar uma nova cópia do Windows Server 2008 R2 SP1 Standard numa partição secundária no meu laptop. Uma vez concluída a instalação de todas as actualizações disponíveis no Windows Update e a activação do sistema operativo, estava pronto para adicionar a função Hyper-V, a fim de ser capaz de instalar as máquinas virtuais (MVs). Para isso bastou ir ao Server Manager/Roles, iniciar o Add Roles Wizard, seleccionar Hyper-V e seguir os procedimentos. Nada de especial até agora, certo?

Adicionar Hyper-V Role
Nota: Todas as imagens são clicáveis e vão abrir uma versão maior numa janela separada.


Agora era altura de começar a configurar as coisas dentro do Hyper-V. Eu começo sempre por criar uma rede virtual que vai permitir que as minhas MVs se liguem ao exterior do anfitrião físico.

External Virtual Network

Abri o Virtual Network Manager e, como se pode ver na figura, criei uma External Network, renomeei-a para External (duh…!) e liguei-a à minha placa de rede física, para que as MVs pudessem aceder-lhe directamente usando esta ligação.

Agora estava pronto para instalar a minha primeira MV o que é também um procedimento simples:
  1. Escolher um nome: LAB-DC será o meu controlador de domínio;
  2. Atribuir memória (RAM): 500 Mb vão chegar por agora;
  3. Configurar a rede: nesta fase eu criei apenas uma rede virtual por isso tive que escolher a rede External;
  4. Criar um disco rígido virtual: Eu criei um novo ficheiro .vhd com 20 Gb;
  5. Opções de instalação: Instalei o Windows Server 2008 Enterprise Edition SP1 a partir de um DVD;
  6. Verifique suas configurações: As configurações padrão servirão para começar mas, antes de iniciar a instalação, pode alterar algumas outras configurações para ajustar o comportamento da MV às suas necessidades.

Opções da Máquina Virtual

Depois da instalação é uma boa prática actualizar completamente o sistema operativo com todos os patches disponíveis, mas não há nenhuma vantagem em activá-lo nesta fase e já vão entender porquê daqui a um instante. Agora com a primeira MV pronta e totalmente actualizada, era altura de instalar mais uma ou duas. Mas por que não clonar a primeira? Isto pode ser feito correctamente usando o System Center Virtual Machine Manager ou pode ser feito manualmente. Em qualquer caso, o primeiro passo é usar o utilitário sysprep, a fim de "limpar" a máquina.

Clonagem da Máquina Virtual


Realizar uma exportação de máquina virtual é simples. Como acontece com qualquer outra operação de clonagem, deveremos configurar a máquina virtual que desejamos clonar (não tente clonar um servidor virtual em produção), e em seguida, executar o sysprep. Se tivermos duas máquinas que são completamente idênticas, então a rede deixa de funcionar. Para evitar complicações, é obrigatório garantir que algumas coisas são únicas para cada computador:
  • O Windows Security Identifiers (SIDs);
  • O endereço Media Access Control (MAC);
  • O endereço do Protocolo Internet (IP);
  • O NetBIOS e Fully Qualified Domain Name (FQDN).
Dado que alguns atributos do sistema têm necessariamente que ser únicos, a simples cópia dos ficheiros .vhd do disco rígido para a instalação de outra MV sobre eles, não vai funcionar.
No Windows Server 2008, o sysprep é instalado por norma. Está disponível em C:\Windows\System32\ Sysprep executando sysprep.exe. Ao fazê-lo, verá uma janela semelhante ao que é mostrado na figura seguinte.

sysprep

Como se pode ver na figura, a interface do sysprep é bastante simples, mas mesmo assim é muito importante escolher as opções correctas. Caso contrário, podemos ter que passar outra vez pelo processo de configuração e preparação de tudo de novo.

A lista de opções System Cleanup Action contém duas opções; Enter System Out of Box Experience (OOBE) e Enter System Audit Mode. Escolhi a opção Enter System Out of Box Experience (OOBE) e também a opção Generalize. Caso contrário, o sistema não será despojado dos seus atributos de identificação exclusivos. Finalmente, nas Shutdown Options, defini a opção Shutdown para desligar. É importante seleccionar Shutdown e não Restart porque senão o sistema recém generalizado irá reiniciar e entrar em modo de mini-instalação do Windows, o que irá efectivamente desfazer todo o trabalho de preparação.

Agora comecei o verdadeiro processo de exportação. Para isso, abri o Hyper-V Manager e seleccionei a MV que ia exportar. Em seguida, cliquei no link Export que está localizado à direita no painel inferior. Quando o fiz, o Windows abriu a caixa de diálogo Export Virtual Machine, mostrada na figura a seguir. Introduzi a pasta de destino e esperei um par de minutos.

Virtual Machine Export
Depois de exportar a minha MV, podia cloná-la. Não há nenhum assistente de clonagem no Hyper-V, mas uma máquina preparada com o sysprep pode ser facilmente clonada manualmente apenas copiando e renomeando o ficheiro .vhd e usando-o como disco de base para uma nova MV. Sim, é tão simples como isso. Pelo menos para a criação de um ambiente de laboratório, num cenário de produção temos que prestar atenção a um conjunto diferente de detalhes, mas eu não vou entrar nisso agora.

Vejam o que eu fiz:

Resultado da Clonagem das MVs

Peguei no ficheiro exportado LAB-DC.vhd da pasta de destino (C:\Export) e copiei-o para algumas pastas criadas anteriormente sob a pasta padrão Hyper-V\Virtual Hard Disks. Depois renomeei os ficheiros .vhd para LAB-NODE1.vhd e LAB-NODE2.vhd e usei esses ficheiros como discos rígidos para novas MVs. Nalguns minutos tinha dois clones do meu anteriormente criado e totalmente actualizado Windows Server 2008 SP1 Enterprise.

Depois de iniciadas, todas as MVs tiveram que ser renomeadas e activadas (agora sim, foram activadas!) mas isso demorou alguns minutos em vez das horas necessárias para instalar e actualizar múltiplas cópias novas do sistema operativo. Além disso, mantive uma cópia do ficheiro .vhd exportado e generalizado com o sysprep para usar como fonte para quaisquer futuros clones.

Configurar as Ligações Virtuais


Antes de explicar o que fiz para configurar a rede para todas as MVs, vamos dar uma espreitadela ao que entretanto aconteceu no sistema operativo anfitrião. Assim que criei a External Network dentro do Hyper-V, uma nova rede surgiu nas Network Connections do anfitrião. Eu renomeei-a para VLAN apenas para tudo ser mais claro.

Host Network Connections

Antes de avançarmos mais, penso que será melhor explicar alguns detalhes do que está realmente por trás de toda esta magia.

Breve análise do Hyper-V


Lembram-se quando eu passei por todos os diferentes tipos de virtualização, nomeadamente os diferentes hipervisores usados na virtualização total? Bem, a fim de entender melhor o que vem a seguir, tenho que dar-vos alguns detalhes adicionais sobre a forma como o Hyper-V funciona.

O Hyper-V é um hipervisor de Tipo 1 com micro kernel e exige aceleração de hardware.

Isso significa que todos os sistemas operativos num ambiente Hyper-V são na realidade sistemas operativos hóspedes. Alguns de vocês provavelmente estão a perguntar "E o sistema operativo que eu usei para instalar o Hyper-V?" A resposta está no processo de instalação do próprio Hyper-V, porque antes disso temos que ir à BIOS e permitir a virtualização de hardware. Se o seu processador não suporta a virtualização de hardware, desista. Uma vez permitida a virtualização de hardware, podemos então instalar o Hyper-V. Mas o Hyper-V tem que vir de algum lugar e realmente podemos instalar o Hyper-V Server, que é um download gratuito e a versão de linha de comando do Windows Server com apenas o papel do Hyper V como uma opção para instalar.

Após a instalação do Hyper-V, o sistema exigirá uma reinicialização. Quando a máquina reinicia, o Hyper-V passa a regular a inicialização de todos os sistemas operativos, mesmo do sistema operativo que foi usado para escrever o hypervisor (Hyper-V) no hardware físico. Mas este sistema operativo original tem uma função especial visto que pode realmente escrever no hypervisor pelo que não se chama simplesmente um sistema operacional hóspede mas sim Sistema Operacional Principal ou Partição Pai (Parent Partition).

Hyper-V
No Hyper-V, a partição pai não tem total controlo sobre o hardware do servidor. A maioria das funções de hardware são geridas pelo hipervisor que garante que os recursos de hardware são disponibilizadas para cada máquina virtual e para o servidor do sistema operacional principal.
Neste caso, a partição pai não usa directamente o adaptador de rede física. Em vez disso, todas as solicitações de rede passam através do adaptador de rede virtual, e depois através de um switch virtual, e, finalmente, ao adaptador de rede física.
Assim, o switch de rede virtual serve como um elo entre os adaptadores de rede física e virtual. Mas talvez fosse melhor se nos concentrássemos em coisas mais práticas, certo?

Já chega de teoria!

Ligar as Máquinas Virtuais


Estas são as definições para a minha Physical Connection:

Propriedades da Physical Connection
E as configurações para a ligação VLAN

Propriedades da VLAN

Como podem ver nas figuras anteriores, a VLAN tem um IP fixo, enquanto a que a Physical Connection está a usar DHCP e, para garantir a conectividade exterior simultânea para o anfitrião (partição pai) e para as máquinas virtuais, tem que ser partilhada. Agora vamos ver qual o aspecto da rede virtual nesta fase. Do ponto de vista das MVs, temos o seguinte::
 Rede Virtual vista das MVs

O Switch é puramente virtual, criado pelo Hyper-V,  e o Gateway parece ser a máquina anfitrião física. Mas, do ponto do anfitrião, temos algo distinto:

Rede Virtual vista do host
O anfitrião pode ver o Gateway real, o meu router, e o Desktop Windows 7 ligado a ele, porque estão na mesma sub-rede com IPs atribuídos pelo serviço DHCP do router. Esta pode ser uma configuração muito útil se pretendermos isolar as MVs e, ao mesmo tempo, dar-lhes ligação exterior usando a partição pai como um gateway.

Redes Virtuais
Isto é o que está a acontecer do ponto de vista de virtualização. O resultado final é que a partição pai, a partição filho 1, partição filho 2 e a partição filho 3 podem comunicar entre si porque cada uma dessas partições está ligada a um switch virtual comum dentro da partição pai. Além disso, eles também podem comunicar com o PC Desktop ligado ao router físico.

Nesta fase todas as minhas máquinas, duas físicas e três virtuais, têm pleno acesso à internet e podem comunicar entre elas sobre a minha LAN. Então posso avançar para a próxima fase: criar MVs dentro do computador desktop e ligá-las à rede.

Isso será o tema do próximo artigo...