Condividi tramite


Eseguire la migrazione di VM VMware ad Azure (senza agente) - PowerShell

Questo articolo illustra come eseguire la migrazione di macchine virtuali VMware individuate con il metodo senza agente usando Azure PowerShell per la migrazione e la modernizzazione.

Nota

Questa documentazione dello scenario di migrazione end-to-end di VMware è attualmente disponibile in anteprima. Per altre informazioni sull'uso di Azure Migrate, vedere la documentazione del prodotto Azure Migrate.

Scopri come:

  • Recuperare le VM VMware individuate in un progetto di Azure Migrate.
  • Avviare la replica delle VM.
  • Aggiornare le proprietà per la replica delle VM.
  • Monitorare la replica.
  • Eseguire una migrazione di test per verificare che tutti gli elementi funzionino come previsto.
  • Eseguire una migrazione completa delle VM.

Nota

Le esercitazioni illustrano il percorso di distribuzione più semplice per uno scenario, in modo da poter configurare rapidamente un modello di verifica. Quando possibile vengono usate le opzioni predefinite e non sono riportati tutti i percorsi e le impostazioni possibili.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

Prima di iniziare questa esercitazione, è necessario:

Installare il modulo Azure Migrate di PowerShell

Il modulo Azure Migrate di PowerShell è disponibile come parte di Azure PowerShell (Az). Eseguire il comando Get-InstalledModule -Name Az.Migrate per verificare se il modulo Azure Migrate di PowerShell è installato nel computer.

Accedere alla sottoscrizione di Azure.

Accedere alla sottoscrizione di Azure con il cmdlet Connect-AzAccount.

Connect-AzAccount

Selezionare la sottoscrizione di Azure

Usare il cmdlet Get-AzSubscription per ottenere l'elenco delle sottoscrizioni di Azure a cui si ha accesso. Selezionare la sottoscrizione di Azure con il progetto Azure Migrate da usare eseguendo il cmdlet Set-AzContext.

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

Recuperare il progetto Azure Migrate

Il progetto Azure Migrate viene usato per archiviare i metadati di individuazione, valutazione e migrazione raccolti dall'ambiente da valutare o trasferire. In un progetto è possibile tenere traccia degli asset individuati, orchestrare le valutazioni ed eseguire le migrazioni.

Come parte dei prerequisiti, è già stato creato un progetto Azure Migrate. Usare il cmdlet Get-AzMigrateProject per recuperare i dettagli di un progetto Azure Migrate. È necessario specificare il nome del progetto Azure Migrate (Name) e il nome del gruppo di risorse del progetto 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

Recuperare le VM individuate in un progetto Azure Migrate

Azure Migra e Modernizza si basa su un'appliance leggera di Azure Migrate. Come parte dei prerequisiti, è stata distribuita l'appliance di Azure Migrate come VM VMware.

