Como Configurar e Gerenciar a Virtualização KVM no Ubuntu: Guia Completo do Iniciante ao Avançado (Edição 2025)

目次

Introdução

Ubuntu é uma das distribuições Linux mais amplamente usadas em todo o mundo. É popular em uma variedade de cenários, desde usuários individuais até ambientes empresariais, e é frequentemente escolhida para implantação de servidores e configurações de desenvolvimento. Se você deseja implementar virtualização avançada no Ubuntu, uma das soluções mais poderosas é KVM (Kernel-based Virtual Machine).

O KVM é uma tecnologia de hipervisor construída diretamente no kernel do Linux. Ao aproveitar as extensões de virtualização de hardware (como Intel VT ou AMD-V), o KVM oferece alto desempenho e estabilidade. Sendo open-source, o KVM permite que você construa uma infraestrutura de virtualização completa com custo mínimo.

A tecnologia de virtualização pode parecer intimidante no início. No entanto, com Ubuntu e KVM, até iniciantes podem facilmente criar e gerenciar máquinas virtuais. Claro, o KVM também é recomendado para usuários intermediários que desejam otimizar recursos de servidores físicos, bem como engenheiros que buscam virtualizar sistemas de produção.

Este artigo fornece um guia abrangente para construir um ambiente de virtualização baseado em KVM no Ubuntu, incluindo etapas de instalação, uso básico, dicas práticas e soluções de troubleshooting. Se você está considerando adotar o KVM ou deseja aproveitar ao máximo os recursos de virtualização do Ubuntu, certifique-se de ler até o final.

Comparando o KVM com Outras Tecnologias de Virtualização

Existem várias tecnologias de virtualização disponíveis, mas no Ubuntu, KVM, VirtualBox e VMware são comumente usados. Esta seção explica os recursos e diferenças de cada um, bem como os prós e contras de escolher o KVM.

Principais Tipos de Tecnologias de Virtualização

  • KVM (Kernel-based Virtual Machine) O KVM é um recurso de virtualização integrado ao kernel do Linux e requer Linux como SO host. Ao utilizar extensões de virtualização de hardware (Intel VT ou AMD-V), o KVM oferece máquinas virtuais de alto desempenho adequadas para ambientes de produção. Ele suporta gerenciamento flexível por meio de ferramentas de linha de comando e gerenciadores GUI como o virt-manager.
  • VirtualBox O VirtualBox é um software de virtualização orientado para desktop fornecido pela Oracle. Ele roda em Windows, Mac e Linux, e possui uma interface fácil de entender, tornando-o uma escolha popular para uso pessoal e educacional. No entanto, comparado ao KVM, é menos adequado para ambientes comerciais ou de alta carga.
  • VMware (Workstation/ESXi, etc.) O VMware é uma solução de virtualização comercial amplamente usada, conhecida por seu conjunto rico de recursos e suporte abrangente. No entanto, uma licença paga é necessária. Embora seja frequentemente escolhida para implantações empresariais em grande escala, o custo pode ser um fator a considerar.

Vantagens do KVM

  • Alto Desempenho e Estabilidade O KVM executa como parte do kernel do Linux, fornecendo gerenciamento eficiente de recursos e controle fino sobre a alocação de CPU e memória para cada VM. É altamente estável para executar sistemas de negócios reais.
  • Open Source e Sem Taxas de Licenciamento O KVM é completamente open-source e gratuito para uso, tornando-o ideal para construir plataformas de virtualização de baixo custo.
  • Ferramentas de Gerenciamento Ricas e Suporte a Automação Uma variedade de opções de gerenciamento está disponível, incluindo ferramentas de linha de comando (virsh, virt-install) e ferramentas GUI (virt-manager). O KVM também é bem adequado para automação e scripting, tornando-o ideal para DevOps e gerenciamento de infraestrutura.

Desvantagens do KVM

  • Requisito de Host Apenas Linux Como o KVM requer o kernel do Linux, não pode ser usado como host em ambientes Windows ou Mac.
  • Conhecimento de Linux Necessário para Configuração Inicial e Troubleshooting Embora ferramentas GUI estejam disponíveis, algumas configurações de rede e ajustes avançados podem exigir operações de linha de comando ou conhecimento específico do Linux.

