KVM - Instalando e rodando a primeira VM

Publicado por Ricardo em 29/09/2012

[ Hits: 49.368 ]

 


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

Removendo vários arquivos de uma lista gigante (Argument list too long)

Detectando conflitos de IP

Bordas das janelas sumindo quando se habilita o compiz-fusion no Linux?

Gravar CD ou DVD via linha de comando

Verificando os processos ativos no sistema

  

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