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:

  1. 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.
  2. 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.
  3. Embora o VMWare esteja mais consolidado no mercado, as tecnologias utilizadas no Xen mostram-se bastante promissoras.
  4. 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.

Procedimentos:

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:

  1. Site: http://tldp.org/HOWTO/LVM-HOWTO/
  2. 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

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Geovane Gonçalves