Quando Você Deve Escolher o KVM?

  • Quando você deseja utilizar os recursos de servidores físicos de forma eficiente
  • Quando você precisa de virtualização para sistemas de produção ou aplicações de servidor
  • Quando você quer construir uma infraestrutura de virtualização robusta a baixo custo
  • Quando você deseja automatizar operações de servidores Linux ou o gerenciamento de infraestrutura

KVM é uma excelente tecnologia de virtualização não apenas para usuários e engenheiros Linux experientes, mas também para aqueles que desejam experimentar a execução de servidores em escala completa no futuro.

Construindo um Ambiente KVM no Ubuntu [Installation & Initial Setup]

Para usar KVM no Ubuntu, você precisa atender a certos pré‑requisitos, realizar algumas preparações e, em seguida, executar a instalação. Esta seção orienta você pelos passos necessários para começar com KVM, com dicas para ajudar iniciantes a configurar o ambiente sem problemas.

Pré‑requisitos e Verificações Iniciais

Para usar KVM, a CPU do seu computador ou servidor deve suportar extensões de virtualização (Intel VT ou AMD‑V).
Primeiro, verifique se a virtualização de hardware habilitada com o seguinte comando:

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

Se a saída for 1 ou maior, o suporte à virtualização está disponível.
Além disso, você deve estar executando uma versão de 64 bits do Ubuntu.

Instalando KVM e Pacotes Necessários

Instale o núcleo do KVM e as ferramentas relacionadas (como libvirt e virt-manager) usando os seguintes comandos:

sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager
  • qemu-kvm : Pacote principal de virtualização KVM
  • libvirt-daemon-system, libvirt-clients : Serviços de gerenciamento para máquinas virtuais
  • bridge-utils : Ferramentas para configuração de bridge de rede
  • virt-manager : Ferramenta GUI para gerenciar máquinas virtuais

Configurando Grupos de Usuários e Permissões

Após a instalação, adicione seu usuário atual aos grupos kvm e libvirt. Isso permite que você gerencie VMs sem privilégios de root.

sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm $(whoami)

Faça logout e login novamente, ou reinicie, para que as alterações tenham efeito.

Verificando o Status do Serviço KVM

Confira se o KVM está instalado corretamente e se o serviço está em execução:

sudo systemctl status libvirtd

Se aparecer “active (running)”, tudo está funcionando.
Você também pode verificar o KVM com este comando:

virsh list --all

Se você vir uma lista (atualmente vazia) de VMs, o ambiente KVM está configurado corretamente.

Criando e Gerenciando Máquinas Virtuais

Uma vez que seu ambiente KVM esteja pronto, você pode começar a criar e operar máquinas virtuais. Com o KVM, você pode usar tanto ferramentas gráficas (virt-manager) quanto ferramentas de linha de comando (virt-install, virsh), dependendo das suas necessidades. Aqui, apresentamos ambas as abordagens.

Criando uma VM Usando o virt-manager (GUI)

O virt-manager é uma ferramenta gráfica que permite criar e gerenciar máquinas virtuais de forma simples. Se você estiver usando um ambiente de desktop Linux, o virt-manager é muito conveniente.

  1. Inicie o virt-manager pelo menu de aplicativos ou pela linha de comando.
  2. Clique no botão “New” no canto superior esquerdo.
  3. Selecione o local da sua mídia de instalação (como uma imagem ISO) e escolha o tipo de SO convidado (ex.: Ubuntu, Windows).
  4. Defina o número de CPUs, tamanho da memória, tamanho do disco, etc., para a VM.
  5. Revise as configurações e clique em “Finish” para criar a VM. A tela de instalação aparecerá.

Com o virt-manager, você também pode iniciar, parar e reiniciar VMs, criar snapshots e adicionar redes ou discos por meio de uma interface intuitiva.

Criando uma VM Usando o virt-install (CLI)

Para ambientes de servidor ou remotos, costuma ser mais fácil criar VMs a partir da linha de comando.
Aqui está um exemplo básico usando virt-install:

sudo virt-install 
  --name ubuntu-vm 
  --memory 2048 
  --vcpus 2 
  --disk size=20 
  --cdrom /path/to/ubuntu.iso 
  --os-type linux 
  --os-variant ubuntu20.04 
  --network network=default 
  --graphics vnc
  • --name : Nome da máquina virtual
  • --memory : Alocação de memória (em MB)
  • --vcpus : Número de núcleos de CPU
  • --disk size=20 : Tamanho do disco (em GB)
  • --cdrom : Caminho para a imagem ISO de instalação
  • --os-type , --os-variant : Tipo e versão do SO
  • --network : Rede para conectar
  • --graphics : Modo de gráficos (ex., VNC)

Após executar este comando, a VM iniciará e a tela de instalação será exibida via VNC ou outro método especificado.

Iniciando, Parando, Excluindo e Tirando Snapshots de Máquinas Virtuais

Gerenciar suas máquinas virtuais com KVM é direto. Aqui estão alguns comandos comumente usados:

  • Iniciar uma máquina virtual:
    virsh start <vm-name>
    
  • Desligar uma máquina virtual:
    virsh shutdown <vm-name>
    
  • Parar forçadamente uma máquina virtual:
    virsh destroy <vm-name>
    
  • Excluir uma máquina virtual (nota: também exclui seu disco):
    virsh undefine <vm-name>
    
  • Criar um snapshot:
    virsh snapshot-create-as <vm-name> <snapshot-name>
    

Você também pode realizar essas operações a partir da GUI do virt-manager.

Configuração e Expansão de Rede

As configurações de rede são cruciais ao executar máquinas virtuais com KVM. Embora as configurações padrão funcionem para muitos casos, ambientes de negócios ou produção frequentemente requerem personalização. Esta seção explica a rede básica do KVM e configurações avançadas comumente usadas.

Diferenças Entre NAT Padrão (virbr0) e Redes Bridge

Quando o KVM é instalado, ele cria automaticamente uma bridge de rede virtual chamada “virbr0”. Esta é uma rede NAT (Network Address Translation), que tem as seguintes características:

  • Características do virbr0 (modo NAT):
  • VMs podem acessar a internet externa
  • No entanto, o acesso direto às VMs do host ou outras redes requer redirecionamento de porta
  • Melhor para laboratórios caseiros, desenvolvimento ou testes

Por outro lado, uma “rede bridge” permite que VMs se juntem ao mesmo segmento de rede que o host físico.

  • Características da rede bridge:
  • VMs se juntam ao mesmo segmento de rede que o host
  • PCs físicos ou outros servidores podem acessar diretamente as VMs
  • Ideal para servidores internos ou serviços de produção

Criando e Configurando uma Bridge Personalizada (para Acesso LAN)

Se você quiser que as VMs sejam diretamente acessíveis de outros PCs ou servidores, crie uma rede bridge. Abaixo está um procedimento típico (assumindo que a NIC do host é eth0):

  1. Instalar bridge-utils (pule se já instalado)
    sudo apt install bridge-utils
    
  1. Editar o arquivo de configuração de rede No Ubuntu 18.04 e posterior, o Netplan é usado. Edite /etc/netplan/01-netcfg.yaml , por exemplo:
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
      bridges:
        br0:
          interfaces: [eth0]
          dhcp4: yes
    
  1. Aplicar as configurações
    sudo netplan apply
    
  1. Adicionar a nova bridge (br0) à rede KVM Mude o adaptador de rede da sua VM para br0 usando virt-manager ou virsh.

Atribuindo IPs Estáticos & Configurando Redirecionamento de Porta

  • Atribuindo IPs Estáticos Tipicamente, defina um IP estático no SO da VM, ou use o servidor DHCP para atribuir um IP fixo por endereço MAC.
  • Redirecionamento de Porta (ao usar NAT) Com virsh ou XML do libvirt, você pode redirecionar portas (ex., SSH ou servidor web) do host para a VM. Exemplo para redirecionar SSH para a porta 22:
    virsh nat-forward --network default --add-port tcp:2222:22
    

Para configurações mais complexas, você também pode editar os arquivos de configuração do libvirt ou usar firewalld.

Gerenciamento de Armazenamento e Operações de Disco

O design adequado de armazenamento e gerenciamento de disco também são essenciais ao operar máquinas virtuais com KVM. Esta seção explica os diferentes tipos de discos virtuais, como criá-los, gerenciamento de pool de armazenamento, expansão de disco e o uso de snapshots.

