Compartilhar via


Migrar VMs VMware para o Azure (sem agente) – PowerShell

Neste artigo, você saberá como migrar máquinas virtuais (VMs) VMware descobertas com o método sem agente usando o Azure PowerShell para Migração e modernização.

Observação

A documentação deste cenário de migração do VMware de ponta a ponta está atualmente em versão prévia. Para obter mais informações sobre como usar as Migrações para Azure, consulte a documentação do produto Migrações para Azure.

Você aprenderá como:

  • Recuperar VMs VMware descobertas em um projeto das Migrações para Azure.
  • Iniciar a replicação de VMs.
  • Atualizar propriedades para replicar VMs.
  • Monitorar a replicação.
  • Executar uma migração de teste para verificar se tudo está funcionando conforme o esperado.
  • Executar uma migração de VM completa.

Observação

Os tutoriais mostram o caminho de implantação mais simples para um cenário para que você possa configurar rapidamente uma prova de conceito. Os tutoriais usam opções padrão quando possível e não mostram todas as configurações e todos os caminhos possíveis.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Pré-requisitos

Antes de iniciar este tutorial, você deverá:

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

O módulo do PowerShell das Migrações para Azure está disponível como parte do Azure PowerShell (Az). Execute o comando Get-InstalledModule -Name Az.Migrate para verificar se o módulo do PowerShell das Migrações para Azure foi instalado no computador.

Entre em sua assinatura do Azure

Entre na sua assinatura do Azure com o cmdlet Connect-AzAccount.

Connect-AzAccount

Selecionar sua assinatura do Azure

Use o cmdlet Get-AzSubscription para obter a lista de assinaturas do Azure às quais você tem acesso. Selecione a assinatura do Azure que tem o projeto das Migrações para Azure com o qual você trabalhará usando o cmdlet Set-AzContext.

Set-AzContext -SubscriptionId aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e

Recuperar o projeto das Migrações para Azure

Um projeto das Migrações para Azure é usado para armazenar metadados de descoberta, avaliação e migração coletados do ambiente que você está avaliando ou migrando. Em um projeto, é possível acompanhar os ativos descobertos, orquestrar avaliações e executar migrações.

Como parte dos pré-requisitos, você já criou um projeto das Migrações para Azure. Use o cmdlet Get-AzMigrateProject para recuperar detalhes de um projeto das Migrações para Azure. Você precisa especificar o nome do projeto das Migrações para Azure (Name) e o nome do grupo de recursos desse projeto (ResourceGroupName).

# Get resource group of the Azure Migrate project
$ResourceGroup = Get-AzResourceGroup -Name MyResourceGroup
# Get details of the Azure Migrate project
$MigrateProject = Get-AzMigrateProject -Name MyMigrateProject -ResourceGroupName $ResourceGroup.ResourceGroupName
# View Azure Migrate project details
Write-Output $MigrateProject

Recuperar VMs descobertas em um projeto das Migrações para Azure

As Migrações para Azure usam um dispositivo leve das Migrações para Azure. Como parte dos pré-requisitos, você implantou o dispositivo das Migrações para Azure como uma VM VMware.

Para recuperar uma VM VMware específica em um projeto das Migrações para Azure, especifique o nome (ProjectName) e o grupo de recursos (ResourceGroupName) do projeto das Migrações para Azure e o nome da VM (DisplayName).

# Get a specific VMware VM in an Azure Migrate project
$DiscoveredServer = Get-AzMigrateDiscoveredServer -ProjectName $MigrateProject.Name -ResourceGroupName $ResourceGroup.ResourceGroupName -DisplayName MyTestVM | Format-Table DisplayName, Name, Type

# View discovered server details
Write-Output $DiscoveredServer

Migramos essa VM como parte deste tutorial.

Você também pode recuperar todas as VMs VMware em um projeto das Migrações para Azure usando os parâmetros ProjectName e ResourceGroupName.

# Get all VMware VMs in an Azure Migrate project
$DiscoveredServers = Get-AzMigrateDiscoveredServer -ProjectName $MigrateProject.Name -ResourceGroupName $ResourceGroup.ResourceGroupName

