Introdução à Migração de KVM para Proxmox
A migração de infraestrutura virtual é um processo crítico que exige planejamento rigoroso, compreensão profunda dos formatos de imagem e atenção aos detalhes de rede e armazenamento. Neste tutorial técnico, abordaremos o processo de migrar máquinas virtuais (VMs) criadas em ambientes KVM (Kernel-based Virtual Machine), frequentemente encontradas em distribuições Linux como CentOS, RHEL ou Ubuntu Server, para o ambiente Proxmox VE (Virtual Environment). O Proxmox é uma plataforma open-source baseada em Debian que combina virtualização completa (KVM) e contêineres LXC, oferecendo alta disponibilidade, backup integrado e gestão centralizada.
Muitas empresas operam com servidores físicos rodando KVM via libvirt/qemu diretamente no host ou utilizam soluções como OpenStack. Ao consolidar esses recursos em um cluster Proxmox, ganhamos em simplicidade de gerenciamento, recursos de alta disponibilidade (HA) e facilidade de snapshot. Este guia foca na conversão direta de discos virtuais e reconfiguração das definições XML do KVM para o formato QEMU/KVM nativo do Proxmox.
Atenção: Antes de iniciar qualquer operação de migração, certifique-se de realizar backups completos das suas VMs atuais. A manipulação direta de imagens de disco pode resultar em perda de dados se os comandos forem executados incorretamente. Este tutorial assume que você tem acesso root ou sudo ao host KVM antigo e acesso SSH com privilégios administrativos ao nó Proxmox.
Etapa 1: Preparação do Ambiente Proxmox
Antes de transferir qualquer dado, o ambiente de destino deve estar preparado para receber as novas máquinas virtuais. Isso inclui garantir que os repositórios estejam atualizados e que os recursos de armazenamento necessários estejam configurados.
- Atualize o Sistema Proxmox: Execute a atualização padrão do Debian/Proxmox para evitar conflitos de bibliotecas durante importações complexas.
apt update && apt upgrade -y
- Verifique os Storage Pools: O Proxmox utiliza um sistema de armazenamento flexível. Você pode usar NFS, Ceph, LVM-thin ou diretórios locais. Certifique-se de que há espaço suficiente para a soma dos tamanhos das imagens de disco (.qcow2 ou .raw) que serão importadas.
No painel web do Proxmox, navegue até Datacenter > Storage. Se necessário, adicione um novo storage via Add > Diretório ou NFS.
- Crie a Rede de Destino: Verifique se as bridges de rede (vmbr0, vmbr1) estão configuradas no nó Proxmox para atender à mesma topologia de rede das VMs originais.
Etapa 2: Extração da Configuração KVM
O primeiro passo técnico é entender como a máquina virtual está configurada no host KVM atual. No mundo libvirt, a configuração não reside em um arquivo único simples, mas sim em um XML definido via virsh.
- Liste as VMs Ativas: Use o comando virsh para identificar o nome exato da sua VM.
virsh list --all
- Exporte o XML de Configuração: Salve a definição atual. Isso nos ajudará a entender quais discos, CPUs e memória estão alocados.
virsh dumpvm-nome-da-vm > vm-config.xml
- Identifique o Disco: Abra o arquivo
vm-config.xmle localize a seção<disk>. Anote o caminho do disco (path) e o formato (qcow2 ou raw). Por exemplo:/var/lib/libvirt/images/meu-servidor.qcow2.
Dica Técnica: Se a VM estiver em execução, você deve desligá-la limamente antes de prosseguir para evitar corrupção de sistema de arquivos.
virsh shutdown nome-da-vm
Etapa 3: Conversão e Transferência do Disco Virtual
O núcleo da migração é a transferência da imagem do disco. O Proxmox aceita nativamente imagens .qcow2, mas frequentemente prefere ou requer o formato .raw para operações de baixo nível ou para compatibilidade máxima com certos tipos de storage (como Ceph RBD sem overlay). A ferramenta qemu-img é essencial aqui.
- Copie a Imagem para o Host Proxmox: Utilize
scpoursyncpara mover o arquivo de disco do host KVM antigo para o nó Proxmox. Recomendamos enviar para um diretório temporário.
scp /var/lib/libvirt/images/meu-servidor.qcow2 root@seu-proxmox:/tmp/
- Converta para Formato Raw (Opcional, mas Recomendado): Embora o Proxmox suporte QCOW2 nativamente, converter para RAW simplifica a importação direta para storage LVM ou Ceph e remove overhead de metadados desnecessários se você não precisar de snapshots avançados no nível do disco.
qemu-img convert -f qcow2 -O raw /tmp/meu-servidor.qcow2 /tmp/meu-servidor.raw
- Compacte a Imagem (Se Usar QCOW2): Se decidir manter o formato QCOW2 para economizar espaço, execute um compactação após a cópia.
qemu-img convert -f qcow2 -O qcow2 /tmp/meu-servidor.qcow2 /tmp/meu-servidor-compacto.qcow2
Etapa 4: Importação para o Proxmox Storage
Agora que a imagem está no servidor Proxmox, precisamos importá-la para o storage gerenciado pelo Proxmox (por exemplo, local-lvm ou um NFS). O comando qm importdisk é a ferramenta padrão da linha de comando do Proxmox para essa tarefa.
- Execute o Comando de Importação: A sintaxe geral é:
qm importdisk [VMID] [arquivo] [storage]. Como ainda não criamos a VM no Proxmox, usaremos um ID temporário ou criaremos a estrutura primeiro. O método mais seguro é importar como um disco "unattached".
qm importdisk 9000 /tmp/meu-servidor.raw local-lvm
Neste exemplo, assumimos que o ID da VM futura será 9000. O disco resultante será algo como local-lvm:vm-9000-disk-1.
- Crie a Máquina Virtual Vazia: Agora, crie uma VM "esqueleto" no Proxmox com os recursos de CPU e RAM correspondentes à original. Não adicione o disco ainda.
qm create 9000 --name "Servidor-Migrado" --memory 4096 --cores 2 --net0 virtio,bridge=vmbr0
- Anexe o Disco Importado: Conecte o disco importado à VM recém-criada.
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-1
Etapa 5: Ajustes de Configuração e Drivers
Máquinas KVM nativas geralmente usam drivers de disco IDE ou VirtIO. O Proxmox recomenda fortemente o uso de VirtIO para performance máxima. Se a imagem original foi convertida para RAW, ela pode estar configurada como IDE no XML antigo.
- Verifique o Controlador: No comando anterior, usamos
--scsihw virtio-scsi-pci. Isso garante que o controlador seja compatível com VirtIO SCSI, oferecendo melhor desempenho que SATA/IDE.
- Instale Drivers VirtIO no Sistema Operacional (Guest):
- Linux: A maioria das distribuições modernas já inclui drivers VirtIO. Se o sistema falhar ao bootar, verifique se o módulo
virtio_blkestá carregado. - Windows: Se a VM migrada for Windows, é crítico instalar os drivers VirtIO do projeto Fedora antes da migração ou montar a ISO de drivers no boot. Sem isso, o Windows causará BSOD (Tela Azul) por não reconhecer o controlador de disco.
- Ajuste de Rede: O Proxmox usa interfaces
virtiopor padrão. Se a VM original usava e1000 (Intel), você pode manter, mas mudar paravirtiomelhora a throughput de rede. Edite a VM no Proxmox Web GUI ou via CLI:
qm set 9000 --net0 virtio,bridge=vmbr0,rate=100
Etapa 6: Boot e Validação Pós-Migração
Com a configuração aplicada, inicie a máquina virtual.
qm start 9000
- Monitorize o Console: Abra o console no Proxmox Web GUI para observar o processo de boot. Verifique se o sistema operacional reconhece os discos corretamente e se monta as partições.
- Verificação de Integridade:
- Verifique o
dmesgno Linux para erros de driver. - Confirme que os serviços críticos (Apache, Nginx, Database) iniciaram corretamente.
- Teste a conectividade de rede externa e interna.
- Cleanup: Após confirmar o funcionamento estável, remova as imagens temporárias do diretório /tmp no Proxmox para liberar espaço.
rm -f /tmp/meu-servidor.raw /tmp/meu-servidor.qcow2
Considerações Finais e Boas Práticas
A migração de KVM para Proxmox não é apenas técnica, mas também operacional. Ao mover suas cargas de trabalho para o Proxmox, você ganha acesso a recursos poderosos como:
- Snapshots Automatizados: Configure jobs de backup no Proxmox Backup Server (PBS) ou backups locais.
- High Availability (HA): Se seu cluster tiver múltiplos nós, configure a VM para iniciar automaticamente em outro nó em caso de falha hardware.
- Templates: Converta esta VM migrada em um Template do Proxmox para clonar instâncias idênticas rapidamente no futuro.
Lembre-se de que a virtualização moderna exige monitoramento contínuo. Utilize as ferramentas de telemetria do Proxmox (Grafana/Prometheus integrados) para acompanhar o uso de CPU, RAM e I/O de disco das VMs migradas.
Se você encontrou erros durante a conversão de imagem, verifique logs no host Proxmox em /var/log/syslog ou ao iniciar a VM via console. Erros comuns incluem permissões incorretas nos arquivos importados e incompatibilidade de arquitetura (ex: tentar rodar uma VM ARM em um host x86_64).
Com este guia, sua infraestrutura está pronta para operar com a robustez e escalabilidade que o Proxmox VE oferece. Para dúvidas específicas sobre clusters complexos ou integração com Ceph, consulte a documentação oficial do projeto.