Tipos e Usos de Discos Virtuais (qcow2, raw)

O KVM suporta principalmente dois tipos de formatos de disco virtual:

  • Formato qcow2
  • O formato padrão de disco virtual para KVM
  • Suporta snapshots, compressão e uso eficiente de espaço em disco
  • Ideal para operações flexíveis ou ambientes de teste
  • Formato raw
  • Um formato simples sem compressão ou conversão
  • Ideal quando você precisa do máximo desempenho de I/O de disco

Na maioria dos casos, o qcow2 é recomendado, mas você pode escolher com base em suas necessidades específicas.

Criando e Gerenciando Pools de Armazenamento

O KVM usa o conceito de “pools de armazenamento” para gerenciar o espaço em disco usado pelas máquinas virtuais.

  • Pool de Armazenamento Padrão Por padrão, /var/lib/libvirt/images/ é usado como o pool de armazenamento, e novos discos virtuais são criados neste diretório.
  • Criando um Novo Pool de Armazenamento (Exemplo)
  1. Crie um diretório:

    sudo mkdir /data/kvm-images sudo chown libvirt-qemu:kvm /data/kvm-images 2. Adicione um novo pool usando o virt-manager ou o comando virsh. Com virsh:

    virsh pool-define-as --name mypool --type dir --target /data/kvm-images 
    virsh pool-autostart mypool 
    virsh pool-start mypool

Expandindo Discos Virtuais e Usando Snapshots

  • Expandindo um Disco Virtual Se você precisar aumentar o tamanho do disco, use o comando qemu-img (funciona para qcow2 e raw):
    sudo qemu-img resize /var/lib/libvirt/images/ubuntu-vm.qcow2 +10G
    

Depois disso, expanda a partição e o sistema de arquivos dentro do SO convidado conforme necessário.

  • Usando Snapshots Com discos qcow2, você pode criar snapshots para salvar o estado atual da sua VM a qualquer momento.
    virsh snapshot-create-as <vm-name> <snapshot-name>
    

Snapshots são muito úteis para fazer backup antes de atualizações, reverter testes ou recuperar de erros de configuração.

Instalação e Operação do SO Convidado

Esta seção explica como instalar e executar sistemas operacionais em máquinas virtuais KVM. Vamos cobrir a instalação de SOs convidados típicos, manipulação de imagens ISO e dicas para melhorar o desempenho durante a operação.

Instalando SOs Convidados Populares

O KVM permite que você execute uma variedade de SOs, como Ubuntu, CentOS e Windows. Abaixo estão etapas de instalação de exemplo para Ubuntu e Windows:

  • Para Ubuntu
  1. Baixe o ISO mais recente do Ubuntu do site oficial.
  2. No virt-manager, escolha “Criar uma nova máquina virtual”, selecione “Mídia de instalação local” e especifique o arquivo ISO.
  3. Defina a CPU, memória e tamanho do disco da VM, depois inicie a instalação.
  4. Siga as instruções na tela para completar a instalação padrão do Ubuntu.
  • Para Windows
  1. Baixe um ISO de avaliação do Windows do site oficial da Microsoft.
  2. Crie uma nova VM no virt-manager ou usando virt-install, e selecione o ISO como mídia de instalação.
  3. Para melhor desempenho de disco e rede, monte o ISO de drivers virtio como um drive de CD adicional e instale os drivers durante a configuração.

Obtendo e Montando Imagens ISO

  • Baixe imagens ISO de fontes oficiais para o SO que você deseja instalar.
  • Especifique o caminho para o arquivo ISO ao criar uma nova máquina virtual; ele será montado como um drive de CD/DVD virtual.
  • Se necessário, você pode montar múltiplos ISOs de uma vez (ex.: SO e drivers).

Dicas para Operação e Desempenho do SO Convidado

  • Otimize a Alocação de Recursos Atribua quantidades apropriadas de CPU e memória a cada VM. Super-alocar recursos pode afetar negativamente o SO host e outras VMs.
  • Instale Drivers virtio Para Windows ou convidados Linux mais antigos, instalar drivers virtio pode aumentar significativamente o desempenho de disco e rede.
  • Desative Serviços Não Utilizados Desligue serviços desnecessários e programas em segundo plano no SO convidado para maximizar os recursos disponíveis.
  • Use Ferramentas de Convidado KVM Instale o Agente de Convidado QEMU para melhorar a precisão do gerenciamento de VM e suportar recursos como desligamento limpo.

Casos de Uso Práticos e Dicas de Automação

KVM não serve apenas para criar e executar VMs — ele pode ser aproveitado em diversos cenários de negócios e desenvolvimento. Ao combiná‑lo com scripts ou ferramentas de automação, a gestão pode se tornar muito mais eficiente. Esta seção compartilha casos de uso práticos do KVM e ideias de automação.

Casos de Uso em Servidores

  • Ambientes de Desenvolvimento e Teste Isolados Provisione uma VM separada para cada projeto, permitindo alternar livremente entre versões de SO e pilhas de software sem impactar a produção. Essa é uma grande vantagem ao testar novas versões de SO ou atualizações de software.
  • **Construção de Serviços Internos Separe serviços críticos (servidores de arquivos, servidores web, bancos de dados etc.) em VMs individuais, de modo que falhas afetem apenas um escopo limitado. Backups e snapshots são fáceis em nível de VM.

Exemplos de Automação Usando CLI ou Ansible

  • Criação Automatizada de VMs via CLI Use scripts para executar automaticamente os comandos virt-install ou virsh para criar e gerenciar múltiplas VMs. Exemplo usando um script shell:
    for i in {1..5}
    do
      virt-install --name test-vm-$i --memory 1024 --vcpus 1 
        --disk size=10 --cdrom /path/to/ubuntu.iso 
        --os-type linux --os-variant ubuntu20.04 --graphics none --network network=default --noautoconsole
    done
    
  • Automação com Ansible Com a ferramenta de automação de infraestrutura Ansible, você pode descrever a criação de VMs, a configuração inicial e a implantação de aplicações em playbooks — automatizando todo o processo. Isso é especialmente eficaz ao gerenciar um grande número de servidores ou quando a consistência é crítica.

Dicas para Operações ao Estilo Cloud

  • Modelagem de VMs (Templating) Salve estados iniciais de VMs comumente usados como modelos, permitindo implantar novos servidores rapidamente.
  • Integração de API e Gerenciamento Baseado na Web libvirt fornece uma API para integração com ferramentas personalizadas ou outros sistemas de gerenciamento. Em ambientes grandes, use ferramentas de gerenciamento web (como Cockpit) para administrar VMs visualmente.

Solução de Problemas e Correções de Erros Comuns

Ao executar o KVM, você pode encontrar problemas como falha ao iniciar a VM ou dificuldades de conectividade de rede. Esta seção cobre problemas frequentes, como resolvê‑los, como verificar logs e usar recursos de suporte.

Problemas Comuns com KVM

  • VM Falha ao Iniciar ou Criar
  • Virtualização de hardware (Intel VT, AMD‑V) está desativada
  • Memória ou espaço em disco insuficientes
  • Caminho de pool de armazenamento ou ISO incorreto
  • Problemas de Conectividade de Rede
  • Adaptador de rede da VM não configurado corretamente
  • Erros nas configurações de bridge ou NAT, ou falhas na atribuição DHCP
  • Restrições de firewall ou segurança
  • Desempenho Insatisfatório
  • Alocação excessiva ou insuficiente de recursos
  • Drivers virtio ausentes (especialmente para convidados Windows)
  • Gargalos de I/O de disco

Como Verificar Logs e Fluxo Básico de Solução de Problemas

Quando surgirem problemas, a verificação de logs é fundamental.

  • Verificar Logs do Sistema
    sudo journalctl -xe
    

Procure mensagens de erro relacionadas ao KVM ou libvirt.

  • Verificar Logs do libvirt Revise os arquivos de log em /var/log/libvirt/ (por exemplo, libvirtd.log).
  • Verificar Logs Específicos da VM No virt‑manager ou virsh, examine a aba “Detalhes” ou “Logs” de cada VM.
  • Verificar Status da Rede
    ip a
    brctl show
    virsh net-list --all
    

Cheque as conexões de rede atuais e a configuração de bridge.