Se tiver vários dispositivos em um projeto das Migrações para Azure, você poderá usar os parâmetros ProjectName, ResourceGroupName, ApplianceName para recuperar todas as VMs descobertas usando um dispositivo específico das Migrações para Azure.

# Get all VMware VMs discovered by an Azure Migrate Appliance in an Azure Migrate project
$DiscoveredServers = Get-AzMigrateDiscoveredServer -ProjectName $MigrateProject.Name -ResourceGroupName $ResourceGroup.ResourceGroupName -ApplianceName MyMigrateAppliance

Inicializar a infraestrutura de replicação

A Migração e modernização usa vários recursos do Azure para migrar VMs. A Migração e modernização provisiona os recursos a seguir no mesmo grupo de recursos que o projeto.

  • Barramento de serviço: a Migração e modernização usa o barramento de serviço para enviar mensagens de orquestração de replicação para o dispositivo.
  • Conta de armazenamento de gateway: a Migração e modernização usa a conta de armazenamento de gateway para armazenar informações de estado de armazenamento sobre as VMs que estão sendo replicadas.
  • Conta de armazenamento de log: o dispositivo das Migrações para Azure carrega os logs de replicação das VMs em uma conta de armazenamento de log. As Migrações para Azure aplicam as informações de replicação aos discos gerenciados de réplica.
  • Cofre de chavesO dispositivo das Migrações para Azure usa o cofre de chaves para gerenciar as cadeias de conexão do barramento de serviço e as chaves de acesso das contas de armazenamento usadas na replicação.

Antes de replicar a primeira VM no projeto das Migrações para Azure, execute o comando a seguir para provisionar a infraestrutura de replicação. Esse comando provisiona e configura os recursos anteriores para que você possa começar a migrar suas VMs VMware.

Observação

Um projeto das Migrações para Azure dá suporte a migrações para apenas uma região do Azure. Após executar o script, você não poderá alterar a região de destino para a qual deseja migrar as VMs VMware. Você precisa executar o comando Initialize-AzMigrateReplicationInfrastructure se configurar um novo dispositivo em seu projeto das Migrações para Azure.

No artigo, inicializamos a infraestrutura de replicação para que possamos migrar nossas VMs para a região Central US.

# Initialize replication infrastructure for the current Migrate project
Initialize-AzMigrateReplicationInfrastructure -ResourceGroupName $ResourceGroup.ResourceGroupName -ProjectName $MigrateProject. Name -Scenario agentlessVMware -TargetRegion "CentralUS" 

Replicar VMs

Após concluir a descoberta e inicializar a infraestrutura de replicação, você pode começar a replicação das VMs VMware para o Azure. Você pode executar até 500 replicações simultaneamente.

Para especificar as propriedades de replicação, use a tabela a seguir.

Parâmetro Tipo Descrição
Assinatura e grupo de recursos de destino Obrigatório Especifique a assinatura e o grupo de recursos para o qual a VM deve ser migrada fornecendo a ID do grupo de recursos usando o parâmetro TargetResourceGroupId.
Rede virtual e sub-rede de destino Obrigatório Especifique a ID da instância da Rede Virtual do Azure e o nome da sub-rede para a qual a VM deve ser migrada usando os parâmetros TargetNetworkId e TargetSubnetName, respectivamente.
ID da Máquina Obrigatório Especifique a ID da máquina descoberta que precisa ser replicada e migrada. Use InputObject para especificar o objeto da VM descoberta para replicação.
Nome da VM de destino Obrigatório Especifique o nome da VM do Azure a ser criada usando o parâmetro TargetVMName.
Tamanho da VM de destino Obrigatório Especifique o tamanho da VM do Azure a ser usada para replicação da VM usando o parâmetro TargetVMSize. Por exemplo, para migrar uma VM para a VM D2_v2 no Azure, especifique o valor de TargetVMSize como Standard_D2_v2.
Licença Obrigatório Para usar o Benefício Híbrido do Azure para computadores do Windows Server cobertos por assinaturas ativas do Software Assurance ou do Windows Server, especifique o valor do parâmetro LicenseType como WindowsServer. Caso contrário, especifique o valor como NoLicenseType.
Disco do SO Obrigatório Especifique o identificador exclusivo do disco que tem o carregador de inicialização e o instalador do sistema operacional. A ID do disco a ser usada é a propriedade do UUID (identificador exclusivo) do disco, recuperada usando o cmdlet Get-AzMigrateDiscoveredServer.
Tipo de disco Obrigatório Especifique o tipo de disco a ser usado.
Redundância da infraestrutura Opcional Especifique a opção de redundância da infraestrutura da maneira mostrada a seguir:

