Dimensionar a migração de VMs do VMware

Este artigo ajuda você a entender como usar scripts para migrar um grande número de VMs (máquinas virtuais) do VMware usando o método sem agente. Para dimensionar as migrações, use o módulo Migrações para Azure do PowerShell.

Os scripts de automação de migração do VMware das Migrações para Azure estão disponíveis para download no repositório de Exemplos do Azure PowerShell no GitHub. Os scripts podem ser usados para migrar VMs do VMware para o Azure usando o método de migração sem agente. Os comandos das Migrações para Azure do PowerShell usados nesses scripts estão documentados aqui.

Limitações atuais

  • Esses scripts dão suporte à migração de VMs do VMware com todos os discos. Você pode atualizar os scripts se quiser replicar seletivamente os discos anexados a uma VM do VMware.
  • Os scripts dão suporte ao uso de recomendações de avaliação. Se as recomendações de avaliação não forem usadas, todos os discos anexados à VM do VMware serão migrados para o mesmo tipo de disco gerenciado (Standard ou Premium). Você pode atualizar os scripts se quiser usar vários tipos de discos gerenciados com a mesma VM.

Pré-requisitos

Instalar o módulo do PowerShell das Migrações para Azure

O módulo do PowerShell das Migrações para Azure está disponível em versão prévia. Você precisará instalar o módulo do PowerShell usando o comando a seguir.

Install-Module -Name Az.Migrate 

Arquivo de entrada CSV

Depois que todos os pré-requisitos forem concluídos, você precisa criar um arquivo CSV que contenha os dados para cada VM de origem que você deseja migrar. Todos os scripts são desenvolvidos para trabalhar no mesmo arquivo CSV. Um modelo de CSV de exemplo está disponível na pasta de scripts para sua referência. O arquivo CSV é configurável para que você possa usar as recomendações de avaliação e até mesmo especificar se determinadas operações não devem ser disparadas para uma VM específica.

Observação

O mesmo arquivo CSV pode ser usado para migrar VMs em vários projetos das Migrações para Azure.

Esquema de arquivo CSV

