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:
- Completare l'Esercitazione: Individuare le macchine virtuali VMware con Valutazione server per preparare Azure e VMware per la migrazione.
- Completare l'Esercitazione: Valutare le macchine virtuali VMware per la migrazione alle macchine virtuali di Azure prima di eseguirne la migrazione ad Azure.
- Installare il modulo Az di PowerShell.
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, specificarefalse
. - 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
eInitial replication
. - Durante la replica differenziale, i valori per le proprietà Stato della migrazione e Descrizione dello stato della migrazione sono rispettivamente
Replicating
eReady 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
eMigrated
.
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
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
Apportare nell'app le eventuali modifiche post-migrazione necessarie, come l'aggiornamento delle stringhe di connessione del database e delle configurazioni dei server Web.
Eseguire i test di accettazione della migrazione e dell'applicazione finale sull'applicazione migrata ora in esecuzione in Azure.
Trasferire il traffico all'istanza della VM di Azure di cui è stata eseguita la migrazione.
Rimuovere le macchine virtuali locali dall'inventario delle macchine virtuali locale.
Rimuovere le macchine virtuali locali dai processi di backup locali.
Aggiornare la documentazione interna con la nuova posizione e il nuovo indirizzo IP delle macchine virtuali di Azure.
Procedure consigliate dopo la migrazione
- Per una maggiore resilienza:
- Proteggere i dati eseguendo il backup delle macchine virtuali di Azure con Backup di Azure. Altre informazioni.
- Mantenere i carichi di lavoro in esecuzione e sempre disponibili eseguendo la replica delle macchine virtuali di Azure in un'area secondaria con Azure Site Recovery. Altre informazioni.
- Per una maggiore sicurezza:
- Bloccare e limitare l'accesso del traffico in ingresso con la funzionalità di amministrazione JIT di Microsoft Defender per il cloud.
- Gestire gli aggiornamenti nelle macchine virtuali Windows e Linux con Gestore aggiornamenti di Azure.
- Limitare il traffico di rete verso gli endpoint di gestione con la funzionalità Gruppi di sicurezza di rete.
- Distribuire Crittografia dischi di Azure per garantire la sicurezza dei dischi e proteggere i dati da furti e accessi non autorizzati.
- Vedere altre informazioni su come proteggere le risorse IaaS e su Microsoft Defender per il cloud.
- Per il monitoraggio e la gestione:
- Valutare la possibilità di distribuire Gestione dei costi di Azure per monitorare l'utilizzo delle risorse e la spesa.