- Zona de Disponibilidade: fixa o computador migrado em uma Zona de Disponibilidade específica na região. Use essa opção para distribuir servidores que formam uma camada de aplicativo de vários nós entre zonas de disponibilidade diferentes. Essa opção estará disponível somente se a região de destino selecionada para a migração der suporte a zonas de disponibilidade. Para usar zonas de disponibilidade, especifique o valor da zona de disponibilidade para o parâmetro TargetAvailabilityZone.
- Conjunto de Disponibilidade: coloca o computador migrado em um conjunto de disponibilidade. O grupo de recursos de destino selecionado precisa ter um ou mais conjuntos de disponibilidade para usar essa opção. Para usar um conjunto de disponibilidade, especifique a ID do conjunto de disponibilidade para o parâmetro TargetAvailabilitySet.
Conta de Armazenamento de Diagnóstico de Inicialização Opcional Para usar uma conta de armazenamento de diagnóstico de inicialização, especifique a ID do parâmetro TargetBootDiagnosticStorageAccount.
- A conta de armazenamento usada para diagnóstico de inicialização deve estar na mesma assinatura para a qual você está migrando as VMs.
- Por padrão, nenhum valor é definido para esse parâmetro.
Marcações Opcional Adicione marcas às VMs, discos e NICs migrados.
Use Tag para adicionar marcas a VMs, discos e NICs ou:
- Use VMTag para adicionar marcas às VMs migradas.
- Use DiskTag para adicionar marcas a discos.
- Use NicTag para adicionar marcas a interfaces de rede.
Por exemplo, adicione as marcas necessárias à variável $tags e passe a variável no parâmetro necessário: $tags = @{Organization=”Contoso”}.

Replicar VMs com todos os discos

Neste tutorial, replicamos todos os discos da VM descoberta e especificaremos um novo nome para a VM no Azure. Especificamos o primeiro disco do servidor descoberto como Disco do SO e migramos todos os discos como HDD Standard. O disco do sistema operacional é o disco que tem o carregador de inicialização e o instalador do sistema operacional. O cmdlet retorna um trabalho que pode ser acompanhado para monitorar o status da operação.