Passos Básicos de Solução de Problemas

  1. Identifique quando o problema começou e esclareça os sintomas
  2. Verifique os logs e arquivos de configuração acima
  3. Se necessário, edite os arquivos de configuração, reinicie serviços ou recrie a VM

Aproveitando a Documentação Oficial e Recursos da Comunidade

Se você ficar preso, esses recursos podem ser inestimáveis:

Otimização de Segurança e Desempenho

Para operar seu ambiente KVM de forma segura e eficiente, medidas de segurança e otimização de desempenho são essenciais. Esta seção cobre pontos chave para proteger sua infraestrutura de virtualização e dicas práticas para maximizar a eficiência de recursos.

Fortalecendo a Segurança em Ambientes Virtualizados

  • Desative Serviços Desnecessários e Use Configurações Mínimas Desative serviços não utilizados dentro das suas VMs para reduzir a superfície de ataque. Da mesma forma, pare serviços desnecessários no SO do host.
  • Firewall e Controles de Acesso Configure firewalls (como ufw ou firewalld) adequadamente tanto no host quanto nos sistemas guest para bloquear acesso externo não autorizado. Para SSH, considere alterar o número da porta, usar autenticação baseada em chaves e implementar fail2ban para proteção adicional.
  • Isolamento de VM (Segmentação de Rede) Separe servidores críticos em diferentes redes virtuais ou segmentos físicos para minimizar o impacto se uma violação ocorrer.
  • Atualizações Regulares Mantenha tanto o SO do host quanto o dos guests atualizados com as últimas correções de segurança e atualizações de software.

Otimizando a Alocação de Recursos (CPU/Memória/Disk I/O)

  • Gerenciamento Básico de Recursos Aloque CPU e memória adequadamente para cada VM e deixe folga no host para a estabilidade geral do sistema. Super-alocação pode causar degradação de desempenho tanto para o host quanto para outras VMs.
  • Otimização de Disk I/O O desempenho do disco frequentemente se torna um gargalo. Atribua armazenamento SSD rápido a VMs importantes para os melhores resultados. Além disso, usar muitos snapshots com discos qcow2 pode reduzir o desempenho, então equilibre o uso adequadamente.
  • Aproveite os Drivers virtio Instale drivers virtio nos SOs guests para melhorar grandemente o desempenho de disco e rede.

Automatizando Backups e Snapshots

  • Agende Snapshots Regulares Faça snapshots regulares de VMs de produção para que você possa se recuperar rapidamente em caso de falha.
  • Faça Backup de Imagens de Disco e Arquivos de Configuração Faça backup das suas imagens de disco virtual (arquivos qcow2/raw) e arquivos de configuração XML do libvirt regularmente para outro dispositivo de armazenamento ou servidor externo.
  • Integre com Ferramentas de Automação Use jobs cron ou ferramentas de automação como Ansible para agendar backups e criação de snapshots automaticamente.

Resumo & Recursos de Aprendizado Adicionais

Este artigo cobriu a construção e operação de um ambiente de virtualização KVM no Ubuntu — desde a instalação até o uso avançado, solução de problemas, segurança e otimização de desempenho. Vamos revisar os pontos chave e introduzir recursos para ajudá-lo a continuar aprendendo.

Resumo dos Pontos Chave

  • Visão Geral do KVM e Benefícios O KVM é uma solução de virtualização open-source de alto desempenho amplamente usada com servidores Ubuntu.
  • Passo a Passo da Instalação à Operação Nós passamos pela verificação do suporte à virtualização, instalação de pacotes, configuração de permissões de usuário, criação de VMs e realização de operações básicas.
  • Dicas Práticas sobre Rede, Armazenamento e Operações Você aprendeu como configurar redes NAT ou bridge, gerenciar pools de armazenamento, expandir discos e utilizar snapshots.
  • Solução de Problemas e Segurança Cobrimos manuseio de erros comuns, como verificar logs e pontos para operação segura e eficiente.

Próximos Passos & Recursos de Aprendizado Recomendados

Depois de dominar o básico, o KVM pode ser usado para tudo, desde projetos pessoais até infraestrutura corporativa. Use este guia como base e continue explorando de acordo com seus objetivos e ambiente.

Referência Rápida de Comandos & Configurações Comuns (Cheat Sheet)

Ter uma referência rápida de comandos úteis e exemplos de configuração para KVM e libvirt é muito prático para o gerenciamento diário de VMs. Esta seção lista comandos comuns e exemplos compactos de configurações para redes e discos.

Principais Comandos KVM/virsh/virt-manager

  • Listar todas as máquinas virtuais
    virsh list --all
    
  • Iniciar uma máquina virtual
    virsh start <vm-name>
    
  • Desligar uma máquina virtual
    virsh shutdown <vm-name>
    
  • Forçar a parada de uma máquina virtual
    virsh destroy <vm-name>
    
  • Criar uma nova máquina virtual (virt-install)
    virt-install --name <name> --memory <MB> --vcpus <cores> 
      --disk size=<GB> --cdrom <ISO path> 
      --os-type linux --os-variant ubuntu20.04
    
  • Excluir uma máquina virtual (apenas configurações)
    virsh undefine <vm-name>
    

Exemplos de Configuração de Rede & Bridge

  • Listar redes atuais
    virsh net-list --all
    
  • Criar uma nova rede (exemplo XML) Coloque um arquivo XML em /etc/libvirt/qemu/networks/, depois ative-o com virsh net-define <filename> e virsh net-start <network-name>

Exemplos de Gerenciamento de Armazenamento & Operações de Disco

  • Listar pools de armazenamento
    virsh pool-list --all
    
  • Expandir um disco virtual
    sudo qemu-img resize /path/to/disk.qcow2 +10G
    
  • Criar um snapshot
    virsh snapshot-create-as <vm-name> <snapshot-name>
    

Outras Dicas Úteis

  • Configurar a VM para iniciar automaticamente na inicialização do host
    virsh autostart <vm-name>
    
  • Obter informações detalhadas sobre uma VM
    virsh dominfo <vm-name>
    
  • Iniciar o virt-manager (GUI)
    virt-manager
    

FAQ (Perguntas Frequentes)

Aqui estão respostas para perguntas comuns dos leitores sobre KVM e ambientes de virtualização no Ubuntu. Use-as para solução de problemas e operações diárias.

Q1: Quais são as diferenças entre KVM, VirtualBox e VMware?

R1: O KVM é uma plataforma de virtualização de alto desempenho integrada ao kernel Linux e é mais adequado para servidores e uso em produção. O VirtualBox é voltado para uso em desktop, enquanto o VMware oferece muitos recursos e suporte para ambientes comerciais de grande escala. O KVM é recomendado quando você deseja alto desempenho a baixo custo.

Q2: Como faço backup e restauração de máquinas virtuais?

R2: Você pode fazer backup facilmente copiando as imagens de disco virtual (arquivos qcow2 ou raw). Também é recomendado salvar snapshots do virsh e os arquivos de configuração XML da VM para uma restauração tranquila.

Q3: Como posso usar dispositivos USB dentro de uma máquina virtual?

R3: Use o recurso “Add Hardware” no virt-manager ou configure o passthrough de USB com o virsh. Isso permite usar unidades USB, HDs externos, impressoras, etc., dentro das suas VMs.

Q4: Como faço para iniciar automaticamente uma VM quando o host inicializa?

R4: Execute virsh autostart <vm-name> para configurar essa VM para iniciar automaticamente quando o sistema operacional do host for iniciado.

Q5: O que devo fazer se o desempenho da VM estiver lento?

R5: Revise e ajuste a alocação de CPU/memória, otimize o I/O de disco (use armazenamento mais rápido ou troque de qcow2 para raw) e instale drivers virtio no sistema operacional convidado.

Q6: Estou tendo problemas com as configurações de rede. O que devo verificar?

R6: Use o virsh ou o brctl para verificar o status da rede. Revise e, se necessário, recrie redes virtuais ou edite as configurações de bridge com Netplan ou NetworkManager.

Q7: É possível criar clusters ou configurações HA com KVM?

A7: Sim. Você pode combinar o KVM com ferramentas como Pacemaker, Corosync e armazenamento compartilhado (NFS, iSCSI, etc.) para habilitar clusters de alta disponibilidade (HA) e migração ao vivo de VMs. É necessário conhecimento avançado.