GustavoHenrique.net

  • About
  • Contact
  • RSS Feed
  • Twitter

 

21
Feb

Virtualização com KVM

By gustavohenrique|Linux|3 Comments

KVM Logo

KVM (Kernel-based Virtual Machine) é uma solução de virtualização open source para Linux incluído por padrão no kernel a partir da versão 2.6.20.
A maioria das distros possuem as ferramentas necessárias para virtualização com KVM nos CDs de instalação ou repositórios de pacotes. Nesse artigo vou usar o Fedora 16 como host e instalar o CentOS como guest.

Instalação no Fedora 16

# yum install qemu-kvm python-virtinst libvirt virt-manager

Verificando suporte virtualização de hardware:

grep -E "(vmx|svm)" --color=always /proc/cpuinfo

Caso a saída do comando acima não retorne nenhuma informação na tela é porque o processador não suporta virtualização de hardware. Sendo asssim há apenas a opção de usar emulação com o QEMU.

Iniciando o serviço:

# service libvirtd start

Antes de instalar o sistema operacional no guest é necessário criar o virtual disk usado pela máquina virtual. KVM suporta o formato raw, qcow2 (nativo do QEMU), VMWare, dentre outros. Vou criar usando qcow2 e alocando 10GB de espaço:

$ qemu-img create -f qcow2 -o preallocation=metadata /home/gustavo/vm/hd-centos.qcow2 10G

As opções de rede disponíveis são bridge, virtual network e user.
bridge permite que à máquina virtual obter endereço IP como se fosse outra máquina na rede onde está o host;
virtual network cria uma rede virtual no qual apenas outros guests na mesma virtual network e o host consegueguem se comunicar;
user provê uma forma de NAT muito limitada, indicado apenas se for executar o kvm com usuário diferente de root.

Para usar o modo bridge primeiramente é preciso criar a interface br0. Os passos estão descritos nas instruções da documentação da libvirt em http://wiki.libvirt.org/page/Networking.

Criando uma Virtual Machine com KVM

Modo simples, especificando o path da iso de instalação e do virtual disk:

# virt-install --name=minha-vm-centos --arch=x86_64 --vcpus=1 --ram=512 --os-type=linux --os-variant=rhel5 --hvm --connect=qemu:///system --network bridge=br0 --cdrom=/home/gustavo/Downloads/softwares/iso/CentOS-6.2-x86_64-LiveDVD.iso --disk path=/home/gustavo/vm/hd-centos.qcow2,size=10 --graphics vnc,keymap=pt-br,  --noautoconsole

Modo muito simples, onde serão feitas perguntas ao usuário:

# /usr/sbin/virt-install --prompt

Rodando no modo gráfico é possível utilizar virt-manager – interface gráfica para gerenciar máquinas virtuais.

Gerenciando máquinas virtuais com o Virsh

Virsh é utilitário em modo texto que utiliza a API da libvirt para gerenciamento de máquinas virtuais. Abaixo os comandos mais utilizados.

Exibir todas as máquinas virtuais:

virsh list --all

Iniciar uma máquina virtual:

virsh start <nome da vm>

Desligar uma máquina virtual:

virsh shutdown <nome da vm>

Editar configuração:

virsh edit <nome da vm>

Forçar o desligamento:

virsh destroy <nome da vm>

Salvar um snapshot:

virsh save <nome da vm> <nome do arquivo>

Restaurar um snapshot:

virsh restore <nome do arquivo>

Acessar remotamente via ssh:

virsh -c qemu+ssh://<usuario>@<ip>/system <nome da vm>

Outras dicas

Para renomar uma máquina virtual no Virsh é necessário copiar o arquivo xml contendo as configurações, editar manualmente esse arquivo, criar uma máquina virtual com o novo nome e remover a antiga.

virsh dumpxml <nome da vm> > arquivo.xml
vim arquivo.xml #alterar o novo nome dentro do arquivo xml
virsh undefine <nome da vm>
virsh define arquivo.xml

Após aumentar o espaço de um virtual disk usando o qemu-img é necessário dar boot no guest com alguma distro livecd e usar o software gparted para redimensionar a partição sem perda de dados.

qemu-img resize /home/gustavo/vm/hd-centos.qcow2 +25GB

O processo de clonar uma máquina virtual consiste em criar uma cópia idêntica com outro nome que pode usar o mesmo virtual disk ou um clone.

virt-clone --connect=qemu:///system -o <nome da vm> -n <nome da vm clonada> -f <path do virtual disk>

Links

http://wiki.libvirt.org/page/Networking
http://www.techotopia.com/index.php/Installing_a_KVM_Guest_OS_from_the_Command-line_(virt-install)
http://www.linux-kvm.org/

Bookmark It

Add to Del.icio.us Add to Diigo Add to Facebook Add to Google Bookmarks Add to LinkedIn Add to Mister Wong Add to Twitter Add to Yahoo My Web
Tagged as: kvm, virtualizacao
Add your comment →

3 Comments

  1. Caro Gustavo, parabéns pelo artigo, muito bem escrito…..
    Dúvida… o KVM trabalha tb com VDI?

    By: Rânielli Reply →
    February 23, 2012 at 10:58 am
    • Sei que é possível converter vdi para qcow mas nunca testei.
      No site http://blog.bodhizazen.net/linux/convert-virtualbox-vdi-to-kvm-qcow/ mostra como converter.

      By: gustavohenrique Reply → Author
      February 23, 2012 at 11:04 am
  2. Gustavo, parabéns pela iniciativa!
    Como eu faço para ativar duas interfaces de rede(bridge) na VM?

    By: pedro Reply →
    December 3, 2012 at 8:36 pm

Leave your comment below! Cancel Reply

View More Posts:
  • ←
  • →

Tags

admin Django extjs firewall grails jquery KingHost liberações Linux manual model modelform mod_wsgi moeda brasileira mudanças mysql nível de serviço oo PagSeguro pdf php PIL pisa problemas proxy python qa qos real relacionamento roteamento service desk shell script sites tdd tipsforlinux traducao ubicomp ubuntu urllib virtualhost Webservices wikipedia xsol __init__

Recent Posts

  • Configurando um servidor LDAP no CentOS 6.2
  • Introdução ao padrão MVC no Ext JS 4
  • Virtualização com KVM
  • Autenticação Facebook no Grails
  • Grails com Sqlite3 no Ubuntu 11.04
  • Deploy no tomcat usando django-jython
  • Deploy múltiplas versões do Django no Nginx com VirtualEnv
  • Comandos básicos do Git
  • Introdução ao Apache Wicket
  • Feliz 2011

Archives

Categories

My tweets

  • Public Domain, a documentary about the problems of Rio de Janeiro http://t.co/UcTUoPRo 2012-10-10
  • Adobe has released "Source Code Pro", a new open source font designed for software developers http://t.co/AHxrVP9W #protip 2012-09-28
  • http://t.co/9TlbWvWN #protip 2012-09-27
  • 10 things IT architects should consider when choosing data storage technologies http://t.co/6BjGXICI 2012-09-20
  • tá com calor? http://t.co/d3XQQO84 2012-09-20
  • More updates...

Powered by the inLine Minimal WordPress Theme