Como migrar discos do VMware para storage ZFS no Proxmox VE

      Roberto Xavier 8 min de leitura
      Como migrar discos do VMware para storage ZFS no Proxmox VE

      Guia técnico passo a passo para migrar VMs do VMware ESXi para Proxmox VE usando ZFS. Aprenda a usar qm importdisk, converter VMDK para Zvol e configurar drivers VirtIO.

      Compartilhar:

      A migração de infraestruturas virtualizadas baseadas em VMware vSphere para o Proxmox VE tem se tornado uma tarefa frequente para administradores de sistemas que buscam reduzir custos de licenciamento e aproveitar a robustez do OpenZFS. No entanto, a camada de armazenamento é o ponto mais crítico dessa transição. Mover dados de um sistema de arquivos VMFS (proprietário) para um pool ZFS requer compreensão técnica para evitar perda de integridade ou degradação de performance.

      Neste guia, focaremos estritamente na camada de dados: como transformar um arquivo encapsulado .vmdk em um volume nativo ZFS (Zvol), garantindo que o sistema operacional convidado mantenha sua estrutura de boot e aproveite os recursos de compressão e proteção contra bit rot do ZFS.

      Resumo em 30 segundos

      • Conversão Direta: O Proxmox possui ferramentas nativas (qm importdisk) que leem VMDK e escrevem diretamente em Zvols (RAW), dispensando conversões manuais intermediárias.
      • Drivers VirtIO: Sistemas Windows exigem cuidados especiais com drivers SCSI para evitar telas azuis (BSOD) após a troca do controlador de disco.
      • Eficiência ZFS: Ao migrar para ZFS, o formato final do disco deve ser RAW. O ZFS assume o papel de gerenciamento de snapshots e compressão, tornando o formato QCOW2 redundante e lento.

      Entendendo a transição: De arquivo para bloco

      Antes de executar qualquer comando, é vital entender a mudança de arquitetura. No VMware, seus discos virtuais são arquivos (.vmdk) que residem sobre um sistema de arquivos (VMFS ou NFS). No Proxmox com ZFS, a abordagem recomendada não é usar arquivos, mas sim Zvols.

      Um Zvol é um dispositivo de bloco virtual. Para o sistema operacional da VM, ele parece um disco físico real. Para o ZFS, ele é um dataset que pode ser comprimido, replicado e verificado.

      Tabela comparativa: Origem vs Destino

      Característica VMware (Origem) Proxmox ZFS (Destino)
      Formato do Disco VMDK (Virtual Machine Disk) RAW (Gravado em Zvol)
      Camada de Armazenamento VMFS (File System) ZFS (Volume Manager + FS)
      Mecanismo de Snapshot Delta files (.00001.vmdk) ZFS Snapshots (Nativos/Atômicos)
      Overhead Médio (depende do VMFS) Baixo (Acesso direto a bloco)

      Fluxo de conversão de dados: O arquivo VMDK é processado e seus blocos são escritos diretamente em um volume ZFS (Zvol). Figura: Fluxo de conversão de dados: O arquivo VMDK é processado e seus blocos são escritos diretamente em um volume ZFS (Zvol).


      Passo 1: Preparação e transferência do disco

      O primeiro desafio técnico é mover o arquivo .vmdk do host ESXi para o host Proxmox. Assumiremos que você tem acesso SSH a ambos os servidores.

      Habilitando SSH no ESXi

      Por padrão, o SSH vem desabilitado no ESXi.

      1. Acesse a interface web do ESXi (Host Client).

      2. Navegue até Manage > Services.

      3. Localize o serviço TSM-SSH e inicie-o.

      Transferindo o arquivo via SCP

      No console do seu servidor Proxmox, execute o comando scp para puxar o disco do VMware. Recomendamos transferir o arquivo "flat" (o que contém os dados brutos), geralmente nomeado como nome-da-vm-flat.vmdk. Se o disco for thin provisioned, copie o arquivo .vmdk principal.

      # Execute no terminal do Proxmox
      # Sintaxe: scp usuario@ip-esxi:/caminho/para/datastore/vm/disco.vmdk /diretorio/local/
      
      scp [email protected]:/vmfs/volumes/datastore1/WebServer/WebServer.vmdk /var/lib/vz/dump/
      

      💡 Dica Pro: Se você tiver espaço limitado no disco de boot do Proxmox, não copie o arquivo para /var/lib/vz/. Em vez disso, monte o datastore do ESXi via NFS diretamente no Proxmox para ler o arquivo sem copiá-lo fisicamente antes da importação. Isso economiza tempo e I/O.


      Passo 2: Criando o esqueleto da VM

      Antes de importar o disco, precisamos de uma VM "oca" no Proxmox para recebê-lo. Não crie um disco rígido para esta VM durante o assistente de criação.

      1. No Proxmox, clique em Create VM.

      2. Defina o OS e System conforme a origem (ex: Linux ou Windows).

      3. Na aba Disks, remova qualquer disco padrão clicando na lixeira. A VM deve ser criada sem discos.

      4. Anote o VM ID (ex: 105).


      Passo 3: Importação via qm importdisk

      Este é o comando que realiza a mágica. O utilitário qm importdisk é um wrapper inteligente que utiliza o qemu-img para converter o formato de origem (VMDK) e escrever os blocos no armazenamento de destino.

      Sintaxe básica: qm importdisk <vmid> <caminho-do-vmdk> <storage-zfs>

      Exemplo prático: Vamos importar o disco que baixamos para a VM 105, salvando-o no storage chamado local-zfs.

      qm importdisk 105 /var/lib/vz/dump/WebServer.vmdk local-zfs
      

      O que acontece nos bastidores:

      1. O Proxmox cria um novo Zvol no pool ZFS especificado.

      2. Ele lê o cabeçalho do VMDK para entender a geometria do disco.

      3. Ele escreve os dados bit a bit no novo Zvol.

      4. O resultado é um disco "Unused" (Não utilizado) anexado à configuração da VM 105.

      O terminal do Proxmox exibindo o progresso da importação do disco com o comando qm importdisk. Figura: O terminal do Proxmox exibindo o progresso da importação do disco com o comando qm importdisk.


      Passo 4: Anexando e configurando o controlador (Crítico)

      Após a importação, o disco existe no ZFS, mas a VM ainda não sabe como usá-lo. Ele aparecerá na interface web como um disco "Unused".

      Ativando o disco

      1. Selecione a VM 105 e vá para a aba Hardware.

      2. Localize o item Unused Disk 0.

      3. Clique duas vezes nele (ou clique em Edit).

      Escolhendo o Barramento (Bus/Device)

      Aqui reside a decisão mais importante para a performance de I/O.

      • Para Linux: Escolha SCSI e certifique-se de que o controlador SCSI (nas opções da VM) esteja definido como VirtIO SCSI. Isso oferece a menor latência e maior throughput.

      • Para Windows (Cuidado): Se você selecionar VirtIO SCSI imediatamente, o Windows não iniciará (Tela Azul INACCESSIBLE_BOOT_DEVICE), pois ele não possui os drivers VirtIO instalados nativamente.

      ⚠️ Perigo: Para VMs Windows migradas, selecione inicialmente SATA ou IDE como barramento. Após o primeiro boot com sucesso, instale os drivers virtio-win.iso, desligue a VM, desanexe o disco e anexe-o novamente como SCSI (VirtIO).

      Configurações de Cache e SSD

      Ao editar o disco, marque a opção SSD Emulation se o seu pool ZFS estiver em SSDs/NVMes. Isso informa ao sistema operacional convidado que ele está em mídia flash, otimizando o agendador de I/O e permitindo o comando TRIM (se habilitado no ZFS).

      Para a opção Cache, em ZFS, o padrão Default (No Cache) ou Write Back (se você tiver proteção de energia/bateria no controlador ou UPS) são comuns. O ZFS já possui seu próprio cache (ARC), então evite configurações que dupliquem cache desnecessariamente na RAM.

      Interface de configuração de Hardware no Proxmox, destacando a seleção do barramento SCSI para o disco recém-importado. Figura: Interface de configuração de Hardware no Proxmox, destacando a seleção do barramento SCSI para o disco recém-importado.


      Passo 5: Ajuste da Ordem de Boot e Validação

      Com o disco anexado, precisamos dizer à BIOS/UEFI da VM para iniciar por ele.

      1. Vá para a aba Options da VM.

      2. Selecione Boot Order.

      3. Habilite o novo disco (ex: scsi0) e mova-o para o topo da lista.

      4. Inicie a VM.

      Validando a Performance e Integridade

      Após o boot, verifique se o sistema de arquivos está íntegro. No Linux, um fsck forçado no próximo boot pode ser uma boa prática de segurança.

      Para verificar se o ZFS está entregando os dados corretamente e se a compressão está ativa, use o terminal do host Proxmox enquanto a VM gera carga de disco:

      # Verifique o I/O do pool em tempo real
      zpool iostat -v 2
      
      # Verifique a taxa de compressão do Zvol específico
      zfs get compressratio local-zfs/vm-105-disk-0
      

      Se o compressratio for maior que 1.00x, você já está economizando espaço em comparação ao disco original no VMware, sem perda de performance perceptível.

      Validação de performance: Teste de benchmark dentro da VM Windows e monitoramento de I/O no host ZFS simultaneamente. Figura: Validação de performance: Teste de benchmark dentro da VM Windows e monitoramento de I/O no host ZFS simultaneamente.


      O futuro dos seus dados

      A migração de VMDK para Zvol não é apenas uma mudança de formato; é um upgrade na confiabilidade dos seus dados. Uma vez no ecossistema ZFS, você deve configurar tarefas de Replication (se tiver um cluster) ou ZFS Snapshots automáticos para garantir que o estado da sua VM esteja protegido contra ransomware ou falhas humanas.

      Lembre-se que discos virtuais em ZFS (Zvols) podem ocupar mais espaço aparente se a opção refreservation estiver ativa (padrão para garantir espaço). Ajuste conforme a necessidade do seu provisionamento.


      Perguntas Frequentes (FAQ)

      O 'qm importdisk' converte o disco automaticamente? Sim. O comando lê o arquivo VMDK de origem e escreve os blocos diretamente em um novo Zvol (volume ZFS) no formato RAW, eliminando a necessidade de conversão manual prévia com qemu-img.
      Por que minha VM Windows dá tela azul (BSOD) após a migração? Isso geralmente ocorre pela falta de drivers VirtIO. O Windows não consegue bootar se o disco for alterado para VirtIO SCSI sem o driver instalado. A solução é bootar como SATA/IDE primeiro, instalar o driver, e depois trocar para SCSI.
      Devo usar o formato QCOW2 ou RAW no ZFS? No ZFS, você deve usar RAW. O ZFS já gerencia snapshots e compressão nativamente. Usar QCOW2 sobre ZFS cria uma camada dupla de sistema de arquivos (cow-on-cow), degradando severamente a performance.
      #migração vmware proxmox #qm importdisk tutorial #zfs zvol performance #converter vmdk para raw #drivers virtio windows #proxmox ve 8 storage
      Roberto Xavier
      Assinatura Técnica

      Roberto Xavier

      Comandante de Incidentes

      "Lidero equipes em momentos críticos de infraestrutura. Priorizo a restauração rápida de serviços e promovo uma cultura de post-mortem sem culpa para construir sistemas mais resilientes."