terça-feira, 2 de março de 2010

XEN - Vitualização

O que é o Xen?!
O Xen é um hypervisor como o VMware, mas implementado de forma diferente. Ele utiliza um conceito chamado paravirtualização, onde o sistema operacional rodando dentro da máquina virtual tem a ilusão de estar sendo executado diretamente sobre o hardware.

Preparando o ambiente:
Distribuição utilizada: CentOS 5

#yum install xen-libs audiofile alsa-lib esound SDL kernel-xen dnsmasq bridge-utils python-virtinst libvirt xen libvirt-python bind caching-nameserver virt-manager gnome-python2-gnome-keyring

Criando as máquinas virtuais
# virt-install
What is the name of your virtual machine? nome_da_vm
How much RAM should be allocated (in megabytes )? 128
Wha t would like to use as the disk (path)? /dev/xen-disk/xen-lvm
Would you like to enable graphics support (yes or no)? no
What is the install location? /mnt/cdrom

Administrando as máquinas virtuais
# CTRL+ ] – sair da máquina virtual para a hospedeira
# xmlist - listar as máquinas virtuais criadas
# xm create - ligar a máquina virtual (background)
# xm shutdown - desligar a máquina virtual (seguro)
# xm shutdown - a - desligar todas as máquinas virtuais ligadas (seguro)
# xm create -c - ligar a máquina virtual (console)
# xm top - listar as máquinas virtuais criadas (top)
# xm destroy - desligar a máquina virtual (PowerOff)
# xm console - assumir o console da máquina virtual
# xm info - informações sobre a máquina hospedeira
# xm reboot - reinicia a máquina virtual (init 6)
# xm reboot - a - reiniciar todas as máquinas virtuais ligadas
# xm uptime - mostra o uptime de todas as máquinas virtuais ligadas
# xm uptime - mostrar o uptime da máquina virtual
# xm mem -set XXXX - alterar a quantidade d e memória da VM (hot swap)

VM iniciando no boot da hospedeira
# cd /et c/xen/auto - localização das máquinas virtuais iniciadas com a hospedeira
# ln -s ../< nome-da-máquina> - Criar link para iniciar a VM no boot da hospedeira.

Clonando uma máquina Virtual
virt-clone --original vm --name novavm --file /dev/xen-clone/clone-lvm

Virtualizando máquinas Windows (Full Virtualization)
virt-install --hvm --name win2003 --ram 1024 --file /dev/vm/win2003 --vnc --vncport 5900 --os-type windows --os-variant win2k3 --cdrom /mnt/cdrom

Virtualizando máquinas Linux (Full Virtualization)
virt-install --hvm --name debian --ram 256 --file /dev/vm/debian --vnc --vncport 5901 --os-type linux --cdrom /mnt/cdrom

Dica:
- É extremamente recomendável que as máquinas virtuais sejam alocas em partições LVM para ganhar desempenho.
- Caso a máquina virtual Linux seja instalada com uma distro diferente da hospedeira deve-se obrigatoriamente utilizar a Full Virtualization.
- Maquinas Windows não podem ter sua console acessadas no hospedeiro deve-se utilizar um acesso remoto VNC.
- Não é possível alocar mais memória do que o limite definido na criação da VM com o comando xm mem -set.
- Maquinas no padrão Full Virtualization são sempre mais lentas do que as demais, evite-as ao máximo.