Cabeçalho de Coluna Descrição
AZMIGRATEPROJECT_SUBSCRIPTION_ID Forneça a ID da assinatura do projeto das Migrações para Azure.
AZMIGRATEPROJECT_RESOURCE_GROUP_NAME Forneça o nome do grupo de recursos das Migrações para Azure.
AZMIGRATEPROJECT_NAME Forneça o nome do projeto das Migrações para Azure no qual você deseja migrar servidores.
SOURCE_MACHINE_NAME Forneça um nome amigável (nome de exibição) para a VM descoberta no projeto das Migrações para Azure.
AZMIGRATEASSESSMENT_NAME Forneça o nome da avaliação que precisa ser aproveitada para a migração.
AZMIGRATEGROUP_NAME Forneça o nome do grupo que foi usado para a avaliação das Migrações para Azure.
TARGET_RESOURCE_GROUP_NAME Forneça o nome do grupo de recursos do Azure para o qual a VM precisa ser migrada.
TARGET_VNET_NAME Forneça o nome da rede virtual do Azure que a VM migrada deve usar.
TARGET_SUBNET_NAME Forneça o nome da sub-rede na rede virtual de destino que a VM migrada deve usar. Se for deixado em branco, a sub-rede "padrão" será usada.
TARGET_MACHINE_NAME Forneça o nome que a VM migrada deve usar no Azure. Se for deixado em branco, o nome da máquina de origem será usado.
TARGET_MACHINE_SIZE Forneça a SKU (Unidade de Manutenção de Estoque) que a VM deve usar no Azure. Para migrar uma VM para a VM D2_v2 no Azure, especifique o valor neste campo como "Standard_D2_v2". Se você usar uma avaliação, esse valor será derivado com base na recomendação de avaliação.
LICENSE_TYPE Especifique se deseja usar o Benefício Híbrido do Azure para VMs do Windows Server. Use o valor "WindowsServer" para aproveitar o Benefício Híbrido do Azure. Caso contrário, deixe em branco ou use "NoLicenseType".
OS_DISK_ID Forneça a ID do disco do SO para a VM que será migrada. A ID do disco a ser usada é a propriedade do UUID (identificador exclusivo) do disco, recuperada usando o cmdlet Get-AzMigrateServer. O script usará o primeiro disco da VM como o disco do SO caso nenhum valor seja fornecido.
TARGET_DISKTYPE Forneça o tipo de disco a ser usado para todos os discos da VM no Azure. Use 'Premium_LRS' para discos gerenciados Premium, 'StandardSSD_LRS' para discos SSD padrão e 'Standard_LRS' para usar discos HDD padrão. Se você optar por usar uma avaliação, o script priorizará o uso de tipos de disco recomendados para cada disco da VM. Se você não usar a avaliação ou especificar qualquer valor, o script usará discos HDD padrão por padrão.
AVAILABILITYZONE_NUMBER Especifique o número da zona de disponibilidade a ser usado para a VM migrada. Você pode deixar isso em branco caso não deseje usar zonas de disponibilidade.
AVAILABILITYSET_NAME Especifique o nome do conjunto de disponibilidade a ser usado para a VM migrada. Você pode deixar isso em branco caso não deseje usar o conjunto de disponibilidade.
TURNOFF_SOURCESERVER Especifique 'Y' se quiser desativar a VM de origem no momento da migração. Caso contrário use 'N'. Se for deixado em branco, o script assumirá o valor como 'N'.
TESTMIGRATE_VNET_NAME Especifique o nome da rede virtual a ser usada para a migração de teste.
UPDATED_TARGET_RESOURCE_GROUP_NAME Se você deseja atualizar o grupo de recursos a ser usado pela VM migrada no Azure, especifique o nome do grupo de recursos do Azure, caso contrário, deixe em branco.
UPDATED_TARGET_VNET_NAME Se você deseja atualizar a Rede Virtual a ser usada pela VM migrada no Azure, especifique o nome da Rede Virtual do Azure, caso contrário, deixe em branco.
UPDATED_TARGET_MACHINE_NAME Se você deseja atualizar o nome a ser usado pela VM migrada no Azure, especifique o novo nome a ser usado, caso contrário, deixe em branco.
UPDATED_TARGET_MACHINE_SIZE Se você deseja atualizar o SKU a ser usado pela VM migrada no Azure, especifique o novo SKU a ser usado, caso contrário, deixe em branco.
UPDATED_AVAILABILITYZONE_NUMBER Se você deseja atualizar a zona de disponibilidade a ser usada pela VM migrada no Azure, especifique a nova zona de disponibilidade a ser usada, caso contrário, deixe em branco.
UPDATED_AVAILABILITYSET_NAME Se você deseja atualizar o conjunto de disponibilidade a ser usado pela VM migrada no Azure, especifique o novo conjunto de disponibilidade a ser usado, caso contrário, deixe em branco.
UPDATE_NIC1_ID Especificar a ID do NIC que será atualizado. Se deixado em branco, o script considera o valor como a primeira NIC da VM descoberta. Se você não quiser atualizar a NIC da VM, deixe todos os campos que contenham o nome da NIC em branco.
UPDATED_TARGET_NIC1_SELECTIONTYPE Especifique o valor a ser usado para esta NIC. Use "Primary", "Secondary" ou "DoNotCreate" para especificar se a NIC deve ser primária, secundária ou se não deve ser criada na VM migrada. Somente uma NIC pode ser especificada como NIC primária para a VM. Deixe em branco se não quiser atualizar.
UPDATED_TARGET_NIC1_SUBNET_NAME Especifique o nome da sub-rede a ser usada para a NIC na VM migrada. Deixe em branco se não quiser atualizar.
UPDATED_TARGET_NIC1_IP Especifique o endereço IPv4 a ser usado pela NIC na VM migrada se você quiser usar o IP estático. Use "auto" se desejar atribuir automaticamente o IP. Deixe em branco se não quiser atualizar.
UPDATE_NIC2_ID Especificar a ID do NIC que será atualizado. Se deixado em branco, o script considera o valor como a segunda NIC da VM descoberta. Se você não quiser atualizar a NIC da VM, deixe todos os campos que contenham o nome da NIC em branco.
UPDATED_TARGET_NIC2_SELECTIONTYPE Especifique o valor a ser usado para esta NIC. Use "Primary", "Secondary" ou "DoNotCreate" para especificar se a NIC deve ser primária, secundária ou se não deve ser criada na VM migrada. Somente uma NIC pode ser especificada como NIC primária para a VM. Deixe em branco se não quiser atualizar.
UPDATED_TARGET_NIC2_SUBNET_NAME Especifique o nome da sub-rede a ser usada para a NIC na VM migrada. Deixe em branco se não quiser atualizar.
UPDATED_TARGET_NIC2_IP Especifique o endereço IPv4 a ser usado pela NIC na VM migrada se você quiser usar o IP estático. Use "auto" se desejar atribuir automaticamente o IP. Deixe em branco se não quiser atualizar.
OK_TO_UPDATE Use 'Y' para indicar se as propriedades da VM precisam ser atualizadas quando você executar o script AzMigrate_UpdateMachineProperties. Use 'N' ou então deixe em branco.
OK_TO_MIGRATE Use 'Y' para indicar se a VM deve ser migrada quando você executar o script de AzMigrate_StartMigration. Use 'N' ou deixe em branco se não quiser migrar a VM.
OK_TO_USE_ASSESSMENT Use 'Y' para indicar se a VM deve iniciar a replicação usando recomendações de avaliação quando você executar o script AzMigrate_StartReplication. Isso substituirá os valores TARGET_MACHINE_SIZE e TARGET_DISKTYPE no arquivo CSV. Use 'N' ou deixe em branco se não quiser usar as recomendações de avaliação.
OK_TO_TESTMIGRATE Use 'Y' para indicar se a VM deve ser migrada para teste quando você executar o script AzMigrate_StartTestMigration. Use 'N' ou deixe em branco se não quiser migrar a VM.
OK_TO_RETRIEVE_REPLICATIONSTATUS Use 'Y' para indicar se o estado de replicação da VM deve ser atualizado quando você executar o script AzMigrate_ReplicationStatus. Use 'N' ou deixe em branco se não quiser atualizar o status de replicação.
OK_TO_CLEANUP Use 'Y' para indicar se a replicação da VM deve ser limpa quando você executar o script AzMigrate_StopReplication. Use 'N' ou então deixe em branco.
OK_TO_TESTMIGRATE_CLEANUP Use 'Y' para indicar se a migração para teste da VM deve ser limpa quando você executar o script AzMigrate_CleanUpTestMigration. Use 'N' ou então deixe em branco.

