Virtualização com KVM no Ubuntu Server 11.04 - 64 PDF Imprimir E-mail
Escrito por RibamarFS   
Qua, 22 de Junho de 2011 00:41

Virtualização com KVM no Ubuntu Server 11.04 - 64


Verificar se processador tem recursos de virtualização
egrep '(vmx|svm)' --color=always /proc/cpuinfo

Instalar somente o sistema básico do sistema

Partições - EXT4

/    - 30GB - primária - Flag inicializável
swap    - 2GB - lógica
LVM    - 300GB - lógica (Para as instâncias)
LVM    - restante - lógica

Após a instalação

apt-get update
apt-get upgrade
apt-get install ssh gpm


Conferir hosts

nano /etc/hosts
192.168.1.10    dnocs1.dnocs.gov.br    dnocs1


Instalar KVM e vmbuilder
apt-get install ubuntu-virt-server python-vm-builder kvm-pxe

Adicionar usuário logado ao grupo
adduser `id -un` libvirtd
adduser `id -un` kvm

Checar se a instalação foi ok
virsh -c qemu:///system list

Instalar o pacote bridge-utils para configurar a rede como bridge
apt-get install bridge-utils

Configurar a rede com bridge
nano /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
address 192.168.0.100
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

/etc/init.d/networking restart

ifconfig

reboot


Criar VM baseada em Imagem

Obs.: caso a VM venha a ter muito tráfico e muitas oeprações de R/W então recomenda-se criar a imagem da VM baseada em LVM.

Vamos criar as imagens em:
/var/lib/libvirt/images/

Criaremos um novo diretório para cada nova VM:
/var/lib/libvirt/images/dnocs11
/var/lib/libvirt/images/dnocs12
...

A criação das VMs será com o vmbuilder

mkdir -p /var/lib/libvirt/images/dnocs11/mytemplates/libvirt 