Per recuperare una VM VMware specifica in un progetto Azure Migrate, specificare il nome del progetto Azure Migrate (ProjectName), il gruppo di risorse del progetto Azure Migrate (ResourceGroupName) e il nome della macchina virtuale (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

In questa esercitazione viene eseguita la migrazione di questa VM.

È anche possibile recuperare tutte le VM VMware in un progetto Azure Migrate usando i parametri ProjectName e ResourceGroupName.

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

Se un progetto Azure Migrate include più appliance, è possibile usare i parametri ProjectName, ResourceGroupName e ApplianceName per recuperare tutte le macchine virtuali individuate con una specifica appliance di Azure Migrate.

# 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

Inizializzare l'infrastruttura di replica

Lo strumento di migrazione e modernizzazione usa più risorse di Azure per la migrazione delle macchine virtuali. Lo strumento di migrazione e modernizzazione effettua il provisioning delle risorse seguenti nello stesso gruppo di risorse del progetto.

  • Bus di servizio: lo strumento di migrazione e modernizzazione usa il bus di servizio per inviare i messaggi di orchestrazione della replica all'appliance.
  • Account di archiviazione del gateway: lo strumento di migrazione e modernizzazione usa l'account di archiviazione del gateway per archiviare le informazioni sullo stato delle VM da replicare.
  • Account di archiviazione di log: l'appliance di Azure Migrate carica i log di replica per le VM in un account di archiviazione di log. Azure Migrate applica le informazioni di replica ai dischi gestiti dalla replica.
  • Insieme di credenziali delle chiavi: l'appliance di Azure Migrate usa l'insieme di credenziali delle chiavi per gestire le stringhe di connessione per il bus di servizio e le chiavi di accesso per gli account di archiviazione usati nella replica.

Prima di replicare la prima VM nel progetto Azure Migrate, eseguire il comando seguente per effettuare il provisioning dell'infrastruttura di replica. Questo comando effettua il provisioning delle risorse precedenti e le configura in modo che sia possibile avviare la migrazione delle VM VMware.

Nota

Un progetto Azure Migrate supporta le migrazioni solo in un'unica area di Azure. Una volta eseguito questo script, non è possibile cambiare l'area di destinazione della migrazione delle VM VMware. Se si configura una nuova appliance nel progetto Azure Migrate, è necessario eseguire il comando Initialize-AzMigrateReplicationInfrastructure.

In questo articolo viene inizializzata l'infrastruttura di replica in modo che sia possibile eseguire la migrazione delle VM nell'area Central US.

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

Replicare le VM

Dopo aver completato l'individuazione e l'inizializzazione dell'infrastruttura di replica, è possibile avviare la replica di macchine virtuali VMware ad Azure. È possibile eseguire fino a 500 repliche contemporaneamente.

Per specificare le proprietà della replica, usare la tabella seguente.

Parametro Tipo Descrizione
Sottoscrizione e gruppo di risorse di destinazione Obbligatorio Specificare la sottoscrizione e il gruppo di risorse in cui eseguire la migrazione della macchina virtuale fornendo l'ID gruppo di risorse con il parametro TargetResourceGroupId.
Rete virtuale e subnet di destinazione Obbligatorio Specificare l'ID dell'istanza della rete virtuale di Azure e il nome della subnet in cui eseguire la migrazione della VM usando rispettivamente i parametri TargetNetworkId e TargetSubnetName.
ID macchina Obbligatorio Specificare l'ID della macchina individuata di cui deve essere eseguita la replica e la migrazione. Usare InputObject per specificare l'oggetto macchina virtuale individuato per la replica.
Nome della macchina virtuale di destinazione Obbligatorio Specificare il nome della macchina virtuale di Azure da creare usando il parametro TargetVMName.
Dimensioni della macchina virtuale di destinazione Obbligatorio Specificare le dimensioni della macchina virtuale di Azure da usare per la macchina virtuale di replica con il parametro TargetVMSize. Ad esempio, per eseguire la migrazione di una VM a una VM D2_v2 in Azure, specificare il valore per TargetVMSize come Standard_D2_v2.
Licenza Obbligatorio Per usare Vantaggio Azure Hybrid per i computer Windows Server coperti da sottoscrizioni attive di Software Assurance o Windows Server, specificare il valore per il parametro LicenseType come WindowsServer. In caso contrario, specificare il valore come NoLicenseType.
Disco del sistema operativo Obbligatorio Specificare l'identificatore univoco del disco che contiene il bootloader e il programma di installazione del sistema operativo. L'ID disco da usare è la proprietà UUID (identificatore univoco) per il disco recuperato tramite il cmdlet Get-AzMigrateDiscoveredServer.
Tipo di disco Obbligatorio Specificare il tipo di disco da usare.
Ridondanza dell'infrastruttura Facoltativo Specificare l'opzione di ridondanza dell'infrastruttura come indicato di seguito:

- Zona di disponibilità: aggiunge la macchina migrata a una zona di disponibilità specifica nell'area. Usare questa opzione per distribuire i server che formano un livello applicazione a più nodi tra zone di disponibilità. Questa opzione è disponibile solo se l'area di destinazione selezionata per la migrazione supporta le zone di disponibilità. Per usare le zone di disponibilità, specificare il relativo valore per il parametro TargetAvailabilityZone.
- Set di disponibilità: include la macchina migrata in un set di disponibilità. Per usare questa opzione, il gruppo di risorse di destinazione selezionato deve avere uno o più set di disponibilità. Per usare un set di disponibilità, specificare il relativo ID per il parametro TargetAvailabilitySet.
Account di archiviazione di diagnostica di avvio Facoltativo Per usare un account di archiviazione di diagnostica di avvio, specificare l'ID per il parametro TargetBootDiagnosticStorageAccount.
- L'account di archiviazione usato per la diagnostica di avvio deve trovarsi nella stessa sottoscrizione in cui si sta eseguendo la migrazione delle macchine virtuali.
- Per impostazione predefinita, non viene impostato alcun valore per questo parametro.
Tag Facoltativo Aggiungere i tag alle macchine virtuali, ai dischi e alle schede di interfaccia di rete di cui è stata eseguita la migrazione.
Usare Tag per aggiungere i tag alle macchine virtuali, ai dischi e alle schede di interfaccia di rete oppure:
- Usare VMTag per aggiungere i tag alle macchine virtuali di cui è stata eseguita la migrazione.
- Usare DiskTag per aggiungere i tag ai dischi.
- Usare NicTag per aggiungere i tag alle interfacce di rete.
Ad esempio, aggiungere i tag necessari alla variabile $tags e passare la variabile nel parametro obbligatorio: $tags = @{Organization=”Contoso”}.

Replicare le VM con tutti i dischi

In questa esercitazione vengono replicati tutti i dischi della macchina virtuale individuata e viene specificato un nuovo nome per la macchina virtuale in Azure. Il primo disco del server individuato viene specificato come disco del sistema operativo e viene eseguita la migrazione di tutti i dischi come HDD Standard. È il disco che contiene il bootloader e il programma di installazione del sistema operativo. Il cmdlet restituisce un processo di cui è possibile tenere traccia per monitorare lo stato dell'operazione.

# 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

Replicare VM con dischi selezionati

È anche possibile replicare in modo selettivo i dischi della macchina virtuale individuata usando il cmdlet New-AzMigrateDiskMapping e fornendo il disco come input del parametro DiskToInclude nel cmdlet New-AzMigrateServerReplication. È anche possibile usare il cmdlet New-AzMigrateDiskMapping per specificare tipi di dischi di destinazione diversi per ogni singolo disco da replicare.

Specificare i valori per i parametri seguenti del cmdlet New-AzMigrateDiskMapping:

  • DiskId: specificare l'identificatore univoco del disco di cui eseguire la migrazione. L'ID disco da usare è la proprietà UUID (identificatore univoco) per il disco recuperato tramite il cmdlet Get-AzMigrateDiscoveredServer.
  • IsOSDisk: specificare true se il disco di cui eseguire la migrazione è il disco del sistema operativo della VM. In caso contrario, specificare false.
  • DiskType: specificare il tipo di disco da usare in Azure.

Nell'esempio seguente vengono replicati solo due dischi della macchina virtuale individuata. Si specifica il disco del sistema operativo e si usano tipi di dischi diversi per ogni disco da replicare. Il cmdlet restituisce un processo di cui è possibile tenere traccia per monitorare lo stato dell'operazione.

# 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

Monitorare la replica

La replica si verifica nei casi seguenti:

  • Al termine del processo, viene avviata la replica iniziale delle macchine virtuali in Azure con Avvia replica.
  • Durante la replica iniziale viene creato uno snapshot della VM. I dati dei dischi dello snapshot vengono replicati nei dischi gestiti di replica in Azure.
  • Al termine della replica iniziale, viene avviata la replica differenziale. Le modifiche incrementali ai dischi locali vengono replicate periodicamente nei dischi di replica in Azure.

Tenere traccia dello stato della replica usando il 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

È possibile tenere traccia delle proprietà Stato della migrazione e Descrizione dello stato della migrazione nell'output.

  • Per la replica iniziale, i valori per le proprietà Stato della migrazione e Descrizione dello stato della migrazione sono rispettivamente InitialSeedingInProgress e Initial replication.
  • Durante la replica differenziale, i valori per le proprietà Stato della migrazione e Descrizione dello stato della migrazione sono rispettivamente Replicating e Ready to migrate.
  • Dopo aver completato la migrazione, i valori per le proprietà Stato della migrazione e Descrizione dello stato della migrazione sono rispettivamente Migration succeeded e Migrated.
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

Per informazioni dettagliate sullo stato di avanzamento della replica, eseguire il cmdlet seguente:

Write-Output $replicatingserver.ProviderSpecificDetail

Per tenere traccia dello stato di avanzamento della replica iniziale, è possibile usare le proprietà Percentuale di avanzamento del seeding iniziale nell'output.

    "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",

La replica si verifica nei casi seguenti:

  • Al termine del processo, viene avviata la replica iniziale delle macchine virtuali in Azure con Avvia replica.
  • Durante la replica iniziale viene creato uno snapshot della VM. I dati dei dischi dello snapshot vengono replicati nei dischi gestiti di replica in Azure.
  • Al termine della replica iniziale, viene avviata la replica differenziale. Le modifiche incrementali ai dischi locali vengono replicate periodicamente nei dischi di replica in Azure.

Recuperare lo stato di un processo

È possibile monitorare stato di un processo usando il cmdlet Get-AzMigrateJob.

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

Aggiornare le proprietà di una VM di replica

Lo strumento di migrazione e modernizzazione consente di cambiare le proprietà di destinazione, ad esempio nome, dimensioni, gruppo di risorse, configurazione della scheda di interfaccia di rete e così via, per una macchina virtuale di replica.

Per una VM è possibile aggiornare le proprietà seguenti.

Parametro Tipo Descrizione
Nome della VM. Facoltativo Specificare il nome della macchina virtuale di Azure da creare usando il parametro TargetVMName.
Dimensioni della VM Facoltativo Specificare le dimensioni della macchina virtuale di Azure da usare per la macchina virtuale di replica con il parametro TargetVMSize. Ad esempio, per eseguire la migrazione di una VM a una VM D2_v2 in Azure, specificare il valore per TargetVMSize come Standard_D2_v2.
Rete virtuale Facoltativo Specificare l'ID della rete virtuale di Azure in cui eseguire la migrazione della VM usando il parametro TargetNetworkId.
Gruppo di risorse Facoltativo È possibile specificare la configurazione della scheda di interfaccia di rete usando il cmdlet New-AzMigrateNicMapping. L'oggetto viene quindi passato come input del parametro NicToUpdate nel cmdlet Set-AzMigrateServerReplication.

- Cambiare l'allocazione di indirizzi IP: per specificare un indirizzo IP statico per una scheda di interfaccia di rete, specificare un indirizzo IPv4 da usare come IP statico per la VM usando il parametro TargetNicIP. Per assegnare dinamicamente un indirizzo IP per una scheda di interfaccia di rete, specificare auto come valore del parametro TargetNicIP.
- Usare i valori Primary, Secondary o DoNotCreate per il parametro TargetNicSelectionType per specificare se la scheda di interfaccia di rete deve essere primaria o secondaria oppure se non deve essere creata nella macchina virtuale di cui eseguire la migrazione. Per la VM è possibile specificare un'unica scheda di interfaccia di rete come primaria.
- Per impostare la scheda di interfaccia di rete come primaria, è anche necessario specificare altre schede che dovranno essere impostate come secondarie o che non dovranno essere create nella VM di cui eseguire la migrazione.
- Per cambiare la subnet della scheda di interfaccia di rete, specificare il relativo nome usando il parametro TargetNicSubnet.
Interfaccia di rete Facoltativo Specificare il nome della macchina virtuale di Azure da creare usando il parametro TargetVMName.
Zona di disponibilità Facoltativo Per usare le zone di disponibilità, specificare il relativo valore per il parametro TargetAvailabilityZone.
Set di disponibilità Facoltativo Per usare un set di disponibilità, specificare il relativo ID per il parametro TargetAvailabilitySet.
Tag Facoltativo Per aggiornare i tag, usare i parametri seguenti: UpdateTag o UpdateVMTag, UpdateDiskTag, UpdateNicTag e il tipo di operazione di aggiornamento tag UpdateTagOperation o UpdateVMTagOperation, UpdateDiskTagOperation, UpdateNicTagOperation. L'operazione di aggiornamento tag accetta i valori seguenti: Merge, Delete e Replace.
Usare UpdateTag per aggiornare tutti i tag delle macchine virtuali, dei dischi e delle schede di interfaccia di rete.
Usare UpdateVMTag per aggiornare i tag delle macchine virtuali.
Usare UpdateDiskTag per aggiornare i tag dei dischi.
Usare UpdateNicTag per aggiornare i tag delle schede di interfaccia di rete.
Usare UpdateTagOperation per aggiornare l'operazione per tutti i tag delle macchine virtuali, dei dischi e delle schede di interfaccia di rete.
Usare UpdateVMTagOperation per aggiornare i tag delle macchine virtuali.
Usare UpdateDiskTagOperation per aggiornare i tag dei dischi.
Usare UpdateNicTagOperation per aggiornare i tag delle schede di interfaccia di rete.

L'opzione replace sostituisce l'intero set di tag esistenti con un nuovo set.
L'opzione merge consente di aggiungere tag con nuovi nomi e di aggiornare i valori dei tag con nomi esistenti.
L'opzione delete consente di eliminare in modo selettivo i tag in base a nomi o coppie nome/valore specifici.
Dischi Facoltativo Per il disco del sistema operativo:
- Aggiornare il nome del disco del sistema operativo usando il parametro TargetDiskName.

Per aggiornare più dischi:
- Usare Set-AzMigrateDiskMapping per impostare i nomi dei dischi su una variabile $DiskMapping. Usare quindi il parametro DiskToUpdate e passare la variabile.

L'ID disco da usare in Set-AzMigrateDiskMapping è la proprietà UUID (identificatore univoco) per il disco recuperato tramite il cmdlet Get-AzMigrateDiscoveredServer.
Nome della scheda di interfaccia di rete Facoltativo Usare New-AzMigrateNicMapping per impostare i nomi delle schede di interfaccia di rete su una variabile $NICMapping. Usare quindi il parametro NICToUpdate e passare la variabile.

Il cmdlet Get-AzMigrateServerReplication restituisce un processo di cui è possibile tenere traccia per monitorare lo stato dell'operazione.

# 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

Nell'esempio seguente viene aggiornata la configurazione delle schede di interfaccia di rete rendendo la prima scheda di interfaccia di rete primaria e assegnandole un indirizzo IP statico. Si elimina la seconda scheda di interfaccia di rete per la migrazione, si aggiornano il nome e le dimensioni della macchina virtuale di destinazione e si personalizzano i nomi delle schede di interfaccia di rete.

# 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

Nell'esempio seguente viene personalizzato il nome del 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 

Nell'esempio seguente vengono aggiunti i tag alle macchine virtuali di replica.

# 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 

Usare l'esempio seguente per tenere traccia dello stato del processo.

# 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

Eseguire una migrazione di test

All'avvio della replica differenziale, è possibile eseguire una migrazione di test per le macchine virtuali prima di eseguire una migrazione completa ad Azure. È consigliabile farlo almeno una volta per ogni macchina virtuale, prima di eseguirne la migrazione. Il cmdlet restituisce un processo di cui è possibile tenere traccia per monitorare lo stato dell'operazione.

  • L'esecuzione di una migrazione di test verifica che tutto funzioni come previsto. La migrazione di test non ha alcun effetto sul computer locale, che rimane operativo e continua a eseguire la replica.
  • La migrazione di test simula la migrazione creando una macchina virtuale di Azure usando i dati replicati. Il test esegue in genere la migrazione a una rete virtuale non di produzione nella sottoscrizione di Azure.
  • È possibile usare la VM di Azure di test replicata per convalidare la migrazione, eseguire test delle app e risolvere eventuali problemi prima della migrazione completa.

Selezionare la rete virtuale di Azure da usare per il test specificando il relativo ID con il parametro 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

Al termine del test, pulire la migrazione di test usando il cmdlet Start-AzMigrateTestMigrationCleanup. Il cmdlet restituisce un processo di cui è possibile tenere traccia per monitorare lo stato dell'operazione.

# 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

Eseguire la migrazione di macchine virtuali

Dopo aver verificato che la migrazione di test funziona nel modo previsto, è possibile procedere con la migrazione del server di replica usando il cmdlet seguente. Il cmdlet restituisce un processo di cui è possibile tenere traccia per monitorare lo stato dell'operazione.

Se non si vuole disattivare il server di origine, non usare il parametro 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

Completare la migrazione

  1. Al termine della migrazione, arrestare la replica per il computer locale e pulire le informazioni sullo stato di replica per la macchina virtuale usando il cmdlet seguente. Il cmdlet restituisce un processo di cui è possibile tenere traccia per monitorare lo stato dell'operazione.

    # 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. Apportare nell'app le eventuali modifiche post-migrazione necessarie, come l'aggiornamento delle stringhe di connessione del database e delle configurazioni dei server Web.

  3. Eseguire i test di accettazione della migrazione e dell'applicazione finale sull'applicazione migrata ora in esecuzione in Azure.

  4. Trasferire il traffico all'istanza della VM di Azure di cui è stata eseguita la migrazione.

  5. Rimuovere le macchine virtuali locali dall'inventario delle macchine virtuali locale.

  6. Rimuovere le macchine virtuali locali dai processi di backup locali.

  7. Aggiornare la documentazione interna con la nuova posizione e il nuovo indirizzo IP delle macchine virtuali di Azure.

Procedure consigliate dopo la migrazione