# Retrieve the resource group that you want to migrate to
$TargetResourceGroup = Get-AzResourceGroup -Name MyTargetResourceGroup
# Retrieve the Azure virtual network and subnet that you want to migrate to
$TargetVirtualNetwork = Get-AzVirtualNetwork -Name MyVirtualNetwork
# Start replication for a discovered VM in an Azure Migrate project
$MigrateJob =  New-AzMigrateServerReplication -InputObject $DiscoveredServer -TargetResourceGroupId $TargetResourceGroup.ResourceId -TargetNetworkId $TargetVirtualNetwork.Id -LicenseType NoLicenseType -OSDiskID $DiscoveredServer.Disk[0].Uuid -TargetSubnetName $TargetVirtualNetwork.Subnets[0].Name -DiskType Standard_LRS -TargetVMName MyMigratedTestVM -TargetVMSize Standard_DS2_v2
# Track job status to check for completion
while (($MigrateJob.State -eq 'InProgress') -or ($MigrateJob.State -eq 'NotStarted')){
        #If the job hasn't completed, sleep for 10 seconds before checking the job status again
        sleep 10;
        $MigrateJob = Get-AzMigrateJob -InputObject $MigrateJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded".
Write-Output $MigrateJob.State

Replicar VMs com discos selecionados

Você também pode replicar seletivamente os discos da VM descoberta usando o cmdlet New-AzMigrateDiskMapping e fornecer isso como entrada para o parâmetro DiskToInclude no cmdlet New-AzMigrateServerReplication. Também é possível usar o cmdlet New-AzMigrateDiskMapping para especificar tipos de disco de destino diferentes para cada disco individual a ser replicado.

Especifique valores para os parâmetros a seguir do cmdlet New-AzMigrateDiskMapping:

  • DiskId: especifique o identificador exclusivo do disco a ser migrado. A ID do disco a ser usada é a propriedade do UUID do disco, recuperada usando o cmdlet Get-AzMigrateDiscoveredServer.
  • IsOSDisk: especifique true se o disco a ser migrado for o disco do SO da VM. Caso contrário, especifique false.
  • DiskType: especifique o tipo de disco a ser usado no Azure.

No exemplo a seguir, replicamos somente dois discos da VM descoberta. Especificamos o disco do sistema operacional e usaremos tipos de disco diferentes para cada disco a ser replicado. O cmdlet retorna um trabalho que pode ser acompanhado para monitorar o status da operação.

# View disk details of the discovered server
Write-Output $DiscoveredServer.Disk
# Create a new disk mapping for the disks to be replicated
$DisksToReplicate = @()
$OSDisk = New-AzMigrateDiskMapping -DiskID $DiscoveredServer.Disk[0].Uuid -DiskType StandardSSD_LRS -IsOSDisk true
$DataDisk = New-AzMigrateDiskMapping -DiskID $DiscoveredServer.Disk[1].Uuid -DiskType Premium_LRS -IsOSDisk false

$DisksToReplicate += $OSDisk
$DisksToReplicate += $DataDisk
# Retrieve the resource group that you want to migrate to
$TargetResourceGroup = Get-AzResourceGroup -Name MyTargetResourceGroup
# Retrieve the Azure virtual network and subnet that you want to migrate to
$TargetVirtualNetwork = Get-AzVirtualNetwork -Name MyVirtualNetwork
# Start replication for the VM
$MigrateJob =  New-AzMigrateServerReplication -InputObject $DiscoveredServer -TargetResourceGroupId $TargetResourceGroup.ResourceId -TargetNetworkId $TargetVirtualNetwork.Id -LicenseType NoLicenseType -DiskToInclude $DisksToReplicate -TargetSubnetName $TargetVirtualNetwork.Subnets[0].Name -TargetVMName MyMigratedTestVM -TargetVMSize Standard_DS2_v2
# Track job status to check for completion
while (($MigrateJob.State -eq 'InProgress') -or ($MigrateJob.State -eq 'NotStarted')){
        #If the job hasn't completed, sleep for 10 seconds before checking the job status again
        sleep 10;
        $MigrateJob = Get-AzMigrateJob -InputObject $MigrateJob
}
# Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded".
Write-Output $MigrateJob.State

Monitorar a replicação

A replicação ocorre nos seguintes casos:

  • Quando o trabalho Iniciar Replicação é concluído com êxito, os computadores começam sua replicação inicial para o Azure.
  • Durante a replicação inicial, um instantâneo de VM é criado. Os dados do disco do instantâneo são replicados para discos gerenciados de réplica no Azure.
  • Depois que a replicação inicial é concluída, a replicação delta é iniciada. As alterações incrementais em discos locais são replicadas periodicamente para os discos de réplica no Azure.

Acompanhe o status da replicação usando o cmdlet Get-AzMigrateServerReplication.

# List replicating VMs and filter the result for selecting a replicating VM. This cmdlet will not return all properties of the replicating VM.
$ReplicatingServer = Get-AzMigrateServerReplication -ProjectName $MigrateProject.Name -ResourceGroupName $ResourceGroup.ResourceGroupName -MachineName MyTestVM
# Retrieve all properties of a replicating VM 
$ReplicatingServer = Get-AzMigrateServerReplication -TargetObjectID $ReplicatingServer.Id

Acompanhe as propriedades Estado da Migração e Descrição do Estado da Migração na saída.

  • Para a replicação inicial, os valores das propriedades Estado da Migração e da Descrição do Estado da Migração são InitialSeedingInProgress e Initial replication, respectivamente.
  • Durante a replicação delta, os valores das propriedades Estado da Migração e Descrição do Estado da Migração são Replicating e Ready to migrate, respectivamente.
  • Após a conclusão da migração, os valores das propriedades Estado da Migração e da Descrição do Estado da Migração são Migration succeeded e Migrated, respectivamente.
AllowedOperation            : {DisableMigration, TestMigrate, Migrate}
CurrentJobId                : /Subscriptions/xxx/resourceGroups/xxx/providers/Micr
                              osoft.RecoveryServices/vaults/xxx/replicationJobs/None
CurrentJobName              : None
CurrentJobStartTime         : 1/1/1753 1:01:01 AM
EventCorrelationId          : 9d435c55-4660-41a5-a8ed-dd74213d85fa
Health                      : Normal
HealthError                 : {}
Id                          : /Subscriptions/xxx/resourceGroups/xxx/providers/Micr
                              osoft.RecoveryServices/vaults/xxx/replicationFabrics/xxx/replicationProtectionContainers/xxx/
                              replicationMigrationItems/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_5009e941-3e40-
                              39b2-1e14-f90584522703
LastTestMigrationStatus     :
LastTestMigrationTime       :
Location                    :
MachineName                 : MyTestVM
MigrationState              : InitialSeedingInProgress
MigrationStateDescription   : Initial replication
Name                        : 10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_5009e941-3e40-39b2-1e14-f90584522703
PolicyFriendlyName          : xxx
PolicyId                    : /Subscriptions/xxx/resourceGroups/xxx/providers/Micr
                              osoft.RecoveryServices/vaults/xxx/replicationPolicies/xxx
ProviderSpecificDetail      : Microsoft.Azure.PowerShell.Cmdlets.Migrate.Models.Api20180110.VMwareCbtMigrationDetails
TestMigrateState            : None
TestMigrateStateDescription : None
Type                        : Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems

Para obter detalhes sobre o progresso da replicação, execute o cmdlet a seguir:

Write-Output $replicatingserver.ProviderSpecificDetail

Acompanhe o progresso da replicação inicial usando as propriedades de Percentual de Progresso da Propagação Inicial na saída.

    "DataMoverRunAsAccountId": "/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.OffAzure/VMwareSites/xxx/runasaccounts/xxx",
    "FirmwareType":  "BIOS",
    "InitialSeedingProgressPercentage": 20,
    "InstanceType":  "VMwareCbt",
    "LastRecoveryPointReceived":  "\/Date(1601733591427)\/",
    "LicenseType":  "NoLicenseType",
    "MigrationProgressPercentage":  null,
    "MigrationRecoveryPointId":  null,
    "OSType":  "Windows",
    "PerformAutoResync":  "true",

A replicação ocorre nos seguintes casos:

  • Quando o trabalho Iniciar Replicação é concluído com êxito, os computadores começam sua replicação inicial para o Azure.
  • Durante a replicação inicial, um instantâneo de VM é criado. Os dados do disco do instantâneo são replicados para discos gerenciados de réplica no Azure.
  • Depois que a replicação inicial é concluída, a replicação delta é iniciada. As alterações incrementais em discos locais são replicadas periodicamente para os discos de réplica no Azure.

Recuperar o status de um trabalho

Você pode monitorar o status de um trabalho usando o cmdlet Get-AzMigrateJob.

# Retrieve the updated status for a job
$job = Get-AzMigrateJob -InputObject $job

Atualizar propriedades de uma VM de replicação

A Migração e modernização permite que você altere as propriedades de destino, como nome, tamanho, grupo de recursos, configuração de NIC e assim por diante, de uma VM de replicação.

As propriedades a seguir podem ser atualizadas para uma VM.

Parâmetro Tipo Descrição
Nome da VM Opcional Especifique o nome da VM do Azure a ser criada usando o parâmetro TargetVMName.
Tamanho da VM Opcional Especifique o tamanho da VM do Azure a ser usada para replicação da VM usando o parâmetro TargetVMSize. Por exemplo, para migrar uma VM para a VM D2_v2 no Azure, especifique o valor de TargetVMSize como Standard_D2_v2.
Rede virtual Opcional Especifique a ID da rede virtual do Azure para a qual a VM deve ser migrada usando o parâmetro TargetNetworkId.
Grupo de recursos Opcional A configuração de IC pode ser especificada usando o cmdlet New-AzMigrateNicMapping. Depois, o objeto recebe uma entrada para o parâmetro NicToUpdate no cmdlet Set-AzMigrateServerReplication.

- Alterar a alocação de IP – para especificar um IP estático para uma NIC, forneça o endereço IPv4 a ser usado como IP estático para a VM usando o parâmetro TargetNicIP. Para atribuir dinamicamente um IP para uma NIC, informe auto como o valor do parâmetro TargetNicIP.
- Use os valores Primary, Secondary ou DoNotCreate para o parâmetro TargetNicSelectionType a fim de 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.
- Para tornar uma NIC primária, você também precisa especificar as outras NICs que devem se tornar secundárias ou que não devem ser criadas na VM migrada.
- Para alterar a sub-rede da NIC, especifique o nome da sub-rede usando o parâmetro TargetNicSubnet.
Interface de rede Opcional Especifique o nome da VM do Azure a ser criada usando o parâmetro TargetVMName.
Zona de disponibilidade Opcional Para usar zonas de disponibilidade, especifique o valor da zona de disponibilidade para o parâmetro TargetAvailabilityZone.
Conjunto de disponibilidade Opcional Para usar o conjunto de disponibilidade, especifique a ID do conjunto de disponibilidade para o parâmetro TargetAvailabilitySet.
Marcações Opcional Para atualizar as marcas, use os seguintes parâmetros: UpdateTag ou UpdateVMTag, UpdateDiskTag, UpdateNicTag, e o tipo de operação de marca de atualização UpdateTagOperation ou UpdateVMTagOperation, UpdateDiskTagOperation, UpdateNicTagOperation. A operação de atualização de marcas usa os seguintes valores: mesclar, excluir e substituir.
Use UpdateTag para atualizar todas as marcas em VMs, discos e NICs.
Use UpdateVMTag para atualizar marcas de VM.
Use UpdateDiskTag para atualizar marcas de disco.
Use UpdateNicTag para atualizar marcas de NIC.
Use UpdateTagOperation para atualizar a operação de todas as marcas em VMs, discos e NICs.
Use UpdateVMTagOperation para atualizar marcas de VM.
Use UpdateDiskTagOperation para atualizar marcas de disco.
Use UpdateNicTagOperation para atualizar marcas de NIC.

A opção substituir substitui todo o conjunto de marcas existentes por um novo conjunto.
A opção mesclar permite adicionar marcas com novos nomes e atualizar os valores de marcas com nomes existentes.
A opção excluir permite excluir marcas seletivamente com base em nomes específicos ou em pares nome/valor.
Discos Opcional No caso do disco do sistema operacional:
- Atualize o nome do disco do sistema operacional usando o parâmetro TargetDiskName.

Para atualizar vários discos:
- Use Set-AzMigrateDiskMapping para definir os nomes de disco como uma variável $DiskMapping. Em seguida, use o parâmetro DiskToUpdate e passe a variável.

A ID do disco a ser usada em Set-AzMigrateDiskMapping é a propriedade do UUID do disco, recuperada usando o cmdlet Get-AzMigrateDiscoveredServer.
Nome(s) das NIC(s) Opcional Use New-AzMigrateNicMapping para definir os nomes NIC como uma variável $NICMapping. Em seguida, use o parâmetro NICToUpdate e passe a variável.

O cmdlet Get-AzMigrateServerReplication retorna um trabalho que pode ser acompanhado para monitorar o status da operação.

# List replicating VMs and filter the result for selecting a replicating VM. This cmdlet will not return all properties of the replicating VM.
$ReplicatingServer = Get-AzMigrateServerReplication -ProjectName $MigrateProject.Name -ResourceGroupName $ResourceGroup.ResourceGroupName -MachineName MyTestVM
# Retrieve all properties of a replicating VM 
$ReplicatingServer = Get-AzMigrateServerReplication -TargetObjectID $ReplicatingServer.Id

# View NIC details of the replicating server
Write-Output $ReplicatingServer.ProviderSpecificDetail.VMNic

No exemplo a seguir, atualizamos a configuração da NIC tornando a primeira NIC primária e atribuindo um IP estático a ela. Descartamos a segunda NIC para migração, atualizaremos o nome e o tamanho da VM de destino e personalizaremos os nomes das NICs.

# Specify the NIC properties to be updated for a replicating VM.
$NicMapping = @()
$NicMapping1 = New-AzMigrateNicMapping -NicId $ReplicatingServer.ProviderSpecificDetail.VMNic[0].NicId -TargetNicIP ###.###.###.### -TargetNicSelectionType Primary TargetNicName "ContosoNic_1"
$NicMapping2 = New-AzMigrateNicMapping -NicId $ReplicatingServer.ProviderSpecificDetail.VMNic[1].NicId -TargetNicSelectionType DoNotCreate - TargetNicName "ContosoNic_2"

$NicMapping += $NicMapping1
$NicMapping += $NicMapping2
# Update the name, size and NIC configuration of a replicating server
$UpdateJob = Set-AzMigrateServerReplication -InputObject $ReplicatingServer -TargetVMSize Standard_DS13_v2 -TargetVMName MyMigratedVM -NicToUpdate $NicMapping

No exemplo a seguir, personalizaremos o nome do disco.

# Customize the Disk names for a replicating VM
$OSDisk = Set-AzMigrateDiskMapping -DiskID "6000C294-1217-dec3-bc18-81f117220424" -DiskName "ContosoDisk_1" 
$DataDisk1= Set-AzMigrateDiskMapping -DiskID "6000C292-79b9-bbdc-fb8a-f1fa8dbeff84" -DiskName "ContosoDisk_2" 
$DiskMapping = $OSDisk, $DataDisk1 
# Update the disk names for a replicating server
$UpdateJob = Set-AzMigrateServerReplication InputObject $ReplicatingServer DiskToUpdate $DiskMapping 

No exemplo a seguir, adicionaremos marcas às VMs em replicação.

# Update all tags across virtual machines, disks, and NICs.
Set-azmigrateserverreplication UpdateTag $UpdateTag UpdateTagOperation Merge/Replace/Delete

# Update virtual machines tags
Set-azmigrateserverreplication UpdateVMTag $UpdateVMTag UpdateVMTagOperation Merge/Replace/Delete 

Use o exemplo a seguir para acompanhar o status do trabalho.

# Track job status to check for completion
while (($UpdateJob.State -eq 'InProgress') -or ($UpdateJob.State -eq 'NotStarted')){
        #If the job hasn't completed, sleep for 10 seconds before checking the job status again
        sleep 10;
        $UpdateJob = Get-AzMigrateJob -InputObject $UpdateJob
}
# Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded".
Write-Output $UpdateJob.State

Execute um teste de migração

Quando a replicação delta é iniciada, é possível executar uma migração de teste para as VMs antes de executar uma migração completa para o Azure. É altamente recomendável fazer a migração de teste pelo menos uma vez para cada computador antes de migrá-lo. O cmdlet retorna um trabalho que pode ser acompanhado para monitorar o status da operação.

  • A execução da migração de teste verifica se a migração funciona conforme o esperado. A migração de teste não afeta o computador local, que permanece operacional e continua replicando.
  • A migração de teste simula a migração criando uma VM do Azure usando dados replicados. O teste geralmente migra para uma rede virtual de não produção em sua assinatura do Azure.
  • É possível usar a VM do Azure de teste replicada para validar a migração, executar testes de aplicativo e resolver problemas antes da migração completa.

Selecione a rede virtual do Azure a ser usada para testes especificando a ID da rede virtual usando o parâmetro TestNetworkID.

# Retrieve the Azure virtual network created for testing
$TestVirtualNetwork = Get-AzVirtualNetwork -Name MyTestVirtualNetwork
# Start test migration for a replicating server
$TestMigrationJob = Start-AzMigrateTestMigration -InputObject $ReplicatingServer -TestNetworkID $TestVirtualNetwork.Id
# Track job status to check for completion
while (($TestMigrationJob.State -eq 'InProgress') -or ($TestMigrationJob.State -eq 'NotStarted')){
        #If the job hasn't completed, sleep for 10 seconds before checking the job status again
        sleep 10;
        $TestMigrationJob = Get-AzMigrateJob -InputObject $TestMigrationJob
}
# Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded".
Write-Output $TestMigrationJob.State

Após a conclusão do teste, limpe a migração de teste usando o cmdlet Start-AzMigrateTestMigrationCleanup. O cmdlet retorna um trabalho que pode ser acompanhado para monitorar o status da operação.

# Clean-up test migration for a replicating server
$CleanupTestMigrationJob = Start-AzMigrateTestMigrationCleanup -InputObject $ReplicatingServer
# Track job status to check for completion
while (($CleanupTestMigrationJob.State -eq "InProgress") -or ($CleanupTestMigrationJob.State -eq "NotStarted")){
        #If the job hasn't completed, sleep for 10 seconds before checking the job status again
        sleep 10;
        $CleanupTestMigrationJob = Get-AzMigrateJob -InputObject $CleanupTestMigrationJob
}
# Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded".
Write-Output $CleanupTestMigrationJob.State

Migrar VMs

Depois de verificar se a migração de teste funciona conforme o esperado, você pode migrar o servidor de replicação usando o cmdlet a seguir. O cmdlet retorna um trabalho que pode ser acompanhado para monitorar o status da operação.

Se não quiser desligar o servidor de origem, não use o parâmetro TurnOffSourceServer.

# Start migration for a replicating server and turn off source server as part of migration
$MigrateJob = Start-AzMigrateServerMigration -InputObject $ReplicatingServer -TurnOffSourceServer
# Track job status to check for completion
while (($MigrateJob.State -eq 'InProgress') -or ($MigrateJob.State -eq 'NotStarted')){
        #If the job hasn't completed, sleep for 10 seconds before checking the job status again
        sleep 10;
        $MigrateJob = Get-AzMigrateJob -InputObject $MigrateJob
}
#Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded".
Write-Output $MigrateJob.State

Concluir a migração

  1. Após a conclusão da migração, interrompa a replicação para o computador local e limpe as informações do estado de replicação da VM usando o cmdlet a seguir. O cmdlet retorna um trabalho que pode ser acompanhado para monitorar o status da operação.

    # Stop replication for a migrated server
    $StopReplicationJob = Remove-AzMigrateServerReplication -InputObject $ReplicatingServer
    
    # Track job status to check for completion
    while (($StopReplicationJob.State -eq 'InProgress') -or ($StopReplicationJob.State -eq 'NotStarted')){
            #If the job hasn't completed, sleep for 10 seconds before checking the job status again
            sleep 10;
            $StopReplicationJob = Get-AzMigrateJob -InputObject $StopReplicationJob
    }
    # Check if the Job completed successfully. The updated job state of a successfully completed job should be "Succeeded".
    Write-Output $StopReplicationJob.State
    
  2. Execute todos os ajustes no aplicativo após a migração, como atualizar as cadeias de conexão de banco de dados e as configurações do servidor Web.

  3. Execute o aplicativo final e o teste de aceitação da migração no aplicativo migrado que está sendo executado no Azure.

  4. Transfira o tráfego para a instância migrada da VM do Azure.

  5. Remova as VMs locais do inventário local de VMs.

  6. Remova as VMs locais dos backups locais.

  7. Atualize todas as documentações internas para mostrar o novo local e o endereço IP das VMs do Azure.

Melhores práticas pós-migração