cp /etc/vmbuilder/libvirt/* /var/lib/libvirt/images/dnocs11/mytemplates/libvirt/

nano /var/lib/libvirt/images/dnocs11/vmbuilder.partition
A título de exemplo, podemos usar
root 8000
swap 4000
---
/var 20000

--- significa que a seguinte (/var) está em um disco separado.
Podemos ficar livres para criar apenas uma partição ou como preferirmos.

Criar um script para o boot da VM:

nano /var/lib/libvirt/images/dncos11/boot.sh

# This script will run the first time the virtual machine boots
# It is ran as root.

# Expire the user account
passwd -e ribafs

# Install openssh-server
apt-get update
apt-get install -qqy --force-yes openssh-server

vmbuilder kvm ubuntu --help


Criar a Primeira VM

cd /var/lib/libvirt/images/dnocs11/

Rodas o vmbuilder com os parâmetros:
vmbuilder kvm ubuntu --suite=natty --flavour=virtual --arch=amd64 --mirror=http://br.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=192.168.1.11 --gw=192.168.1.1 --part=vmbuilder.partition --templates=mytemplates --user=ribafs --name=Ribamar --pass=ribafs --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/libvirt/images/dnocs11/boot.sh --mem=256 --hostname=dnocs11 --bridge=br0 

A criação demora alguns minutos e então será criado o script de configuração:
/etc/libvirt/qemu/dnocs11.xml

ls -l /etc/libvirt/qemu/


Criando uma Segunda VM

mkdir -p /var/lib/libvirt/images/dnocs12/mytemplates/libvirt
cp /etc/vmbuilder/libvirt/* /var/lib/libvirt/images/dnocs12/mytemplates/libvirt/
vi /var/lib/libvirt/images/dnocs12/vmbuilder.partition
vi /var/lib/libvirt/images/dnocs12/boot.sh
cd /var/lib/libvirt/images/dnocs12/
vmbuilder kvm ubuntu --suite=natty --flavour=virtual --arch=amd64 --mirror=http://br.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=192.168.1.12 --gw=192.168.1.1 --part=vmbuilder.partition --templates=mytemplates --user=ribafs --name=Ribamar --pass=ribafs --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/libvirt/images/dnocs12/boot.sh --mem=256 --hostname=dnocs12 --bridge=br0

Não há necessidade de criar o diretório da segunda VM /var/lib/libvirt/images/dnocs12, pois podemos passar por parâmetro como
-d /var/lib/libvirt/images/dnocs12

Neste caso não precisamos criar vmbuilder.partition e boot.sh nem alterar o template, mas simplesmente usar o existente:

cd /var/lib/libvirt/images/dnocs11/
vmbuilder kvm ubuntu --suite=lucid --flavour=virtual --arch=amd64 --mirror=http://br.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=192.168.1.12 --gw=192.168.1.1 --part=vmbuilder.partition --templates=mytemplates --user=ribafs --name=Ribamar --pass=ribafs --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/libvirt/images/dnocs11/boot.sh --mem=256 --hostname=dnocs12 --bridge=br0 -d dnocs12-kvm


Gerenciando VMs

Podemos gerenciar com o virtual shell (virsh)

Conectar ao virtual shell
virsh --connect qemu:///system

Então podemos digitar um dos comandos, inclusive help.

Antes de executar uma VM pela primeira vez devemos definir seu script de configuração com:

virsh --connect qemu:///system
define define /etc/libvirt/qemu/dnocs11.xml

Obs.: sempre que modificar este script devemos executar o comando define novamente.

Agora podemos executar a VM
start dnocs11

Com pouco tempo já poderemos conectar à VM via SSH com login e senha default. Neste primeiro login precisamos trocar a senha.

list

Parar a VM:
shutdown dnocs11

Parar imediatamente 
destroy dnocs11

Para sair
quit


Criando uma VM baseada em LVM

Além de mais rápidas o backup é mais fácil.

Para isso reservamos a partição do tipo LVM com 300GB para as VM, tendo 35GB cada e ainda deixando uma folga para futuros redimensionamentos.

pvcreate /dev/sda6
vgcreate vg0 /dev/sda6

Vamos criar a VM dnocs13 baseada em LVM.

Podemos usar o vmbuilder para isso, pois ele suporta com o parâmetro --raw.

mkdir -p /var/lib/libvirt/images/dnocs13/mytemplates/libvirt
cp /etc/vmbuilder/libvirt/* /var/lib/libvirt/images/dncos13/mytemplates/libvirt/

nano /var/lib/libvirt/images/dnocs13/vmbuilder.partition

Sugestão:
root 8000
swap 2000
/var 10000

nano /var/lib/libvirt/images/dnocs13/boot.sh

# This script will run the first time the virtual machine boots
# It is ran as root.

# Expire the user account
passwd -e ribafs

# Install openssh-server
apt-get update
apt-get install -qqy --force-yes openssh-server

Criar uma partição com 35GB
lvcreate -L35G -n dnocs13 vg0

Criará:
/dev/vg0/dnocs13

Criar a VM
cd /var/lib/libvirt/images/dnocs13/
vmbuilder kvm ubuntu --suite=natty --flavour=virtual --arch=amd64 --mirror=http://br.archive.ubuntu.com/ubuntu -o --libvirt=qemu:///system --ip=192.168.1.13 --gw=192.168.1.1 --part=vmbuilder.partition --raw=/dev/mapper/vg0-dnocs13 --templates=mytemplates --user=ribafs --name=Ribamar --pass=ribafs --addpkg=vim-nox --addpkg=unattended-upgrades --addpkg=acpid --firstboot=/var/lib/libvirt/images/dnocs13/boot.sh --mem=256 --hostname=dnocs13 --bridge=br0

Observe que ao invés de /dev/vg0/dnocs13 foi usado
/dev/mapper/vg0-dnocs13 que é um link simbólico que aponta para o volume lógico /dev/dm-2


Podemos agora usar virsh para gerenviar a VM criada.

virsh --connect qemu:///system

define /etc/libvirt/qemu/dnocs13.xml

Então

start dnocs13



Fonte: http://virtualizacao.ribafs.org/kvm/37-virtualizacao-com-kvm-em-ubuntu

Referência
http://www.howtoforge.com/virtualization-with-kvm-on-ubuntu-11.04

 

Adicionar comentário


Código de segurança
Atualizar