libvirt

A biblioteca libvirt é usada para comunicar com diferentes tecnologias de virtualização. Antes de começar a usar a libvirt é melhor ter certeza de que o seu hardware suporta as extensões de virtualização necessárias para a KVM. Digite o seguinte em um terminal:

 egrep '(vmx|svm)' /proc/cpuinfo

Se nada é impresso, significa que a sua CPU não suporta virtualização de hardware.

[Nota]

Na maioria dos computadores que suportam virtualização, é necessário ativar uma opção na bios para habilitá-la. O método descrito acima não exibe o estado dessa ativação.

Rede Virtual

Existem diferentes maneiras de permitir que uma máquina virtual acesse a rede externa. A configuração padrão de rede virtual é rede usermode, o qual usa o protocolo SLIRP e o tráfego é feito com NAT através da interface do host para a rede externa.

Para permitir que hosts externos acessem diretamente serviços em suas máquinas virtuais, uma ponte deve ser configurada. Isso permite que as interfaces virtuais se conectem à rede externa através da interface física, fazendo com que elas apareçam como hosts normais para o resto da rede. Para mais informações sobre como configurar uma ponte, veja “Ponte”.

Instalação

Para instalar os pacotes necessários, digite a partir de um terminal:

sudo apt-get install kvm libvirt-bin

Depois da instalação do libvirt-bin, será necessário adicionar o usuário usado para gerenciar as máquinas virtuais ao grupo libvirtd. Fazer isso irá conceder ao usuário o acesso às opções avançadas de rede.

Digite no terminal:

sudo adduser $USER libvirtd
[Nota]

Se o usuário escolhido é o usuário atual, você precisará sair e entrar novamente para que a associação ao novo grupo tenha efeito.

Você agora está pronto para instalar o sistema operacional Convidado. Instalar uma máquina virtual segue o mesmo processo de instalação de um sistema operaciconal direto no hardware. Você precisará também de uma maneira para automatizar a instalação, ou um teclado e o monitor precisarão estar conectados fisicamente na máquina.

No caso de máquinas virtuais uma Interface Gráfica de Usuário (GUI) é análoga a utilização de um teclado e mouse físico. Ao invés de instalar a GUI a aplicação virt-viewer pode ser usada para conectar ao console de máquinas virtuais usando o VNC. Veja “Visualizador da Máquina Virtual” para mais informações.

Há várias maneiras de automatizar o processo de instalação do Ubuntu, por exemplo, usando preseeds, kickstart, etc. Consulte o Guia de instalação do Ubuntu para maiores detalhes.

Um outro método de instalação de uma máquina virtual com Ubuntu é utilizar ubuntu-vm-builder. ubuntu-vm-builder permite que você configure partições avançadas, execute scripts pós-instalação customizados etc. Para detalhes veja “JeOS e vmbuilder”

virt-install

O virt-install é parte do pacote python-virtinst. Para instala-lo, digite a partir de um terminal:

sudo apt-get install python-virtinst

Existem várias opções disponíveis para usar o virt-install. Por exemplo:

sudo virt-install -n web_devel -r 256 -f web_devel.img \ -s 4 -c jeos.iso --accelerate \ --connect=qemu:///system --vnc \ --noautoconsole -v
  • -n web_devel: O nome da nova máquina virtual neste exemplo será web_devel.

  • -r 256: especifica a quantidade de memória que a máquina virtual irá utilizar.

  • -f web_devel.img: indica o caminho para o disco virtual que pode ser um arquivo, partição ou volume lógico. Neste exemplo, um arquivo chamado web_devel.img.

  • -s 4: o tamanho do disco virtual.

  • -c jeos.iso: arquivo que será usado como um CDROM virtual. O arquivo pode ser um arquivo ISO ou o caminho para o dispositivo de CDROM dá máquina.

  • --accelerate: habilita as tecnologias de aceleração do kernel.

  • --vnc: exporta o console virtual do convidado usando VNC.

  • --noautoconsole: não conectará automaticamente no console da máquina virtual.

  • -v: cria um visitante totalmente virtual

Após carregar o virt-install você pode conectar no console da máquina virtual tanto localmente usando um GUI quanto com o utilitário virt-viewer.

virt-clone

A aplicação virt-clone pode ser usada para copiar uma máquina virtual para outra. Por exemplo:

sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img --connect=qemu:///system 
  • -o: máquina virtual original.

  • -n: nome da nova máquina virtual.

  • -f: caminho para o arquivo, volume lógico ou partição a ser usada pela nova máquina virtual.

  • --connect: especifica em qual hypervisor irá conectar.

Também, use a opção -d ou --debug para auxiliar a encontrar problemas com o virt-clone.

[Nota]

Substitua web_devel e database_devel com o nome apropriado da máquina virtual.

Gerenciamento da Máquina Virtual

virsh

Existem vários utilitários disponíveis para gerenciar máquinas virtuais e libvirt. O utilitário virsh pode ser usado pela linha de comando, Alguns exemplos:

  • Para listar máquinas virtuais sendo executadas:

    virsh -c qemu:///system list
    
  • Para iniciar uma máquina virtual:

    virsh -c qemu:///system start web_devel
    
  • Da mesma forma, para iniciar uma máquina virtual durante o boot:

    virsh -c qemu:///system autostart web_devel
    
  • Reiniciar uma máquina virtual com:

    virsh -c qemu:///system reboot web_devel
    
  • O estado da máquina virtual pode ser salvo em um arquivo de modo que possa ser restaurado posteriormente. A declaração a seguir salva o estado da máquina virtual em um arquivo nomeado de acordo com a data:

    virsh -c qemu:///system save web_devel web_devel-022708.state
    

    Uma vez salvo, a máquin virtual não estará mais sendo executada.

  • Uma máquina virtual salva pode ser restaurada usando:

    virsh -c qemu:///system restore web_devel-022708.state
    
  • Para desligar uma máquina virtual faça:

    virsh -c qemu:///system shutdown web_devel
    
  • Um dispositivo de CDDROM pode ser montado em uma máquina virtual digitando:

    virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom
    
[Nota]

Nos exemplos acima, substitua web_devel com o nome da máquina virtual apropriado, e web_devel-022708.state com um nome de arquivo descritivo.

Gerenciamento da Máquina Virtual

O pacote virt-manager contém um utilitário gráfico para gerenciar máquinas virtuais locais e remotas. Para instalar o virt-manager digite:

sudo apt-get install virt-manager

Desde que o virt-managerexige um ambiente Interface Grlibvirt digite:

virt-manager -c qemu:///system

Você pode conectar ao serviço do libvirt executado em outra máquina digitando o seguinte em um terminal:

virt-manager -c qemu+ssh://virtnode1.mydomain.com/system
[Nota]

O exemplo acima assume que a conectividade SSH entre o sistema de gerenciamento e o virtnode1.mydomain.com tenha sido configurada, e utilize chaves SSH para autenticação. Chaves SSH são necessárias porque o libvirt envia o prompt de senha para outro processo. Para mais detalhes de como configurar o SSH veja “Servidor OpenSSH”

Visualizador da Máquina Virtual

A aplicação virt-viewer permite que você conecte ao console de uma máquina virutal. O virt-viewer não requer uma Interface Gráfica de Usuário (GUI) como interface com a máquina virtual.

Para instalar o virt-viewer de um terminal, digite:

sudo apt-get install virt-viewer

Uma vez que a máquina virtual esteja instalada e sendo executada você podera conectar ao console da máquina virtual usando:

virt-viewer -c qemu:///system web_devel

Da mesma forma que o virt-manager, o virt-viewer pode conectar à máquina remota usando SSH com a autenticação de chaves:

virt-viewer -c qemu+ssh://virtnode1.mydomain.com/system web_devel

Assegure-se de substituir web_devel com o nome apropriado da máquina virtual.

Se configurado para usar uma placa de rede bridged você também pode configurar o acesso SSH para a máquina virtual. Veja “Servidor OpenSSH” e “Ponte” para mais detalhes.

Recursos

  • Veja o site do KVM para maiores detalhes.

  • Para mais informações sobre o libvirt veja a página do libvirt

  • O site do

  • Também, dê uma passada no canal de IRC #ubuntu-virt na freenode para discutir sobre a tecnologia de virtualização no Ubuntu.