Execução do script

Quando o CSV estiver pronto, você poderá executar as etapas a seguir para migrar suas VMs do VMware local.

Etapa nº Nome do script Descrição
1 AzMigrate_StartReplication.ps1 Habilitar a replicação para todas as VMs listadas no csv, o script cria uma saída CSV e um arquivo de log para solucionar problemas.
2 AzMigrate_ReplicationStatus.ps1 Verifique o status da replicação, o script cria uma saída CSV com o status de cada VM e um arquivo de log para solução de problemas.
3 AzMigrate_UpdateMachineProperties.ps1 Depois que as VMs concluírem a replicação inicial, use este script para atualizar as propriedades de destino da VM (Propriedades de computação e rede). O script cria uma saída CSV com os detalhes do trabalho para cada VM.
4 AzMigrate_StartTestMigration.ps1 Inicie o failover de teste para todas as VMs listadas no CSV que estão configuradas para migração de teste. O script cria uma saída CSV com os detalhes do trabalho para cada VM.
5 AzMigrate_CleanUpTestMigration.ps1 Depois de validar manualmente as VMs que foram testadas com failover, use esse script para limpar as VMs de teste de cluster para todas as VMs listadas no CSV que estão configuradas para limpeza de migração para teste. O script cria uma saída CSV com os detalhes do trabalho para cada VM.
6 AzMigrate_StartMigration.ps1 Inicie a migração para todas as VMs listadas no CSV que estão configuradas para migração. O script cria uma saída CSV com os detalhes do trabalho para cada VM.
7 AzMigrate_StopReplication.ps1 Interrompe a replicação para a VM depois que ela é migrada com êxito ou se você deseja cancelar a replicação devido a outros motivos. O script cria uma saída CSV com os detalhes do trabalho para cada VM.

Os scripts a seguir são invocados por outros scripts para todas as operações das Migrações para Azure, como habilitar a replicação, iniciar a migração para teste, atualizar as propriedades da VM e assim por diante. Verifique se todos os scripts estão presentes na mesma pasta/caminho.

Etapa nº Nome do script Descrição
1 AzMigrate_Shared.ps1 Script comum que contém funções para recuperar propriedades de avaliação (por meio da API), VMs descobertas e replicar VMs.
2 AzMigrate_CSV_Processor.ps1 Script comum que contém funções usadas para operações de arquivo CSV, incluindo carregamento, leitura e impressão de logs.
3 AzMigrate_Logger.ps1 Script comum invocado para gerar o arquivo de log para operações de automação das Migrações para Azure. O arquivo de log terá o formato log.Scriptname.Datetime.txt.

Além do citado acima, a pasta também contém o AzMigrate_Template.ps1 que contém o esboço estrutural para a criação de scripts personalizados para operações diferentes das Migrações para Azure.

Sintaxe da execução de script

Depois de baixar os scripts, os scripts podem ser executados da seguinte maneira.

Se você quiser executar o script para iniciar a replicação para VMs usando o arquivo Input.csv, use a sintaxe a seguir.

".\AzMigrate_StartReplication.ps1" .\Input.csv 

Para saber mais sobre como usar o Azure PowerShell para migrar VMs do VMware com as Migrações para Azure, siga o tutorial.