Partilhar via


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

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

Sabe como:

  • Recupere VMs VMware descobertas em um projeto do Azure Migrate.
  • Comece a replicar VMs.
  • Atualize as propriedades para replicar VMs.
  • Monitore a replicação.
  • Execute uma migração de teste para garantir que tudo esteja funcionando conforme o esperado.
  • Execute uma migração completa de VM.

Nota

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 sempre que possível e não mostram todas as configurações e caminhos possíveis.

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

Pré-requisitos

Antes de começar este tutorial, tem de:

Instalar o módulo Azure Migrate PowerShell

O módulo Azure Migrate PowerShell está disponível como parte do Azure PowerShell (Az). Execute o Get-InstalledModule -Name Az.Migrate comando para verificar se o módulo Azure Migrate PowerShell está instalado em sua máquina.

Inicie sessão na sua subscrição do Azure

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

Connect-AzAccount

Selecione a sua subscrição 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 seu projeto Azure Migrate para trabalhar usando o cmdlet Set-AzContext .

Set-AzContext -SubscriptionId 00000000-0000-0000-0000-000000000000

Recuperar o projeto Azure Migrate

Um projeto do Azure Migrate é usado para armazenar metadados de descoberta, avaliação e migração coletados do ambiente que você está avaliando ou migrando. Em um projeto, você pode controlar ativos descobertos, orquestrar avaliações e executar migrações.

Como parte dos pré-requisitos, você já criou um projeto do Azure Migrate. Use o cmdlet Get-AzMigrateProject para recuperar detalhes de um projeto do Azure Migrate. Você precisa especificar o nome do projeto Azure Migrate (Name) e o nome do grupo de recursos do projeto Azure Migrate (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 do Azure Migrate

O Azure Migrate and Modernize usa um dispositivo leve do Azure Migrate. Como parte dos pré-requisitos, você implantou o dispositivo Azure Migrate como uma VM VMware.

Para recuperar uma VM VMware específica em um projeto do Azure Migrate, especifique o nome do projeto Azure Migrate (ProjectName), o grupo de recursos do projeto Azure Migrate (ResourceGroupName) 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 do Azure Migrate usando os ProjectName parâmetros e ResourceGroupName .

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

Se você tiver vários dispositivos em um projeto do Azure Migrate, poderá usar os ProjectNameparâmetros , ResourceGroupNamee ApplianceName para recuperar todas as VMs descobertas usando um dispositivo de Migração do Azure específico.

# 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 a modernização usam vários recursos do Azure para migrar VMs. A migração e a modernização provisionam os seguintes recursos, no mesmo grupo de recursos do projeto.

  • Barramento de serviço: a migração e a modernização usam 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 a modernização usam a conta de armazenamento de gateway para armazenar informações de estado sobre as VMs que estão sendo replicadas.
  • Conta de armazenamento de log: o dispositivo Azure Migrate carrega logs de replicação de VMs em uma conta de armazenamento de log. O Azure Migrate aplica as informações de replicação aos discos gerenciados por réplica.
  • Cofre de chaves: o dispositivo Azure Migrate usa o cofre de chaves para gerenciar cadeias de conexão para o barramento de serviço e chaves de acesso para as contas de armazenamento usadas na replicação.

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

Nota

Um projeto Azure Migrate dá suporte a migrações para apenas uma região do Azure. Depois de executar esse script, não é possível alterar a região de destino para a qual deseja migrar suas VMs VMware. Você precisará executar o Initialize-AzMigrateReplicationInfrastructure comando se configurar um novo dispositivo em seu projeto do Azure Migrate.

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

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

Replicar VMs

Depois de concluir a descoberta e inicializar a infraestrutura de replicação, você pode começar a replicação de 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 Description
Subscrição de destino e grupo de recursos Obrigatório Especifique a assinatura e o grupo de recursos para os quais a VM deve ser migrada fornecendo a ID do grupo de recursos usando o TargetResourceGroupId parâmetro.
Rede virtual de destino e sub-rede 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 TargetNetworkId parâmetros 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 VM descoberto para replicação.
Nome da VM de destino Obrigatório Especifique o nome da VM do Azure a ser criada usando o TargetVMName parâmetro.
Tamanho da VM de destino Obrigatório Especifique o tamanho da VM do Azure a ser usado para a VM replicante usando o TargetVMSize parâmetro. Por exemplo, para migrar uma VM para D2_v2 VM 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 suas máquinas Windows Server cobertas por assinaturas ativas do Software Assurance ou do Windows Server, especifique o valor do LicenseType parâmetro 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. O ID do disco a ser usado é a propriedade identificador exclusivo (UUID) do disco recuperado usando o cmdlet Get-AzMigrateDiscoveredServer .
Tipo de disco Obrigatório Especifique o tipo de disco a ser usado.
Redundância de infraestrutura Opcional Especifique a opção de redundância de infraestrutura da seguinte maneira:

- Zona de disponibilidade: fixa a máquina migrada 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. Esta opção só estará disponível se a região de destino selecionada para a migração suportar zonas de disponibilidade. Para usar zonas de disponibilidade, especifique o valor da zona de disponibilidade para o TargetAvailabilityZone parâmetro.
- Conjunto de disponibilidade: coloca a máquina migrada em um conjunto de disponibilidade. O grupo de recursos de destino selecionado deve ter um ou mais conjuntos de disponibilidade para usar essa opção. Para usar um conjunto de disponibilidade, especifique o ID do conjunto de disponibilidade para o TargetAvailabilitySet parâmetro.
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 TargetBootDiagnosticStorageAccount parâmetro.
- A conta de armazenamento usada para o diagnóstico de inicialização deve estar na mesma assinatura para a qual você está migrando suas VMs.
- Por padrão, nenhum valor é definido para este parâmetro.
Etiquetas Opcional Adicione tags às VMs, discos e NICs migrados.
Use Tag para adicionar tags a VMs, discos e NICs ou:
- Use VMTag para adicionar tags às suas VMs migradas.
- Use DiskTag para adicionar tags aos discos.
- Use NicTag para adicionar tags a interfaces de rede.
Por exemplo, adicione as tags necessárias à variável $tags e passe a variável no parâmetro required: $tags = @{Organization=”Contoso”}.

Replicar VMs com todos os discos

Neste tutorial, replicamos todos os discos da VM descoberta e especificamos 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 padrão. O disco do SO é o disco que possui o carregador e o instalador do sistema operativo. O cmdlet retorna um trabalho que pode ser rastreado 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 fornecendo isso como uma entrada para o DiskToInclude parâmetro no cmdlet New-AzMigrateServerReplication . Você também pode usar o cmdlet New-AzMigrateDiskMapping para especificar diferentes tipos de disco de destino para cada disco individual a ser replicado.

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

  • DiskId: especifique o identificador exclusivo do disco a ser migrado. O ID do disco a ser usado é a propriedade UUID do disco recuperado usando o cmdlet Get-AzMigrateDiscoveredServer .
  • IsOSDisk: Especifique true se o disco a ser migrado é o disco do sistema operacional da VM. Caso contrário, especifique false.
  • DiskType: especifique o tipo de disco a ser usado no Azure.

No exemplo a seguir, replicamos apenas dois discos da VM descoberta. Especificamos o disco do SO e usamos diferentes tipos de disco para cada disco a ser replicado. O cmdlet retorna um trabalho que pode ser rastreado 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

Monitorizar a replicação

A replicação ocorre nos seguintes casos:

  • Quando o trabalho Iniciar Replicação for concluído com êxito, as máquinas iniciarão sua replicação inicial para o Azure.
  • Durante a replicação inicial, um instantâneo da VM é criado. Os dados de disco do instantâneo são replicados para discos gerenciados por réplica no Azure.
  • Após a conclusão da replicação inicial, 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

Você pode acompanhar as propriedades Estado de Migração e Descrição do Estado de Migração na saída.

  • Para replicação inicial, os valores das propriedades Estado de Migração e Descrição do Estado de Migração são InitialSeedingInProgress e Initial replication, respectivamente.
  • Durante a replicação delta, os valores das propriedades Migrate State e Migration State Description são Replicating e Ready to migrate, respectivamente.
  • Depois de concluir a migração, os valores das propriedades Migrate State e Migration State Description 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 seguinte cmdlet:

Write-Output $replicatingserver.ProviderSpecificDetail

Você pode acompanhar o progresso inicial da replicação usando as propriedades Porcentagem de Progresso de 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 for concluído com êxito, as máquinas iniciarão sua replicação inicial para o Azure.
  • Durante a replicação inicial, um instantâneo da VM é criado. Os dados de disco do instantâneo são replicados para discos gerenciados por réplica no Azure.
  • Após a conclusão da replicação inicial, 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 replicante

A migração e a modernização permitem alterar as propriedades de destino, como nome, tamanho, grupo de recursos, configuração de NIC e assim por diante, para uma VM replicante.

As propriedades a seguir podem ser atualizadas para uma VM.

Parâmetro Tipo Description
o nome da VM Opcional Especifique o nome da VM do Azure a ser criada usando o TargetVMName parâmetro.
Tamanho da VM Opcional Especifique o tamanho da VM do Azure a ser usado para a VM replicante usando o TargetVMSize parâmetro. Por exemplo, para migrar uma VM para D2_v2 VM 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 TargetNetworkId parâmetro.
Grupo de recursos Opcional A configuração de IC pode ser especificada usando o cmdlet New-AzMigrateNicMapping . Em seguida, o objeto recebe uma entrada para o NicToUpdate parâmetro no cmdlet Set-AzMigrateServerReplication .

- Alterar alocação de IP: Para especificar um IP estático para uma NIC, forneça o endereço IPv4 a ser usado como o IP estático para a VM usando o TargetNicIP parâmetro. Para atribuir dinamicamente um IP para uma NIC, forneça auto como o valor para o TargetNicIP parâmetro.
- Use os valores Primary, Secondary ou DoNotCreate para o TargetNicSelectionType parâmetro para especificar se a NIC deve ser primária, secundária ou não deve ser criada na VM migrada. Apenas uma NIC pode ser especificada como a NIC primária para a VM.
- Para criar uma NIC primária, você também precisa especificar as outras NICs que devem ser secundárias ou não devem ser criadas na VM migrada.
- Para alterar a sub-rede para a NIC, especifique o nome da sub-rede usando o TargetNicSubnet parâmetro.
Interface de Rede Opcional Especifique o nome da VM do Azure a ser criada usando o TargetVMName parâmetro.
Availability zone Opcional Para usar zonas de disponibilidade, especifique o valor da zona de disponibilidade para o TargetAvailabilityZone parâmetro.
Conjunto de disponibilidade Opcional Para usar conjuntos de disponibilidade, especifique o ID do conjunto de disponibilidade para o TargetAvailabilitySet parâmetro.
Etiquetas Opcional Para atualizar tags, use os seguintes parâmetros: or , , , e tipo de operação UpdateTagOperation de tag de atualização ou UpdateVMTagOperation, UpdateDiskTagOperation, UpdateNicTagOperation. UpdateNicTagUpdateDiskTagUpdateVMTagUpdateTag A operação da marca de atualização usa os seguintes valores: Mesclar, Excluir e Substituir.
Use UpdateTag para atualizar todas as tags em VMs, discos e NICs.
Use UpdateVMTag para atualizar marcas de VM.
Use UpdateDiskTag para atualizar tags de disco.
Use UpdateNicTag para atualizar tags NIC.
Use UpdateTagOperation para atualizar a operação para todas as tags em VMs, discos e NICs.
Use UpdateVMTagOperation para atualizar marcas de VM.
Use UpdateDiskTagOperation para atualizar tags de disco.
Use UpdateNicTagOperation para atualizar tags NIC.

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

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

O ID de disco a ser usado em Set-AzMigrateDiskMapping é a propriedade UUID do disco recuperado usando o cmdlet Get-AzMigrateDiscoveredServer .
Nome da NIC Opcional Use New-AzMigrateNicMapping para definir os nomes da NIC como uma variável $NICMapping. Em seguida, use o NICToUpdate parâmetro e passe a variável.

O cmdlet Get-AzMigrateServerReplication retorna um trabalho que pode ser rastreado 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 como primária e atribuindo um IP estático a ela. Descartamos a segunda NIC para migração, atualizamos o nome e o tamanho da VM de destino e personalizamos os nomes da NIC.

# 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, personalizamos 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, adicionamos tags às VMs replicantes.

# 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

Executar uma migração de teste

Quando a replicação delta começa, você pode executar uma migração de teste para as VMs antes de executar uma migração completa para o Azure. É altamente recomendável que você teste a migração pelo menos uma vez para cada máquina antes de migrá-la. O cmdlet retorna um trabalho que pode ser rastreado para monitorar o status da operação.

  • A execução de uma migração de teste verifica se a migração funciona conforme o esperado. A migração de teste não afeta a máquina 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 que não é de produção em sua assinatura do Azure.
  • Você pode usar a VM do Azure de teste replicada para validar a migração, executar testes de aplicativos e resolver quaisquer problemas antes da migração completa.

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

# 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 rastreado 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 replicante usando o cmdlet a seguir. O cmdlet retorna um trabalho que pode ser rastreado para monitorar o status da operação.

Se você não quiser desativar o servidor de origem, não use o TurnOffSourceServer parâmetro.

# 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 a máquina local e limpe as informações de estado de replicação para a VM usando o cmdlet a seguir. O cmdlet retorna um trabalho que pode ser rastreado 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 otimizações de aplicação pós-migração, tais como atualizar cadeias de ligação de base de dados e configurações de servidor Web.

  3. Execute testes de aplicação final e de aceitação da migração na aplicação migrada em execução no Azure.

  4. Corte o tráfego para a instância de VM do Azure migrada.

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

  6. Remova as VMs no local das cópias de segurança locais.

  7. Atualize qualquer documentação interna para mostrar a nova localização e endereço IP das VMs do Azure.

Práticas recomendadas pós-migração