KVM - Instalando e rodando a primeira VM

Publicado por Ricardo em 29/09/2012

[ Hits: 49.370 ]

 


KVM - Instalando e rodando a primeira VM



Passos para usar o comando qemu-kvm, ou simplesmente kvm para executar máquinas virtuais no Ubuntu 12.04.

O KVM utiliza a virtualização assistida por hardware, por isso requer processadores com Intel VT-x ou AMD-V habilitados.

Verifique se o seu processador possui este recurso. É imprescindível que possua, caso contrário, não funcionará.

Procure a flag vmx para processadores Intel, ou svm para processadores AMD, no arquivo /proc/cpuinfo:

cat /proc/cpuinfo
ou:
grep -E 'vmx|svm' /proc/cpuinfo

Verifique se o processador suporta arquitetura de 64 bits. Não é necessário que suporte, mas em caso afirmativo, é recomendável usar um sistema operacional de 64 bits na máquina anfitriã, pois assim será possível rodar um sistema convidado de 64 bits, além de melhorar o desempenho.

Procure a flag lm (LM em minúscula) no arquivo /proc/cpuinfo:

grep lm /proc/cpuinfo --color=always

Instalação

Para instalar o KVM:

sudo apt-get install qemu-kvm

Verificar se tudo está certo:

kvm-ok

Para testar, rode um Live-CD em uma máquina virtual através de uma imagem de um CD ou DVD gravado no disco:

kvm -m 500 -drive file=/caminho/imagem.iso,media=cdrom
ou:
kvm -m 500 -cdrom /caminho/imagem.iso

Ambos os comandos fazem a mesma coisa, porém, é aconselhável habituar-se com a primeira forma, como perceberá adiante:
  • -m 500 → Indica que a VM terá 500 MB de memória RAM.
  • -drive file=→Indica o caminho e o nome do arquivo de imagem de CD.
  • media=cdrom → indica que essa imagem será de um CD-ROM, a outra opção existente para media, é media=disk, para indicar que é um disco rígido.

Na janela que se abre, use as combinações de teclas para:
  • Ctrl-Alt → Libera o mouse da janela;
  • Ctrl-Alt-f → Alternar entre tela cheia e janela normal;
  • Ctrl-Alt-1 → Exibe a saída de video da máquina virtual;
  • Ctrl-Alt-2 → Exibe o console de comando do QEMU-KVM;
  • Ctrl-Alt-3 → Exibe a saída da porta serial;
  • Ctrl-Alt-4 → Exibe a saída da porta paralela.

No console de comandos, você pode usar muitos comandos, veja alguns:
  • (Qemu) help → Exibe a ajuda;
  • (Qemu) system_reset → Reinicia a VM;
  • (Qemu) system_powerdown → Envia sinal de desligamento para a VM;
  • (Qemu) quit → Fecha a VM.

Obs.: Para rolar a tela do console de comandos, use: Ctrl + a seta para cima ou para baixo.

Crie um disco rígido virtual de 8 GB:

qemu-img create -f raw debian-kde.raw 8G

Onde:
  • -f raw → indica que o formato da imagem é raw. Os principais formatos são raw e qcow2.

Instale um sistema no HD virtual criado com o comando acima:

kvm -m 500 -drive file=/caminho/imagem.iso,media=cdrom -drive file=/caminho/debian- kde.raw,media=disk,cache=writeback

A novidade no comando acima, é cache=writeback, usado para melhorar a performance do disco. O padrão é cache=writethrough, que é mais seguro, porém, possui desempenho pior, principalmente quando usado com imagens no formato qcow2.

Os sistemas operacionais mantém um cache para melhorar o desempenho de I/O de disco. Com o cache, as operações de gravação são consideradas concluídas após os dados terem sido copiados para o cache.

As operações de leitura são satisfeitas a partir do cache, se os dados solicitados estiverem nele. No ambiente do KVM, tanto o sistema operacional do host quanto do guest, podem manter seus próprios caches, resultando em duas cópias de dados na memória. Em geral, é melhor ignorar pelo menos um destes caches.

As opções de cache são:
  • writethrough
  • writeback
  • unsafe
  • none

O cache=none, como o nome já sugere, desabilita o cache para leitura e gravação, transformando todas as requisições de I/O do guest em operações Direct I/O no host.

Para os outros 3 modos, o cache é ativado tanto para leitura quanto para gravação, porém, o cache de gravação é tratado de forma diferente em cada caso.

O cache=writethrough fará com que o cache do host seja usado para ler e escrever dados, mas a confirmação de escrita será enviada para o guest somente quando os dados forem relatados como escrito pelo sistema de armazenamento.

Já o cache=writeback, também usará o cache para ler e escrever, mas irá relatar os dados escritos como concluído, assim que os dados estiverem presentes no cache do host. Este é seguro, desde que o host também seja. Se o seu host desligar por falta de energia, pode ocorrer corrupção de dados no guest.

O cache=unsafe usará o cache para ler e escrever e não será necessário gravar os dados no disco, podendo mantê-los em cache. Se alguma coisa der errado, como o desligamento anormal do host, sua imagem de disco poderá ser inutilizada.

Já que o assunto é sobre desempenho de HD, aproveito para mostrar mais um parâmetro que pode ser configurado no -drive, veja o exemplo:
-drive file=/caminho/debian-kde.raw,media=disk,cache=writeback,if=virtio

O if=virtio substitui a configuração padrão, que é if=ide. O if=ide, apesar de ser mais lento, possui uma compatibilidade maior com os sistemas convidados.

Qualquer distribuição GNU/Linux atual, suporta o virtio. Portanto, sempre que seu hóspede suportar, use o virtio para um melhor desempenho.

Jargões:
  • Máquina física: host, anfitrião, hospedeiro
  • Máquina virtual: guest, convidado, hóspede, VM (Virtual Machine)

Fontes:
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Mantendo o programa em execução após logout

Limite de banda (bandwidth) nos comandos scp e rsync

O comando MTR (compilação do ping + traceroute)

Executar comandos ao efetuar login ou logout no Linux

O comando wc

  

Comentários
[1] Comentário enviado por albfneto em 29/09/2012 - 13:00h

Bom isso, e um jeito fácil!

[2] Comentário enviado por danniel-lara em 29/09/2012 - 19:39h

Parabéns , muito bom

[3] Comentário enviado por sandroavieira em 30/09/2012 - 10:55h

Quero acionar 3 ou mais maquinas virtuais, preciso de algum windows manager ? ou so do xorg rodando ? as funções 3d estão ok ? direto acesso direto a placa 3d, usb e as seriais ? grato pela resposta

[4] Comentário enviado por emiranda em 01/02/2013 - 16:21h

Muito bom vou testar ...

[5] Comentário enviado por xerxeslins em 29/01/2019 - 17:58h


Good. Mas a dica já está velha, embora seja muito boa.

Eu usei substituindo o comando "kvm -m..." por "qemu-system-x86_64 -m..."

Sendo que se usar TAB, vai exibir vários complementos para qemu-system. Várias arquiteturas.

Favoritado.

--
"There are lots of Linux users who don't care how the kernel works, but only want to use it. That is a tribute to how good Linux is." - Linus Torvalds



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts