Gerenciando VMs com o Virtual Machine Manager

Com a introdução da virtualização, os hosts físicos não estão mais confinados aos limites de sistemas operacionais de instância única. Nós multiplexamos nossos hosts eficientemente com mais de um sistema operacional como máquinas virtuais (VMs). Mas a densidade de sistemas operacionais em um host simplesmente aumenta os requisitos de gerenciamento. Uma solução para esse problema de gerenciamento é o Virtual Machine Manager, ou virt-manager. Este artigo explora o uso do virt-manager, demonstra seus recursos em hardwares modestos e mostra como usá-lo para gerenciar e monitorar o desempenho de VMs em tempo real.

M. Tim Jones, Independent Author, .

M. Tim JonesTim é arquiteto de firmware integrado e autor de Artificial Intelligence: A Systems Approach, GNU/Linux Application Programming (agora na segunda edição), AI Application Programming (na segunda edição) e BSD Sockets Programming from a Multilanguage Perspective. Sua experiência em engenharia inclui o desenvolvimento de kernels para espaçonaves geossíncronas, arquitetura de sistemas embarcados e desenvolvimento de protocolos de rede. Tim é arquiteto de software e escritor em Longmont, Colorado, EUA.


nível de autor Contribuidor do
        developerWorks

30/Nov/2012

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 contêineres 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 contêiner, 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.

Tablela 1. Tabela 1. Aplicativos para gerenciamento de virtualização (incluindo ferramentas de linha de comando)
AplicativoDescrição
virt-managerFerramenta de gerenciamento de VM de desktop
virt-installFerramenta de fornecimento de VM
virt-cloneFerramenta de clonagem de imagem de VM
virt-imageConstrução de VM a partir de um descritor XML
virt-viewerConsole gráfico de VM
virshTerminal 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).

Figura 1. 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.

    Figura 2. Janela do Gerenciador de Máquina Virtual
    Janela do Gerenciador de Máquina Virtual
  3. Quando conectar ao hypervisor QEMU local, clique no ícone Create Virtual Machine, que inicia o Assistente VM Construction.
  4. 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).
    Figura 3. Criar uma VM
    Criar uma VM
  5. 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.
    Figura 4. Defina a mídia de instalação
    Defina a mídia de instalação
  6. 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.
    Figura 5. Defina o ambiente de execução
    Defina o ambiente de execução
  7. 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.
    Figura 6. Defina o ambiente de armazenamento
    Defina o ambiente de armazenamento
  8. 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.
    Figura 7. Verificação final na VM
    Verificação final na VM
  9. 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).
    Figura 8. VM executando a distribuição Linux leve SliTaz
    VM executando a distribuição Linux leve SliTaz
  10. 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.
    Figura 9. Clone uma VM no virt-manager
    Clone uma VM no virt-manager
  11. 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.
    Figura 10. VMs clonadas em execução simultânea através de virt-manager
    VMs clonadas em execução simultânea através de virt-manager

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.

Recursos

Aprender

  • O website do Virtual Machine Manager é a fonte de informações sobre todo o conjunto de aplicativos virt-manager. Além de um repositório de origem e uma lista de e-mails, também inclui um wiki e um FAQ e informações sobre os planos de desenvolvimento da UI do desktop. A Red Hat publica uma lista de desejos e um roteiro, para que seja possível saber o que virá em seguida.
  • A Red Hat mantém uma ótima documentação sobre o gerenciamento de virtualização. No site de documentação da Red Hat, há informações sobre Administração de Virtualização, Introdução e detalhes sobre Configuração de Host e Instalação de Guest.
  • virt-manager faz grande uso de libvirt como meio de comunicação com o hypervisor e VMs. Saiba mais sobre libvirt em "Anatomia da biblioteca de virtualização libvirt" (M. Tim Jones, developerWorks, janeiro de 2010).
  • As man pages do Linux são uma ótima fonte para aprender sobre as ferramentas disponíveis. É possível encontrar versões em HTML das man pages das várias ferramentas discutidas aqui, como virt-manager, virt-viewer, virt-install, virt-image, virt-clone e virsh.
  • A área de Software Livre no developerWorks fornece diversas informações sobre ferramentas de software livre e tecnologias de software livre utilizadas.
  • Para gerenciamento de virtualização em larga escala, considere o software da Red Hat oVirt. O projeto oVirt é um ecossistema de projetos para gerenciamento de virtualização abrangente.

Obter produtos e tecnologias

  • Avalie produtos IBM da maneira que for melhor para você: faça download da versão de teste de um produto, avalie um produto on-line, use-o em um ambiente de nuvem ou passe algumas horas na Sandbox SOA para saber como implementar arquitetura orientada a serviço de maneira eficiente.

Discutir

  • Participe da comunidade do My developerWorks. Entre em contato com outros usuários do developerWorks e explore os blogs, fóruns, grupos e wikis voltados para desenvolvedores.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Linux, Cloud computing
ArticleID=848115
ArticleTitle=Gerenciando VMs com o Virtual Machine Manager
publish-date=11302012