O seu portal de estudos

Virtualização com KVM

Posted by Ricardo Pinheiro em 28 de junho de 2011

KVM (Kernel-based Virtual Machine)

KVM Banner Logo

KVM Banner Logo

Trata-se de uma solução de virtualização (Intel VT ou AMD-V). Consiste de um módulo de kernel kvm.ko, que fornece a infra-estrutura de virtualização do núcleo e um módulo de processador específico, kvm-intel.ko ou kvm-amd.ko. O KVM também requer um QEMU modificado.

Com o KVM, é possível executar múltiplas máquinas virtuais rodando imagens de GNU/Linux ou Windows. Cada máquina virtual tem hardware virtual privado: uma placa de rede, disco, placa gráfica, etc.
O componente KVM do kernel está incluído na árvore principal do mesmo desde a versão 2.6.20. O KVM é um software de código aberto.

Após uma breve explicação vamos instalar e configurar o KVM

Primeiramente vamos verificar se há o suporte de Virtualização em seu processador:

# grep -E ‘(vmx|svm)’ –color=auto /proc/cpuinfo

grep -E ‘(vmx|svm)’ –color=auto /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt npt lbrv svm_lock nrip_save

Se nada em destaque aparecer, significa se seu processador não oferece suporte a virtualização e você não poderá prosseguir com esse post.

Mas no caso de positivo, instale os pacotes abaixo:

# apt-get install kvm qemu-kvm libvirt-bin virtinst

Vamos adicionar o usuário aos grupos libvirt e kvm:

# usermod -a -G libvirt ricardo

# usermod -a -G kvm ricardo

Obs.: Para que essas mudanças tenham efeito será necessário o logout do usuário e verifique com o comando abaixo se o usuário aparece nos grupos:

# groups

Vamos verificar se o KVM  foi corretamente instalado com o comando:

# virsh -c qemu:///system list

Id Name                           State
———————————-

Se nenhum erro aparecer podemos prosseguir com o post. Se o pacote bridge utils não estiver instalado instale-o:

# apt-get install bridge-utils

E para configurar vamos editar o arquivo /etc/network/interfaces para configurar a bridge:

# 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 10.5.1.60
 network 10.5.1.0
 netmask 255.255.255.0
 broadcast 10.5.1.255
 gateway 10.5.1.254
 bridge_ports eth0
 bridge_fd 9
 bridge_hello 2
 bridge_maxage 12
 bridge_stp off

Feito isso vamos reiniciar o serviço de rede:

# /etc/init.d/networking restart

CRIAR A MÁQUINA VIRTUAL

Para tal irei utilizar o virt-install para a instalação da máquina virtual (Debian):

# virt-install –connect qemu:///system -n debian_squeeze -r 1024 –vcpus=3 –disk path=/var/lib/libvirt/images/debian_squeeze.img,size=12 -c /dev/cdrom –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm

Starting install...
 Allocating 'debian_squeeze.img' |  12 GB     00:00
 Creating domain...    |    0 B     00:00
 Domain installation still in progress. You can reconnect to
 the console to complete the installation process.
 root@debian:~#

Vamos utilizar um Desktop Ubuntu para a instalação do virt-manager e terminar a instalação

Depois de instalado vá em – Aplicativos – Ferramentas de sistema – Gerenciador de Máquinas Virtuais.
No virt-manager clique em – Arquivo – Adicionar Conexão
Hypervisor: QEMU/KVM
Conexão: Túnel remoto por SSH
Nome da máquina: 10.5.1.60
Clique em conectar, se for a 1a. conexão digite yes para armazenar o fingerprint do servidor ssh, e digite a senha.
Clique na máquina squeeze e depois em abrir
Faça a instalação do máquina virtual Debian Squeeze a seu gosto
Depois de instalado você terá uma máquina virtual utilizando o KVM, divirtam-se com a máquina recém criada.
Espero que tenham gostado do post e não se esqueçam de assinar o nosso portal.
Anúncios

10 Respostas to “Virtualização com KVM”

  1. Ja lido um pouco sobre isso em uma revista, parece ser um projeto legal.

    Mas vc teria como fazer um comparativo entre outra soluções, tipo vantagens e desvantagens???

    • Ricardo Pinheiro said

      Rodrigo,

      Esse tipo de comparação pode ser origem de um novo post, como existem hoje algumas soluções de virtualização tanto para linux quanto para windows. Vamos elaborar um post com estas soluções, só não podemos prometer para agora.

      Abraços.

  2. saefafs said

    Trabalho com o KVM.

    Muito boa ferramenta para virtualização. Otimo desempenho e facilidade para backup, principalmente incremental.

    mas acho que VMWare e HyperV tem mais recursos.

    VLW

  3. O Hyper-V está se tornando realmente interessante na versão do Windows 8 Server.

    Particularmente e atualmente, prefiro trababalhar com o XenServer que possui uma versão free bastante funcional.

  4. Existe alguma forma do KVM funcionar em processadores que não dão suporte a virtualização ou somente funciona em processadores com suporte a virtualização? grato

  5. Altevir said

    Qual o procedimento para adicionar um HD externo em uma VM? grato!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: