Instalando Xen 4.0 no Debian 6 Squeeze – 64 bits

1. Instalação

  •  Instalar o sistema debian 6 64 bits
  •  Atualizar o sistema

apt-get dist-upgrade

  •  Instalar os pacotes necessários

 apt-get install xen-hypervisor-4.0-amd64 linux-image-xen-amd64 xen-tools xen-qemu-dm vncviewer vnc4server xinetd xterm rsync

  • Após instalar o xen, é necessário corrigir a inicialização do mesmo no grub2

mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux && update-grub2

2. Configuração do Xen

  • Criar backup do arquivo de configuração padrão do xen

cp -a /etc/xen/xend-config.sxp /etc/xen/xend-config.sxp.bkp

  • Editar o arquivo /etc/xen/xend-config.sxp como exemplo entre abixo:

(logfile /var/log/xen/xend.log)
#(loglevel DEBUG)

(xend-http-server yes)
(xend-port 8000)
(xend-address localhost)

(xend-unix-server yes)

(network-script ‘network-bridge antispoof=yes’)

(vif-script vif-bridge)

(dom0-min-mem 196)

(enable-dom0-ballooning yes)

(total_available_memory 0)

(dom0-cpus 0)

(vnc-listen ‘0.0.0.0’)
(vncpasswd ‘senha_vnc’)

(keymap ‘pt-br’)

  • Editar o arquivo /etc/xen-tools/xen-tools.conf e verificar se as linhas abaixo estão descomentadas, caso contrário, descomentar:

serial_device = hvc0
serial_device = tty1
disk_device = xvda
pygrub=1

3. Configuração das DomUs Para-Virtualizados (Máquinas Virtuais)

  •  Criar diretório onde ficarão as servidores virtualizados

mkdir -p /nome_do_diretorio/domains

3.1 Configuração de DomU de Servidor existente via rsync

  •  Criar diretórios de virtualização do servidor

mkdir -p /nome_do_diretorio/domains/nome_do_servidor/tmp

  • Criar HD virtual do servidor

cd /nome_do_diretorio/domains/nome_do_servidor

qemu-img create -f raw hd_root.img 50G

mkfs.ext3 -F hd_root.img

qemu-img create -f raw hd_swap.img 2G

mkswap -f hd_swap.img

  •  Criar arquivo de configuração da servidor
  • use o editor de texto de sua preferência
  • cd /nome_do_diretorio/domains/nome_do_servidor
  • vim nome_do_servidor.cfg

import commands
krn_vers = commands.getoutput(‘uname -r’)

name = ‘nome_do_servidor’
builder = ‘linux’
ostype = ‘squeeze’ (Em distribuições debian-like, usar o nome da versão. Em distribuições centos, usar centos-{3,4,5 ou 6}, para demais, consulte tabela)
disk = [
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_root.img,xvda1,w’,
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_swap.img,xvda2,w’
]
memory = 1024 (Quantidade de memória)
vcpus = 1 (Quantidade de processadores)
arch = ‘amd64’ (Arquiterura do servidor: i386 ou amd64)
vif = [ ‘bridge=xenbr0’ ]
kernel = ‘/boot/vmlinuz-‘ + krn_vers
ramdisk = ‘/boot/initrd.img-‘ + krn_vers
root = ‘/dev/xvda1 ro’
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’
extra = ‘xencons=xvc console=xvc0 video=tty’
vfb = [ ‘type=vnc,vncdisplay=X,vnclisten=0.0.0.0,vncpasswd=senha_vnc’ ] (vncdisplay=X é o mesmo que: 590X, ou seja, vncdisplay=1 significa 5901)

  •  Liberar acesso ao servidor xen (Dom0) via rsync para o servidor que esta sendo virtualizado
  • use o editor de texto de sua preferência
  • vim /etc/rsyncd.conf

# arquivo de log
log file = /var/log/rsyncd.log

# host
[nome_do_servidor](modulo_do_servidor)
path = /nome_do_diretorio/domains/nome_do_servidor/tmp
read only = false
uid = root
hosts allow = ip_do_servidor
transfer logging = yes
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.

  • Montar imagem do HD virtual no diretório tmp

cd /nome_do_diretorio/domains/nome_do_servidor

mount -o loop hd_root.img tmp

  • Rsync do servidor para o HD virtual
  • Logar no servidor que esta sendo virtualizado e começar o rsync

