De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Xen - Instalando o Windows 2003 Server no Debian Etch amd64
Colaboração: Geovane Gonçalves
Data de Publicação: 17 de Outubro de 2007
A virtualização de servidores não é nenhuma novidade e tem sido utilizada pela
IBM talvez a mais de três décadas. Entretanto, o atual contexto tecnológico têm
potencializado o seu desenvolvimento. Com a fabricação de processadores cada
vez mais poderosos que utilizam tecnologias avançadas como múltiplos núcleos
e suporte a virtualização por hardware a preços bastante competitivos, a
virtualização tornou-se alcançável para a maioria das organizações. Além disso,
no mundo Open Source já existem ferramentas consolidadas de virtualização como
o Xen, OpenVZ e Vserver. Como benefícios diretos da virtualização podemos
citar: potencialização no uso dos recursos de processamento disponível,
economia de energia e espaço, flexibilidade de gerenciamento, plataforma de
disaster recovery e maior disponibilidade de serviços.
Existem diversas técnicas de virtualização utilizadas, no nosso contexto
as mais interessantes são: virtualização assistida por hardware -Intel VT
e AMD-V- (Xen), paravirtualização (Xen, VM-Ware) e virtualização em nivel
de sistema operacional (OpenVZ e Linux Vserver). A performance cresce na
mesma seqüência das plataformas citadas. Mais informações sobre as técnicas
de virtualização podem ser obtidas no artigo bastante interessante: x86
Virtualization da Wikipédia (http://en.wikipedia.org/wiki/X86_virtualization).
Utilizaremos o Xen nessa tarefa, com a técnica de virtualização por hardware, pois a instalação do Windows sobre o Linux só é possível através dessa técnica ou da virtualização completa (em processadores sem suporte à virtualização) como o VMWare, que oferece um desempenho similar.
Optamos pelo Xen pelos seguintes motivos:
- Ferramenta Open Source, com histórico razoável em virtualização de sistemas operacionais livres (Linux e outros "unix like..") que utiliza a técnica de paravirtualização, onde a máquina hospedeira e a virtual utilizam sistemas operacionais modificados, para, em conjunto com o hipervisor, utilizarem o hardware de maneira otimizada, buscando a performance nativa. Como o Windows é um sistema fechado, até então não era suportado.
- O Xen agregou a sua plataforma de virtualização as características de virtualização por hardware disponível nas novas CPUs, permitindo assim, a virtualização de servidores Windows. Embora a performance de I/O seja baixa na versão Open Source, existe a tendência de que a comunidade de desenvolvedores crie a versão Open Source dos drivers paravirtualizados (rede e disco) para Windows. Esses drivers estão disponíveis na versão comercial do Xen e aceleram operações de I/O.
- Embora o VMWare esteja mais consolidado no mercado, as tecnologias utilizadas no Xen mostram-se bastante promissoras.
- Além disso, caso exista interesse em migrar para uma plataforma suportada comercialmente, a opção pelo Xen oferece uma boa relação custo/benefício em comparação ao VMWare e também possui uma plataforma de gerenciamento das máquinas virtuais, além dos já citados drivers paravirtualizados para Windows.
A recente aquisição da XenSource pela Citrix e a supervalorização das
ações ofertadas na Nasdaq pela VmWare escrevem novos capítulos nessa
história. Acrescente-se o suporte à virtualização em hardware, a lei de Moore,
e teremos um cenário do que o mercado está aguardando na área de virtualização
para os próximos anos.
Objetivo
Instalação de um servidor virtual Windows 2003 sobre uma máquina hospedeira rodando Linux Debian Etch amd64.
Requisitos
Hardware com suporte à virtualização, que pode ser verificado através dos
seguinte procedimentos:
Para processadores Intel:
#cat /proc/cpuinfo | grep vmx
Para processadores AMD:
#cat /proc/cpuinfo | grep svm
As flags vmx e svm presentes, indicam suporte à virtualização por
hardware da Intel e da AMD, respectivamente. Também é importante verificar
se a virtualização está habilitada na Bios.
Nessa instalação utilizamos a seguinte plataforma de hardware:
Servidor Dell PowerEdge 2950 com:
- Dois processadores QuadCore Intell Mod E5310;
- 08 GB de RAM;
- 272 GB de disco rígido em RAID 5, controladora SCSI PERC.
Plataforma de Software:
Sistema operacional Debian Etch (4.0 Stable) amd64 instalado e CD de instalação
do Windows Server 2003 R2 64 Bits.
1. Instalação do Xen
A versão estável do debian possui um pacote completo (versão
atual:xen-linux-system-2.6.18-4-xen-amd64) que instala o kernel modificado
para rodar o xen, o hypervisor e algumas ferramentas necessárias.
Infelizmente a versão do xen disponibilizada no pacote
apresentou bugs que não permitiram o funcionamento correto do
Windows 2003 64 bits. Assim, foi necessário baixar e instalar
a última versão do Xen (3.1 binary tarball), disponível em:
http://www.xensource.com/download/dl_31tarballs.html. Após baixar o pacote
binário correspondente à nossa plataforma basta seguir o guia de instalação
da Xensource (http://www.xensource.com/files/xen_install_windows.pdf),
que aliás, é bastante completo e cobre desde particionamento com LVM para
abrigar a máquina virtual até um exemplo de arquivo de configuração.
Resumidamente, o processo de instalação do pacote envolve os seguintes passos:
Descompactar o pacote e executar o script de instalação (./install.sh)
Identificar a versão do kernel que foi instalada e gerar a lista de dependência dos módulos:
#depmod 2.6.18-xen
Criar uma nova imagem ramdisk de inicialização para o kernel do xen:
#mkinitramfs /boot/initrd-2.6.18-xen.img 2.6.18-xen
Adicionar o daemon do xen às rotinas de inicialização do Debian, caso ainda
não esteja, através do aplicativo rcconf .
Adicionar a nova entrada do kernel xen ao grub, editando o arquivo /boot/grub/menu.lst:
title Xen 3.1 / XenLinux 2.6
root (hd0,2)
kernel /boot/xen-3.1.gz console=vga
module /boot/vmlinuz-2.6-xen root=/dev/sda3 ro console=tty0
module /boot/initrd.img-2.6-xen
savedefault
Bootar com o novo kernel.
Após o boot, verificar se o xen identificou corretamente o suporte à
virtualização por hardware através do seguinte comando:
#xm info | grep cap
A saída deve conter a seguinte string: hvm-3.0-x86_64 , correspondente
a nossa arquitetura. Caso não apareça, talvez você não tenha habilitado o
suporte na bios ou o processador não tem esse suporte.
2. Configuração da Máquina Virtual Windows
Em primeiro lugar deve ser criada a partição que suportará a nova máquina
virtual. Sugerimos, como o próprio manual da Xensource, pela flexibilidade
oferecida, que se utilize LVM2. A criação dos volumes lógicos não vai ser
abordada nesse documento e pode ser aprofundada nos seguintes locais:
- Site: http://tldp.org/HOWTO/LVM-HOWTO/
- Capítulo 36 do livro Descobrindo o Linux
2a Edição de João Eriberto Mota Filho Editora Novatec, que aliás é uma
ótima literatura de referência para administração de servidores Linux,
especialmente Debian.
O arquivo de configuração da máquina virtual deve ser colocado na pasta
/etc/xen/
. O script de instalação do Xen colocou nessa pasta alguns modelos
de configuração. Podemos utilizar como base o arquivo xmexample.hvm que
utiliza o módulo para arquitetura x86. O outro exemplo xmexample.vti carrega
o módulo para plataforma i64. Esses arquivos possuem diversos comentários
sobre parâmetros de configuração.
Segue abaixo o arquivo de configuração utilizado em nossa instalação:
import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir = 'lib'
kernel = '/usr/lib/xen/boot/hvmloader'
builder='hvm'
memory = 512
shadow_memory = 8
name = "vm-windows03"
vcpus=2
vif = [ 'type=ioemu, bridge=xenbr0' ]
disk = [ 'phy:/dev/vms/vm-windows03,ioemu:hda,w', 'phy:/dev/hda,hdd:cdrom,r' ]
on_poweroff = 'destroy'
on_reboot = 'restart'
n_crash = 'restart'
device_model= '/usr/lib/xen/bin/qemu-dm'
boot="cd"
sdl=1
vnc=0
A configuração de rede para a máquina virtual é feita através da seguinte
linha do arquivo de configuração acima:
vif = [ 'type=ioemu, bridge=xenbr0' ]
Como pode-se deduzir é feita através de uma bridge (xenbr0) criada
automaticamente pelo Xen nos seus scripts de inicialização. Confirme se
isso ocorreu como deveria: no arquivo "xend-config.sxp" a seguinte linha
deve estar descomentada:
(network-script network-bridge)
Caso necessário, descomente-a e reinicie o Xen:
#/etc/init.d/xend restart
O efeito prático dessa configuração de rede é similar a você conectar a
interface de rede de sua máquina virtual a uma porta do mesmo switch onde
está conectada a sua máquina real.
Coloque o CD de instalação do windows no drive de CDRom.
Agora podemos levantar a máquina virtual com a ferramenta de gerenciamento do Xen, o XM:
#xm create vm-windows03
Se tudo correu bem, você deve estar visualizando a tela de instalação do Windows.
Referências:
Geovane Gonçalves
Analista de Rede
Porto Alegre -RS