Migração de máquinas virtuais com vários discos do VMware para o IBM Cloud com cópia direta de volume

Migre máquinas virtuais (VMs) do tipo “ VMware ” com vários discos para servidores virtuais “ IBM Cloud VPC ” usando a cópia direta de volume com o qemu-img ou o virt-v2v para obter controle total no nível do disco.

Componentes de arquitetura

A tabela a seguir lista os componentes da arquitetura de uma migração direta de cópia de volume.

Componentes de arquitetura para o método de migração de cópia direta de volume
Componentes de arquitetura Descrição
Instância do servidor virtual do trabalhador

Uma instância temporária de servidor virtual que serve como seu espaço de trabalho de migração. Esta instância de servidor virtual requer os seguintes pré-requisitos:

  • Unidade central de processamento (CPU) e memória adequadas para executar as ferramentas de conversão

  • Espaço de armazenamento suficiente para acomodar os arquivos de disco de máquina virtual (VMDK) exportados (ou um disco efêmero de grande porte)

  • Conectividade de rede com seu ambiente VMware (caso utilize a transferência em tempo real)

  • A ferramenta qemu-img e, opcionalmente, o libguestfs ( virt-v2v ) para transformações

Instância de servidor virtual efêmera Uma instância de servidor virtual de curta duração criada exclusivamente para gerar volumes de inicialização e de dados com a configuração correta. Você exclui essa instância de servidor virtual imediatamente, mas mantém seus volumes.
Volumes de destino Os volumes reais que se tornam os discos migrados do VM.

Visão geral do processo de cópia de migração direta de volume

As etapas a seguir apresentam o processo de migração usando a cópia direta de volume.

  1. Provisionar uma instância de servidor virtual para o trabalhador

    1. Ubuntu ou instância RHEL com espaço de trabalho adequado
    2. Anexe um volume secundário grande se for necessário espaço de trabalho para VMDKs
    3. Instale as ferramentas necessárias
      • qemu-img
      • libguestfs-tools (para virt-v2v )
  2. Criar instância de servidor virtual efêmera

    1. Configure-o para corresponder ao seu destino VM (sistema operacional, tamanho do disco de inicialização, contagem/tamanho do disco secundário)
    2. Crítico: Desativar a exclusão automática em todos os volumes
    3. Crítico: usar o perfil de armazenamento general-purpose para o volume de inicialização
    4. A configuração da rede pode ser descartável
    5. Observe os tamanhos dos volumes e o pedido
  3. Excluir instância de servidor virtual efêmera, reter volumes

    1. Excluir a instância do servidor virtual por meio da interface do usuário ou da CLI
    2. Confirmar que os volumes ainda existem e estão disponíveis para serem anexados
  4. Anexar volumes à instância do servidor virtual do trabalhador

    1. Anexe-os na mesma ordem em que foram criados
    2. Anote os nomes dos dispositivos (por exemplo, /dev/vdb, /dev/vdc, e assim por diante)
    3. Verifique os tamanhos: blockdev --getsize64 /dev/vdb
  5. Transferir e converter VM Disks

    1. Se exportado: Copie o VMDK para a instância do servidor virtual do trabalhador
    2. Converta e escreva em uma única etapa:
    qemu-img convert -f vmdk -O raw source-vm-boot.vmdk /dev/vdb
    qemu-img convert -f vmdk -O raw source-vm-data.vmdk /dev/vdc
    
    1. Opcionalmente, use virt-v2v para injeção de driver do Windows (consulte a seção Windows a seguir)
  6. Verificação e descarga

    1. Verificação pontual das tabelas de partição: fdisk -l /dev/vdb
    2. Limpar os buffers: blockdev --flushbufs /dev/vdb
  7. Desanexar volumes do trabalhador

    1. Desanexar todos os volumes de destino
    2. Agora eles estão prontos para serem anexados à instância final do servidor virtual
  8. Criar uma instância final de servidor virtual a partir de um volume de inicialização existente

    1. Em vez de selecionar uma imagem, selecione "volume de inicialização existente"
    2. Escolha o volume de inicialização que você preencheu
    3. Configurar rede, grupos de segurança, chave SSH (necessário, embora não seja usado se for um VM existente)
    4. Para volumes secundários: Usar CLI/API ou anexar após a criação e reiniciar
  9. Configuração pós-migração

    1. Inicialize a instância do servidor virtual, acesse pelo console VNC se a configuração da rede precisar de ajustes
    2. Verifique se todos os discos estão presentes e montados
    3. Expandir a partição do volume de inicialização se você a redimensionou para cima

Vantagens do design de cópia de volume direto

A tabela a seguir lista as vantagens de design da migração direta de cópia de volume.

Vantagens de design para o método de migração direta de cópia de volume
Vantagem do design Descrição
Suporte a vários discos O suporte a vários discos lida com máquinas virtuais com qualquer número de discos, até o limite de 12 discos da VPC.
Sem proliferação de imagens Você não está criando uma imagem personalizada para cada máquina virtual. Sua lista de imagens personalizadas permanece limpa.
Transformação flexível Permite fácil integração com o site virt-v2v para injeção de drivers, ajustes de sistema operacional e assim por diante.
Opção de eficiência de armazenamento Se você importar um modelo básico como uma imagem personalizada e usá-lo como fonte de volume de inicialização para sua instância de servidor virtual efêmera (etapa 2), o volume de inicialização final herdará a eficiência do espaço de clone vinculado.

Restrições e limitações do design de cópia direta de volume

A tabela a seguir lista as restrições e limitações de uma migração direta de cópia de volume.

Limitações e restrições do método de migração direta de cópia de volume
Limitação ou restrição Descrição
Complexidade da orquestração Há mais etapas e partes móveis. Você precisa de runbooks sólidos e, de preferência, de automação (Terraform, Ansible, scripts).
Limitações de conexão de volumes

A interface de usuário (UI) do IBM Cloud não oferece suporte à conexão de volumes secundários durante a criação de instâncias de servidores virtuais. Você deve realizar uma das seguintes ações:

  • Usar a interface de linha de comando (CLI): ibmcloud is instance-create ... --volume-attach ...

  • Usar a API/Terraform para automação total

  • Criar a instância do servidor virtual, pará-la, anexar volumes e, em seguida, iniciá-la

Custos indiretos de exportação Se você estiver exportando VMDKs de VMware, ainda incorrerá nessa sobrecarga (embora menos do que a exportação de OVA).

Ignorar a exportação usando a transferência de rede

Você pode combinar o Método 2 com técnicas de transferência de rede (detalhadas no Método 3) para evitar totalmente a exportação de VMDKs. Inicialize sua fonte VM a partir de um ISO, estabeleça a conectividade de rede com a instância do servidor virtual de trabalho e transmita o conteúdo do disco diretamente:

  1. Na instância do servidor virtual de trabalho (destino), emita o seguinte comando:

    nc -l 192.168.100.5 8080 | gunzip | dd of=/dev/vdb bs=16M status=progress
    
  2. Na máquina virtual de origem (inicializada a partir da ISO), emita o seguinte comando:

    dd if=/dev/sda bs=16M | gzip | nc -N -v 192.168.100.5 8080
    

Esse processo elimina o tempo de exportação e os requisitos de armazenamento de exportação.

Usar esse processo para VMs com vários discos, para cenários em que você deseja um controle preciso ou em que é importante evitar a proliferação de imagens personalizadas. Você também pode aumentar a eficiência com a transferência de rede.