Gerenciando VMs com o Virtual Machine Manager – IBM Developer

Gerenciando VMs com o Virtual Machine Manager

Embora o gerenciamento de servidores seja problemático há muito tempo, o gerenciamento de virtualização simplifica alguns problemas, mas amplifica outros. A época de um único sistema operacional em um servidor acabou e foi substituída por uma de vários sistemas operacionais em seis containers de máquina virtual (VM). Essa propriedade, chamada de densidade de máquina virtual, é vantajosa, pois menos hardware de servidor é necessário conforme ela ocupa números menores de servidores. Isso resulta em menos hardware e menos energia, mas em gerenciamento de maior complexidade.

Felizmente, existem soluções para aliviar os problemas que a virtualização de servidores cria, e o software livre lidera nessa área. Uma dessas soluções, chamada Virtual Machine Manager, da Red Hat, simplifica muito a capacidade de gerenciar VMs (sendo executadas nos principais hypervisors de software livre) e oferece às VMs recursos introspectivos para medir seu desempenho e a utilização de recursos.

Gerenciamento de hypervisor e VM

A virtualização expõe novos desafios no gerenciamento de VMs, seus recursos e os recursos subjacentes do host físico. Em vez de um único mapeamento de sistema operacional para host físico, mais de um sistema operacional agora ocupam os recursos de um host físico como VMs. Cada VM é representada por um container, que contém um ou mais discos virtuais e outros metadados para descrever a configuração e os limites da VM. Cada VM compartilha os recursos do host físico, o que requer não apenas configuração, mas uma compreensão da utilização desses recursos (para garantir uma densidade apropriada de VMs que use os recursos de forma ótima, sem sobrecarregá-los ou desperdiçá-los).

A abordagem virt-manager para o gerenciamento de virtualização

Virtual Machine Manager (virt-manager) é um conjunto de aplicativos leves, que apresenta uma interface de linha de comando ou interface gráfica com o usuário (GUI) para gerenciar VMs. Além dos recursos de gerenciamento para VMs, virt-manager contém um visualizador de cliente de virtual network computing (VNC) integrado, para formar um console gráfico completo das VMs guest.

Como conjunto de aplicativos, virt-manager abrange um conjunto comum de tarefas de gerenciamento de virtualização. Essas ferramentas são mostradas na Tabela 1 e representam a construção, clonagem, criação de imagem e visualização das VMs. O utilitário virsh não faz parte do pacote virt-manager, mas é de grande valor.

Tabela 1. Aplicativos para gerenciamento de virtualização (incluindo ferramentas de linha de comando)
Aplicativo Descrição
virt-manager Ferramenta de gerenciamento de VM de desktop
virt-install Ferramenta de fornecimento de VM
virt-clone Ferramenta de clonagem de imagem de VM
virt-image Construção de VM a partir de um descritor XML
virt-viewer Console gráfico de VM
virsh Terminal interativo para domínios de guest virsh

virt-manager usa a biblioteca de virtualização libvirt para gerenciar os hypervisors disponíveis. libvirt expõe uma interface de programação de aplicativos (API), que está integrada com um grande número de hypervisors de software livre, para permitir controle e monitoramento. libvirt disponibiliza um daemon chamado libvirtd, que auxilia nesse processo (como mostra a pilha de amostra abaixo).

Uma representação simples da pilha do virt-manager com QEMU

Uma representação simples da pilha do virt-manager com QEMU

Virtual Machine Manager foi desenvolvido pela Red Hat, na linguagem Python, para controlar o ciclo de vida de VMs, incluindo fornecimento, gerenciamento de rede virtual e coleta e relatórios de estatísticas, além de oferecer acesso gráfico simples às próprias VMs.

Instalando virt-manager

Para instalar o pacote virt-manager, use o gerenciador de pacotes da sua distribuição. No Ubuntu, use apt:

$ sudo apt-get install virt-manager

O comando apt resulta no uso de cerca de 22 MB de espaço em disco para o conjunto de aplicativos virt-manager. Como parte da instalação, o daemon libvirt deve estar em execução. Para verificar, use o seguinte comando:

$ ps ax | grep libvirtd

Esse comando deve mostrar que o processo libvirtd está em execução, com a opção -d instruindo libvirtd a executar como daemon. Lembre-se que libvirtd é o daemon que permite a conexão do aplicativo virt-manager para os hypervisors e, através deles, para VMs que eles contêm.

Para verificar se o pacote virt-manager foi instalado e para identificar a localização do binário virt-manager, use o comando which:

$ which virt-manager

A localização de virt-manager é também a localização dos outros aplicativos do conjunto (virt-install, virt-image etc).

Como etapa final, use QEMU como hypervisor, pois é possível executá-lo em qualquer hardware. Como emulador, ele é executado um pouco mais devagar, mas não exige as extensões de virtualização de novo hardware.

$ sudo apt-get install qemu

Agora, use virt-manager para criar e monitorar algumas VMs.

Usando virt-manager para criar e gerenciar VMs

As etapas nesta seção criam duas VMs.

  1. Instale um sistema operacional baseado em Linux® chamado SliTaz, uma distribuição Linux desenvolvida pela comunidade. Também é leve, o que é vantajoso ao executar QEMU e emular o ambiente de hardware. Para fazer o download dessa VM, use:

    $ wget http://mirror.slitaz.org/iso/4.0/slitaz-4.0.iso
    
  2. Para começar o processo de construção da VM, inicie virt-manager com privilégios de administrador, usando sudo:

    $ sudo virt-manager
    

    É aberta a janela virt-manager, através da qual é possível conectar-se ao hypervisor QEMU local (para isso, clique com o botão direito em localhost (QEMU) e clique em Connect). Se houvesse mais hypervisors disponíveis, eles apareceriam nessa lista e estariam disponíveis para conexão através da API libvirt.

Janela do Gerenciador de Máquina Virtual

Janela do Gerenciador de Máquina Virtual

  1. Quando conectar ao hypervisor QEMU local, clique no ícone Create Virtual Machine, que inicia o Assistente VM Construction.
  2. Dê à VM o nome de slitaz1 e solicite a instalação do sistema operacional a partir de um ISO local (transferido por download anteriormente, acima).
Criar uma VM

Criar uma VM

  1. Após clicar em Forward, defina a mídia de instalação da VM e dê uma sugestão sobre o sistema operacional. Nesse caso, especifique o arquivo ISO, selecione Linux na lista de tipos de sistemas operacionais e selecione Ubuntu 10.04 LTS (Lucid Linux) na lista Version.
Defina a mídia de instalação

Defina a mídia de instalação

  1. Defina o ambiente de execução da VM. Dê a essa VM 1 GB de memória e uma única CPU. Essas seleções podem ser confusas, pois devem ser do tamanho exato para a VM (1 GB é exagero nessa instância em particular). CPUs podem ajudar — e, em alguns casos, prejudicar — o sistema operacional. Se o sistema operacional usar de forma eficiente mais de um núcleo, eles podem ser distribuídos às VMs.
Defina o ambiente de execução

Defina o ambiente de execução

  1. Defina o ambiente de armazenamento da VM. Nesse exemplo, solicite que virt-manager crie o disco virtual (em vez de fornecer um você mesmo) e configure com um tamanho dinâmico até 1 GB. Observe que a opção do disco pode afetar a velocidade de instalação e execução. Se o disco for especificado como dinâmico, ele começa como um pequeno arquivo host e expande à medida que é consumido pela VM. Demora um pouco para gerenciar esse processo dinâmico. A alternativa, chamada raw, é uma imagem de disco com tamanho completo no sistema operacional host (hypervisor). O que acontece é que é necessário mais espaço em disco no host, mas a VM deve operar mais rápido, pois o processo de dimensionamento dinâmico não é necessário.
Defina o ambiente de armazenamento

Defina o ambiente de armazenamento

  1. Como etapa final, virt-manager apresenta um resumo da VM até então e permite definir opções de rede (escolha o padrão: conversão de endereço de rede [NAT]). Observe que ele também apresenta outras informações, como a localização física do disco virtual. Também é possível definir o tipo de processador subjacente esperado. Nesse caso, AMD i686 é a arquitetura selecionada, mas x86-64 também está disponível.
Verificação final na VM

Verificação final na VM

  1. Quando você clica em Finish, o processo de boot da VM é iniciado. Começa com um boot do CD-ROM (onde foi fornecida a imagem de instalação), que permite que a VM instale a distribuição Linux. Quando a instalação está completa, uma reinicialização (que desconecta automaticamente o CD-ROM) fornece a VM operacional. Observe que essa janela simplesmente apresenta uma visualização da VM e permite interagir com ela. Mesmo que essa janela seja fechada, a VM continua operando em segundo plano (e está visível na janela principal do virt-manager).
VM executando a distribuição Linux leve SliTaz

VM executando a distribuição Linux leve SliTaz

  1. Para criar outra VM, basta clonar a VM instalada anteriormente. Especifique ao virt-manager que você deseja clonar a VM e, em seguida, clone o disco inteiro (para que não sejam compartilhadas). Observe que é possível alterar alguns detalhes da VM clonada, como a configuração de rede.
Clone uma VM no virt-manager
![Clone uma VM no virt-manager](https://developer.ibm.com/developer/default/articles/cl-managingvms/images/figure10.jpg)
  1. Quando você clica em Clone, uma nova VM é criada com base na primeira e poderá ser executada simultaneamente em seu próprio ambiente QEMU. A clonagem de VMs é uma ótima maneira de obter uma captura instantânea do sistema operacional e ambiente de aplicativo, ou de criar um cluster local virtualizado de máquinas após elas serem configuradas com um dado aplicativo (como Apache Hadoop). A Figura 10 mostra ambas as VMs em execução e um perfil de seu uso de CPU na janela principal do virt-manager.
VMs clonadas em execução simultânea através de virt-manager
![VMs clonadas em execução simultânea através de virt-manager](https://developer.ibm.com/developer/default/articles/cl-managingvms/images/figure1.jpg)

Esse exemplo demonstrou um método simples para criar, configurar e executar VMs sem precisar entender de forma detalhada o hypervisor subjacente e as diversas opções que ele expõe (para gerenciamento de armazenamento e rede, por exemplo). Embora esse exemplo tenha usado a emulação do QEMU, o hypervisor Linux Kernel Virtual Machine (KVM) pode ser usado para obter desempenho “near-bare-metal” (usando suporte de hardware, como Intel® Virtual Technology [VT]). O aplicativo virt-manager permite não apenas construir, mas também pausar, reiniciar e clonar VMs.

Ferramentas de suporte

Embora virt-manager use de forma proeminente a API de virtualização libvirt, há um ecossistema crescente de ferramentas que usam essa interface para gerenciamento de virtualização. O pacote virt-manager oferece uma GUI conveniente para criar e gerenciar VMs em vários hypervisors e hosts. Se você preferir a linha de comando, há algumas ferramentas que trazem a eficiência e o controle que apenas a linha de comando pode oferecer.

A ferramenta virt-install permite fornecer novas VMs. Enquanto virt-manager fornece um pequeno número de opções de configuração para construção de VM, virt-install fornece um conjunto abrangente de opções de configuração, incluindo métodos de instalação, configuração de armazenamento, de rede e de gráfico, opções de virtualização e uma enorme lista de opções de dispositivo virtualizado.

A ferramenta virt-image é semelhante à virt-install, mas permite definir os detalhes do processo de construção de VM em XML. O arquivo descritor XML especifica os metadados gerais da VM, seus atributos de domínio (CPUs, memória etc.) e configuração e armazenamento.

A ferramenta virt-clone permite clonar imagens de VM existentes. A expressão clonar significa uma cópia de uma VM existente, com parâmetros atualizados para garantir que a nova VM seja exclusiva, para evitar conflitos (como no endereçamento de media access control [MAC]).

A ferramenta virt-viewer é um console gráfico para uma dada VM usando o protocolo VNC. O virt-viewer pode conectar-se a VMs em execução no host local ou em hosts remotos.

Por fim, a ferramenta mais eficiente para gerenciar domínios guest é a shell de virtualização, ou virsh. virsh pode ser usado para listar VM guests, iniciá-las e interrompê-las e criar VMs. Em suma, é possível usar virsh para a administração total de virtualização entre hypervisors, expondo recursos que não estão disponíveis em outras ferramentas.

Outras soluções de gerenciamento de virtualização

Embora virt-manager e as ferramentas associadas ofereçam um ambiente útil para gerenciar VMs em um ambiente de desktop, pode haver casos em que seja melhor usar uma solução de virtualização com mais recursos. A Red Hat também oferece uma solução chamada oVirt, que, assim como virt-manager, usa libvirt para gerenciar VMs e os hypervisors do backend. A solução oVirt oferece suporte para vários hypervisors de backend e pode até mesmo gerenciar protocolos de armazenamento de nível corporativo, como Fibre Channel, iSCSI e Network File System (NFS). A solução oVirt também disponibiliza recursos de nível corporativo como alta disponibilidade e migração em tempo real em uma infraestrutura homogênea.

Indo além

virt-manager não é apenas mais uma ferramenta: é um passo na direção de nuvens abertas, com APIs abertas e uma pilha de nuvem aberta (desktop, servidor, datacenter). O virt-manager e ferramentas relacionadas oferecem um ambiente simples e eficiente para gerenciar virtualização em um desktop. Quer você prefira a eficiência e capacidade de criação de scripts da linha de comando ou a simplicidade da GUI, virt-manager e as ferramentas relacionadas podem ajudar.

Aviso

O conteúdo aqui presente foi traduzido da página IBM Developer US. Caso haja qualquer divergência de texto e/ou versões, consulte o conteúdo original.