|
Virtualização com KVM no Ubuntu Server 11.04 - 64 |
|
|
|
|
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
|