rsync -vaH –numeric-ids –stats –progress –exclude “/mnt/*” –exclude “/proc/*” –exclude “/sys/*” –exclude “/tmp/*” –exclude “/var/tmp/*” / ip_do_servidor::modulo_do_servidor

  • Finalizar instalação
  • cd /nome_do_diretorio/domains/nome_do_servidor/tmp
  • use o editor de texto de sua preferência
  • FSTAB – Debian/Ubuntu

vim etc/fstab —  (NÃO COLOCAR “/” ANTES DO ETC

/dev/xvda1       /               ext3    defaults,errors=remount-ro 0       1
/dev/xvda2       none            swap    sw              0       0
proc            /proc           proc    nodev,noexec,nosuid     0       0

  • INITTAB – Debian / CentOS

vim etc/inittab

–Incluir linha–

#Xen
co:2345:respawn:/sbin/agetty 38400 xvc0

  •  EVENT.D – Ubuntu

mkdir etc/event.d

vim etc/event.d/xvc0

# xvc0 Xen Console
# This service maintains a getty on xvc0 from the point the system is
# started until it is shut down again.
start on runlevel 2
start on runlevel 3
stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6
respawn
exec /sbin/agetty 38400 xvc0

  • Configurar rede, se necessário:

vim etc/network/interfaces

  • Configurar securetty

vim etc/securetty

–Incluir no final do arquivo–

# Xen console
xvc0

  •  Copiar arquivos do kernel

cp -a /lib/modules/$(uname -r) lib/modules

  • Desmontar imagem do HD virtual

cd /nome_do_diretorio/domains/nome_do_servidor

umount tmp

  • Inicializar máquina virtual

xm create -c /nome_do_diretorio/domains/nome_do_servidor

Se a rede foi configurada, o servidor pode ser acessado via ssh

Acesso via VNC, ip_do_servidor:X, onde X faz referência ao vncdisplay informado no arquivo de cfg da máquina virtual

3.2 Configuração de DomU de Servidor novo via debootstrap

  •  Criar diretórios de virtualização do servidor

mkdir -p /nome_do_diretorio/domains/nome_do_servidor/tmp

  •  Criar HD virtual do servidor

cd /nome_do_diretorio/domains/nome_do_servidor

qemu-img create -f raw hd_root.img 50G

mkfs.ext3 -F hd_root.img

qemu-img create -f raw hd_swap.img 2G

mkswap -f hd_swap.img

  • Criar arquivo de configuração da servidor
  • use o editor de texto de sua preferência
  • cd /nome_do_diretorio/domains/nome_do_servidor
  • vim nome_do_servidor.cfg

import commands
krn_vers = commands.getoutput(‘uname -r’)

name = ‘nome_do_servidor’
builder = ‘linux’
ostype = ‘squeeze’ (Em distribuições debian-like, usar o nome da versão. Em distribuições centos, usar centos-{3,4,5 ou 6}, para demais, consulte tabela)
disk = [
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_root.img,xvda1,w’,
‘file:/nome_do_diretorio/domains/nome_do_servidor/hd_swap.img,xvda2,w’
]
memory = 1024 (Quantidade de memória)
vcpus = 1 (Quantidade de processadores)
arch = ‘amd64’ (Arquiterura do servidor: i386 ou amd64)
vif = [ ‘bridge=xenbr0’ ]
kernel = ‘/boot/vmlinuz-‘ + krn_vers
ramdisk = ‘/boot/initrd.img-‘ + krn_vers
root = ‘/dev/xvda1 ro’
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’
extra = ‘xencons=xvc console=xvc0 video=tty’
vfb = [ ‘type=vnc,vncdisplay=X,vnclisten=0.0.0.0,vncpasswd=senha_vnc’ ] (vncdisplay=X é o mesmo que: 590X, ou seja, vncdisplay=1 significa 5901)

  •  Inicializar instalação do sistema básico

cd /nome_do_diretorio/domains/nome_do_servidor/tmp
debootstrap –arch amd64 squeeze . http://ftp.debian.org/debian
debootstrap –arch amd64 lucid . http://archive.ubuntu.com/ubuntu

  •  Finalizar instalação
  • cd /nome_do_diretorio/domains/nome_do_servidor/tmp
  • use o editor de texto de sua preferência
  • INITTAB – Debian / CentOS

vim etc/inittab

–Incluir linha–

#Xen
co:2345:respawn:/sbin/agetty 38400 xvc0

  •  EVENT.D – Ubuntu

mkdir etc/event.d

vim etc/event.d/xvc0

# xvc0 Xen Console
# This service maintains a getty on xvc0 from the point the system is
# started until it is shut down again.
start on runlevel 2
start on runlevel 3
stop on runlevel 0
stop on runlevel 1
stop on runlevel 4
stop on runlevel 5
stop on runlevel 6
respawn
exec /sbin/agetty 38400 xvc0

  • Configurar rede, se necessário:

vim etc/network/interfaces

  • Configurar securetty

vim etc/securetty

–Incluir no final do arquivo–

# Xen console
xvc0

  •  Copiar arquivos do kernel

cp -a /lib/modules/$(uname -r) lib/modules

  •  HOSTS

vim etc/hosts

127.0.0.1 localhost.localdomain localhost
ip_do_servidor nome_do_servidor.dominio_do_servidor nome_do_servidor

  •  HOSTNAME

vim etc/hostname

nome_do_servidor

  •  Configurar rede, se necessário

vim etc/network/interfaces

  •  Configurar securetty

vim etc/securetty

–Incluir no final do arquivo–

# Xen console
xvc0

  •  Copiar arquivos do kernel:

cp -a /lib/modules/$(uname -r) lib/modules

Se o sistema de destino não for 64bit, efetuar a cópia dos módulos 64bits

mkdir -p lib64/modules

cp -a /lib64/modules/$(uname -r) lib64/modules

  •  Desmontar imagem do HD virtual

cd /nome_do_diretorio/domains/nome_do_servidor

umount tmp

  •  Inicializar máquina virtual

xm create -c /nome_do_diretorio/domains/nome_do_servidor

Se a rede foi configurada, o servidor pode ser acessado via ssh

Acesso via VNC, ip_do_servidor:X, onde X faz referência ao vncdisplay informado no arquivo de cfg da máquina virtual

4. Bibliografia

Anúncios