sexta-feira, 1 de março de 2013

Virtualização: Montando um servidor NetBSD DOM0 com Xen


O que não vamos fazer

- instalar o NetBSD, recomendo baixar o cd de instalação e instalar em um HD que não tenha nada instalado, para evitar um "PQP PERDI TUDO".

O que vamos fazer

- Instalar Xentools e Xenkernel
- Configurar inicialização
- Instalar uma HVM com [windows]

O que vamos precisar

- CD de instalação do NetBSD
- Conexão com internet
- ISO de instalação do Windows

Iniciando

Efetuar a instalação do NetBSD, recomendo a leitura da documentação no site caso não tenha muita experiencia com o sistema operacional (http://www.netbsd.org/docs/guide/en/chap-exinst.html).

Agora vamos baixar os pkgsrc mais recente. Este passo pode ser feito durante a instalação do sistema operacional:

# cd /tmp
# ftp ftp://ftp.NetBSD.org/pub/pkgsrc/current/pkgsrc.tar.gz
# tar -xzf pkgsrc.tar.gz -C /usr
# rm pkgsrc.tar.gz

Instalação do xentools e xenkernel

# cd /usr/pkgsrc/sysutils/xentools41 && make install
# cd /usr/pkgsrc/sysutils/xenkernel41 && make install
# cd /dev && sh MAKEDEV xen

Agora vamos acessar o cd de instalação para copiar o kernel XEN DOM0:

# mount /cdrom
# cd /cdrom/amd64/binary/kernel
# cp netbsd-XEN3_DOM0.gz /
# gunzip netbsd-XEN3_DOM0.gz

Agora vamos alterar o boot.cfg para que tenhamos o boot do kernel com XEN micro kernel XEN, inserir a linha a baixo na segunda linha do arquivo /boot.cfg :

menu=Boot Xen with 256MB for dom0:load /netbsd-XEN3_DOM0 console=pc;multiboot /usr/pkg/xen41-kernel/xen.gz dom0_mem=256M,max:256M dom0_max_vcpus=1 dom0_vcpus_pin

Isto mesmo, na segunda linha, pois por enquanto não vamos colocar o Xen como default, visto que default está como 1.

Inserir as seguintes linhas no arquivo /etc/rc.conf:

xencommons=YES
xend=YES
xenwatchdog=YES
xendomains=YES
# xendomains="vm1 vm2" # esta linha é para iniciar a máquina virtual na inicialização do DOM0

E copiar rcs do diretório de exemplo para o /etc/rc.d

# cd /usr/pkg/share/examples/rc.d && cp xen* /etc/rc.d/

Criar a configuração para placa de rede bridge em /etc/ifconfig.bridge0 onde re0 é a sua
placa de rede:

create
!brconfig $int add re0 up

Agora reiniciar o computador com um reboot e na tela do boot escolher a opcão 2 (do kernel com XEN).

Para saber se está rodando pode usar o comando:

# xm info | more

Criando uma HVM windows:

Criar o arquivo da máquina em /etc/pkg/etc/xen/win2k3 com o conteudo:

kernel = "hvmloader"
builder='hvm'
memory = 1024
name = "win2k3"
vif = [ 'type=ioemu, bridge=bridge0' ]
disk = [ 'file:/home/vms/win2k3.img,hda,w', 'file:/home/isos/win2k3.iso,hdc:cdrom,r' ]
device_model = 'qemu-dm'
boot="dc"
sdl=0
vnc=1
stdvga=0
serial='pty'
tsc_mode=0

Criar o arquivo .img que será o HD da máquina virtual:

# qemu-img-xen create /home/vms/win2k3.img 40G

Agora para iniciar a VM:

# xm create win2k3

Para acessar o console da VM vamos precisar de um VNC, que para o acesso local vamos usa o vncviewer:

# vncviewer localhost

Caso queira acesso ao console da máquina virtual pelo vnc via rede, pode alterar o arquivo /usr/pkg/etc/xen/xend-config.sxp adicionando as linhas:

(vnc-listen '0.0.0.0')
(vnc-password 'xenha')

Dicas:

- Vamos alterar o /boot.cfg a opção default para 2 (Xen Dom0)
- Se for usar a inicialização automática das VMs, criar o diretório /var/lib/xen
- Para otimizar o uso do processador do Dom0 inserir no /etc/rc.local a linha:

/usr/pkg/sbin/xm sched-credit -w 512 -d 0 

- Após quebrar muito a cabeça, muito mesmo, num momento em que estava tentando subir
a quarta VM em um servidor, começaram os erros de hotplug 768 e 5632, e não conseguia subir a VM de forma alguma, pesquisa de lá pesquisa de cá, e tá ai a solução, tem que criar novos vnd's, simples assim:

# cd /dev && ./MAKEDEV vnd4 vnd5

Nenhum comentário: