Partager via


Migrer des machines virtuelles VMware vers Azure (sans agent) - PowerShell

Dans cet article, vous découvrez comment migrer des machines virtuelles VMware découvertes avec la méthode sans agent en utilisant Azure PowerShell pour Migration et modernisation.

Vous apprenez à :

  • Récupérer des machines virtuelles VMware découvertes dans un projet Azure Migrate.
  • Démarrer la réplication des machines virtuelles
  • Mettre à jour les propriétés de réplication des machines virtuelles.
  • Superviser la réplication.
  • Exécuter une migration de test pour vérifier que tout fonctionne comme prévu.
  • Exécuter une migration de machine virtuelle complète

Remarque

Les tutoriels vous montrent le chemin de déploiement le plus simple pour un scénario donné, afin que vous puissiez configurer rapidement une preuve de concept. Ils utilisent les options par défaut quand c’est possible et n’affichent pas tous les paramètres et chemins possibles.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Conditions préalables

Avant de commencer ce didacticiel, vous devez :

Installer le module PowerShell Azure Migrate

Le module PowerShell Azure Migrate est disponible dans le cadre d’Azure PowerShell (Az). Exécutez la commande Get-InstalledModule -Name Az.Migrate pour vérifier si le module PowerShell Azure Migrate est installé sur votre ordinateur.

Connectez-vous à votre abonnement Azure :

Connectez-vous à votre abonnement Azure avec l’applet de commande Connect-AzAccount.

Connect-AzAccount

Sélectionnez votre abonnement Azure.

Utilisez l’applet de commande Get-AzSubscription pour obtenir la liste des abonnements Azure auxquels vous avez accès. Sélectionnez l’abonnement Azure contenant le projet Azure Migrate que vous voulez utiliser en utilisant la cmdlet Set-AzContext.

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

Récupérer le projet Azure Migrate

Un projet de Azure Migrate est utilisé pour stocker les métadonnées de découverte, d’évaluation et de migration collectées à partir de l’environnement que vous évaluez ou migrez. Dans un projet, vous pouvez suivre les ressources découvertes, orchestrer les évaluations et effectuer des migrations.

Dans le cadre des prérequis, vous avez déjà créé un projet Azure Migrate. Utilisez l’applet de commande Get-AzMigrateProject pour récupérer les détails d’un projet Azure Migrate. Vous devez spécifier le nom du projet Azure Migrate (Name) et le nom du groupe de ressources de ce projet (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

Récupérer des machines virtuelles découvertes dans un projet Azure Migrate

Azure Migrer et Moderniser utilise une appliance Azure Migrate légère. Dans le cadre des prérequis, vous avez déployé l’appliance Azure Migrate comme machine virtuelle VMware.

Pour récupérer une machine virtuelle VMware spécifique dans un projet Azure Migrate, spécifiez le nom du projet (ProjectName), son groupe de ressources (ResourceGroupName) et le nom de la machine virtuelle (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

Nous migrons cette machine virtuelle dans le cadre de ce tutoriel.

Vous pouvez également récupérer toutes les machines virtuelles VMware d’un projet Azure Migrate à l’aide des paramètres ProjectName et ResourceGroupName.

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

Si vous avez plusieurs appliances dans un projet Azure Migrate, vous pouvez utiliser les paramètres ProjectName, ResourceGroupName et ApplianceName pour récupérer toutes les machines virtuelles découvertes en utilisant une appliance Azure Migrate spécifique.

# 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

Initialiser l’infrastructure de réplication

Migration et modernisation utilise plusieurs ressources Azure pour la migration des machines virtuelles. L’outil Migration et modernisation provisionne les ressources suivantes dans le même groupe de ressources que le projet.

  • Service Bus : L’outil Migration et modernisation utilise Service Bus pour envoyer des messages d’orchestration de réplication à l’appliance.
  • Compte de stockage de la passerelle : Migration et modernisation utilise le compte de stockage de la passerelle pour stocker des informations d’état relatives aux machines virtuelles en cours de réplication.
  • Compte de stockage de journal : l’appliance Azure Migrate charge les journaux de réplication pour les machines virtuelles vers un compte de stockage de journal. Azure Migrate applique les informations de réplication aux disques managés de réplica.
  • Key Vault : l’appliance Azure Migrate utilise le coffre de clés afin de gérer les chaînes de connexion pour le Service Bus, et des clés d’accès pour les comptes de stockage utilisés dans la réplication.

Avant de répliquer la première machine virtuelle dans le projet Azure Migrate, exécutez la commande suivante pour provisionner l’infrastructure de réplication. Cette commande provisionne et configure les ressources précédentes afin que vous puissiez commencer à migrer vos machines virtuelles VMware.

Remarque

Un projet Azure Migrate prend en charge les migrations vers une seule région Azure. Une fois que vous avez exécuté ce script, vous ne pouvez pas changer la région cible vers laquelle vous voulez migrer vos machines virtuelles VMware. Vous devez exécuter la commande Initialize-AzMigrateReplicationInfrastructure si vous configurez une nouvelle appliance dans votre projet Azure Migrate.

Dans cet article, nous initialisons l’infrastructure de réplication afin de pouvoir migrer nos machines virtuelles vers la région Central US.

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

Répliquer des machines virtuelles

Une fois la découverte et l’initialisation de l’infrastructure de réplication terminées, vous pouvez commencer la réplication des machines virtuelles VMware sur Azure. Vous pouvez exécuter jusqu’à 500 réplications simultanément.

Pour spécifier les propriétés de réplication, utilisez le tableau suivant.

Paramètre Catégorie Descriptif
Abonnement et groupe de ressources cibles Obligatoire Spécifiez l’abonnement et le groupe de ressources vers lesquels la machine virtuelle doit être migrée en fournissant l’ID de groupe de ressources avec le paramètre TargetResourceGroupId.
Réseau virtuel et sous-réseau cibles Obligatoire Spécifiez l’ID de l’instance de réseau virtuel Azure et le nom du sous-réseau vers lesquels la machine virtuelle doit être migrée en utilisant les paramètres TargetNetworkId et TargetSubnetName, respectivement.
ID de machine Obligatoire Spécifiez l’ID de l’ordinateur découvert qui doit être répliqué et migré. Utilisez InputObject pour spécifier l’objet VM découvert pour la réplication.
Nom de la machine virtuelle cible Obligatoire Spécifiez le nom de la machine virtuelle Azure à créer en utilisant le paramètre TargetVMName.
Taille de machine virtuelle cible Obligatoire Spécifiez la taille VM Azure à utiliser pour la machine virtuelle de réplication en utilisant le paramètre TargetVMSize. Par exemple, pour migrer une machine virtuelle vers D2_v2 dans Azure, spécifiez TargetVMSize comme valeur de Standard_D2_v2.
Licence Obligatoire Si vous voulez utiliser Azure Hybrid Benefit pour vos machines Windows Server qui sont couvertes par des abonnements Software Assurance ou Windows Server actifs, spécifiez LicenseType comme valeur du paramètre . Sinon, spécifiez NoLicenseType comme valeur.
Disque de système d’exploitation Obligatoire Spécifiez l’identificateur unique du disque qui contient le chargeur de démarrage et le programme d’installation du système d’exploitation. L’ID de disque à utiliser est la propriété UUID (identificateur unique) du disque récupérée en utilisant la cmdlet Get-AzMigrateDiscoveredServer.
Type de disque Obligatoire Spécifiez le type de disque à utiliser.
Redondance d’infrastructure Optionnel Spécifiez l’option de redondance d’infrastructure de la façon suivante :

- Zone de disponibilité : épingle la machine migrée à une zone de disponibilité spécifique dans la région. Utilisez cette option pour distribuer les serveurs qui forment une couche d'application multi-nœud entre les zones de disponibilité. Cette option est disponible uniquement si la région cible sélectionnée pour la migration prend en charge les zones de disponibilité. Pour utiliser des zones de disponibilité, spécifiez la valeur de zone de disponibilité pour le paramètre TargetAvailabilityZone.
- Groupe à haute disponibilité : place la machine migrée dans un groupe à haute disponibilité. Le groupe de ressources cible qui a été sélectionné doit avoir un ou plusieurs groupes à haute disponibilité pour pouvoir utiliser cette option. Pour utiliser un groupe à haute disponibilité, spécifiez son ID pour le paramètre TargetAvailabilitySet.
Compte de stockage de diagnostics de démarrage Optionnel Pour utiliser un compte de stockage de diagnostic de démarrage, spécifiez l’ID pour le paramètre TargetBootDiagnosticStorageAccount.
- Le compte de stockage utilisé pour les diagnostics de démarrage doit se trouver dans le même abonnement que celui vers lequel vous migrez vos machines virtuelles.
- Par défaut, aucune valeur n’est définie pour ce paramètre.
Étiquettes Optionnel Ajoutez des étiquettes à vos machines virtuelles, disques et cartes réseau migrés.
Utilisez Tag pour ajouter des étiquettes aux machines virtuelles, disques et cartes réseau, ou :
- Utilisez VMTag pour ajouter des étiquettes à vos machines virtuelles migrées.
- Utilisez DiskTag pour ajouter des étiquettes aux disques.
Utilisez NicTag pour ajouter des étiquettes aux interfaces réseau.
Par exemple, ajoutez les étiquettes nécessaires à la variable $tags et passez la variable dans le paramètre obligatoire : $tags = @{Organization=”Contoso”}.

Répliquer des machines virtuelles avec tous les disques

Dans ce tutoriel, nous répliquons tous les disques de la machine virtuelle découverte et spécifions un nouveau nom pour la machine virtuelle dans Azure. Nous spécifions le premier disque du serveur découvert comme Disque de système d’exploitation et nous migrons tous les disques comme HDD Standard. Le disque du système d’exploitation est le disque qui contient le chargeur de démarrage et le programme d’installation du système d’exploitation. L’applet de commande retourne une tâche qui peut être suivie pour superviser l’état de l’opération.

# 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

Répliquer des machines virtuelles avec une sélection de disques

Vous pouvez également répliquer de manière sélective les disques de la machine virtuelle découverte en utilisant la cmdlet New-AzMigrateDiskMapping et en fournissant le résultat comme entrée du paramètre DiskToInclude dans la cmdlet New-AzMigrateServerReplication. Vous pouvez également utiliser la cmdlet New-AzMigrateDiskMapping afin de spécifier différents types de disque cible pour chaque disque à répliquer.

Spécifiez des valeurs pour les paramètres suivants de la cmdlet New-AzMigrateDiskMapping :

  • DiskId : spécifiez l’identificateur unique du disque à migrer. L’ID de disque à utiliser est la propriété UUID du disque récupérée en utilisant la cmdlet Get-AzMigrateDiscoveredServer.
  • IsOSDisk : spécifiez true si le disque à migrer est le disque de système d’exploitation de la machine virtuelle. Sinon, spécifiez false.
  • DiskType : spécifiez le type de disque à utiliser dans Azure.

Dans l’exemple suivant, nous répliquons uniquement deux disques de la machine virtuelle découverte. Nous spécifions le disque de système d’exploitation et utilisons différents types de disque pour chaque disque à répliquer. L’applet de commande retourne une tâche qui peut être suivie pour superviser l’état de l’opération.

# 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

Surveiller la réplication

La réplication se produit dans les cas suivants :

  • Une fois le travail Démarrer la réplication terminé, les machines commencent leur réplication initiale vers Azure.
  • Lors de la réplication initiale, une capture instantanée de machine virtuelle est créée. Les données de disque de la capture instantanée sont répliquées sur des disques managés de réplica dans Azure.
  • Au terme de la réplication initiale, la réplication différentielle commence. Les modifications incrémentielles apportées aux disques locaux sont répliquées régulièrement sur les disques de réplica dans Azure.

Suivez l’état de la réplication à l’aide de l’applet de commande 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

Vous pouvez suivre les propriétés d’état de la migration et de description de l’état de la migration dans la sortie.

  • Pour la réplication initiale, les valeurs des propriétés État de la migration et Description de l’état de la migration sont InitialSeedingInProgress et Initial replication, respectivement.
  • Pendant une réplication différentielle, les valeurs des propriétés État de la migration et Description de l’état de la migration sont Replicating et Ready to migrate, respectivement.
  • Une fois la migration effectuée, les valeurs des propriétés État de la migration et Description de l’état de la migration sont Migration succeeded et Migrated, respectivement.
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

Pour plus d’informations sur la progression de la réplication, exécutez la cmdlet suivante :

Write-Output $replicatingserver.ProviderSpecificDetail

Vous pouvez suivre la progression de la réplication initiale en utilisant les propriétés Pourcentage de progression de l’amorçage initial dans la sortie.

    "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 réplication se produit dans les cas suivants :

  • Une fois le travail Démarrer la réplication terminé, les machines commencent leur réplication initiale vers Azure.
  • Lors de la réplication initiale, une capture instantanée de machine virtuelle est créée. Les données de disque de la capture instantanée sont répliquées sur des disques managés de réplica dans Azure.
  • Au terme de la réplication initiale, la réplication différentielle commence. Les modifications incrémentielles apportées aux disques locaux sont répliquées régulièrement sur les disques de réplica dans Azure.

Récupérer l’état d’une tâche

Vous pouvez superviser l’état d’une tâche à l’aide de l’applet de commande Get-AzMigrateJob.

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

Mettre à jour les propriétés d’une machine virtuelle de réplication

Migration et modernisation vous permet de changer des propriétés cibles, comme le nom, la taille, le groupe de ressources, la configuration de la carte réseau, etc., pour une machine virtuelle de réplication.

Les propriétés suivantes peuvent être mises à jour pour une machine virtuelle.

Paramètre Catégorie Descriptif
nom de la machine virtuelle Optionnel Spécifiez le nom de la machine virtuelle Azure à créer en utilisant le paramètre TargetVMName.
Taille de la machine virtuelle Optionnel Spécifiez la taille VM Azure à utiliser pour la machine virtuelle de réplication en utilisant le paramètre TargetVMSize. Par exemple, pour migrer une machine virtuelle vers D2_v2 dans Azure, spécifiez TargetVMSize comme valeur de Standard_D2_v2.
Réseau virtuel Optionnel Spécifiez l’ID du réseau virtuel Azure vers lequel la machine virtuelle doit être migrée en utilisant le paramètre TargetNetworkId.
groupe de ressources Optionnel La configuration de la carte réseau peut être spécifiée avec la cmdlet New-AzMigrateNicMapping. Un objet reçoit ensuite une entrée pour le paramètre NicToUpdate dans la cmdlet Set-AzMigrateServerReplication.

- Changer l’allocation IP : afin de spécifier une IP statique pour une carte réseau, fournissez l’adresse IPv4 à utiliser comme IP statique pour la machine virtuelle avec le paramètre TargetNicIP. Pour attribuer dynamiquement une IP à une carte réseau, indiquez auto comme valeur pour le paramètre TargetNicIP.
- Utilisez les valeurs Primary, Secondary ou DoNotCreate pour le paramètre TargetNicSelectionType afin de spécifier si la carte réseau doit être principale ou secondaire, ou si elle ne doit pas être créée sur la machine virtuelle migrée. Une seule carte réseau peut être spécifiée comme carte réseau principale pour la machine virtuelle.
- Pour créer une carte réseau principale, vous devez également spécifier les autres cartes réseau qui doivent être secondaires ou qui ne doivent pas être créées sur la machine virtuelle migrée.
- Pour changer le sous-réseau de la carte réseau, spécifiez le nom du sous-réseau avec le paramètre TargetNicSubnet.
Interface réseau Optionnel Spécifiez le nom de la machine virtuelle Azure à créer en utilisant le paramètre TargetVMName.
Zone de disponibilité Optionnel Pour utiliser des zones de disponibilité, spécifiez la valeur de zone de disponibilité pour le paramètre TargetAvailabilityZone.
Ensemble de disponibilité Optionnel Pour utiliser des groupes à haute disponibilité, spécifiez l’ID du groupe à haute disponibilité pour le paramètre TargetAvailabilitySet.
Étiquettes Optionnel Pour mettre à jour les étiquettes, utilisez les paramètres suivants : UpdateTag ou UpdateVMTag, UpdateDiskTag, UpdateNicTag, et spécifiez le type de l’opération de mise à jour des étiquettes UpdateTagOperation ou UpdateVMTagOperation, UpdateDiskTagOperation, UpdateNicTagOperation. L’opération de mise à jour des étiquettes peut prendre les valeurs suivantes : Merge, Delete et Replace.
Utilisez UpdateTag pour mettre à jour toutes les étiquettes des machines virtuelles, des disques et des cartes réseau.
Utilisez UpdateVMTag pour mettre à jour les étiquettes VM.
Utilisez UpdateDiskTag pour mettre à jour les étiquettes de disque.
Utilisez UpdateNicTag pour mettre à jour les étiquettes de carte réseau.
Utilisez UpdateTagOperation pour mettre à jour l’opération effectuée sur toutes les étiquettes des machines virtuelles, disques et cartes réseau.
Utilisez UpdateVMTagOperation pour mettre à jour les étiquettes VM.
Utilisez UpdateDiskTagOperation pour mettre à jour les étiquettes de disque.
Utilisez UpdateNicTagOperation pour mettre à jour les étiquettes de carte réseau.

L’option replace remplace l’ensemble complet des étiquettes existantes par un nouvel ensemble.
L’option merge permet d’ajouter des étiquettes avec de nouveaux noms et de mettre à jour les valeurs des étiquettes avec des noms existants.
L’option delete permet de supprimer des étiquettes de manière sélective en fonction de noms ou de paires nom/valeur spécifiques.
Disques Optionnel Pour le disque de système d’exploitation :
- Mettez à jour le nom du disque de système d’exploitation en utilisant le paramètre TargetDiskName.

Pour mettre à jour plusieurs disques :
- Utilisez Set-AzMigrateDiskMapping pour définir les noms de disque sur une variable $DiskMapping. Utilisez ensuite le paramètre DiskToUpdate et passez la variable.

L’ID de disque à utiliser dans Set-AzMigrateDiskMapping est la propriété UUID du disque récupérée avec la cmdlet Get-AzMigrateDiscoveredServer.
Nom de la carte réseau Optionnel Utilisez New-AzMigrateNicMapping pour définir les noms de carte réseau sur une variable $NICMapping. Utilisez ensuite le paramètre NICToUpdate et passez la variable.

La cmdlet Get-AzMigrateServerReplication renvoie un travail qui peut être suivi pour monitorer l’état de l’opération.

# 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

Dans l’exemple suivant, nous mettons à jour la configuration de la carte réseau en définissant la première carte réseau comme carte principale et en lui attribuant une IP statique. Nous ignorons la deuxième carte réseau pour la migration, mettons à jour le nom et la taille de la machine virtuelle cible, et personnalisons les noms de carte réseau.

# 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

Dans l’exemple suivant, nous personnalisons le nom de disque.

# 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 

Dans l’exemple suivant, nous ajoutons des étiquettes aux machines virtuelles de réplication.

# 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 

Utilisez l’exemple suivant pour suivre l’état du travail.

# 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

Exécuter un test de migration

Quand la réplication différentielle commence, vous pouvez exécuter une migration de test pour les machines virtuelles avant d’exécuter une migration complète vers Azure. Nous vous recommandons vivement d’effectuer une migration de test au moins une fois pour chaque machine avant sa migration. L’applet de commande retourne une tâche qui peut être suivie pour superviser l’état de l’opération.

  • L’exécution d’une migration de test vérifie que la migration fonctionne comme prévu. Une migration de test n’affecte pas la machine locale, qui reste opérationnelle et continue la réplication.
  • La migration de test simule la migration en créant une machine virtuelle Azure de test à partir des données répliquées. Le test effectue généralement la migration vers un réseau virtuel hors production dans votre abonnement Azure.
  • Vous pouvez utiliser la machine virtuelle Azure de test répliquée pour valider la migration, effectuer des tests d’applications et résoudre les éventuels problèmes avant la migration complète.

Sélectionnez le réseau virtuel Azure à utiliser pour le test en spécifiant l’ID du réseau virtuel avec le paramètre 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

Une fois le test terminé, nettoyez la migration de test avec la cmdlet Start-AzMigrateTestMigrationCleanup. L’applet de commande retourne une tâche qui peut être suivie pour superviser l’état de l’opération.

# 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

Migrer des machines virtuelles

Après avoir vérifié que la migration de test fonctionne comme prévu, vous pouvez migrer le serveur de réplication avec la cmdlet suivante. L’applet de commande retourne une tâche qui peut être suivie pour superviser l’état de l’opération.

Si vous ne voulez pas arrêter le serveur source, n’utilisez pas le paramètre 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

Effectuer la migration

  1. Une fois la migration terminée, arrêtez la réplication de la machine locale et nettoyez les informations d’état de réplication de la machine virtuelle avec la cmdlet suivante. L’applet de commande retourne une tâche qui peut être suivie pour superviser l’état de l’opération.

    # 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. Effectuez les éventuels ajustements post-migration de l’application, comme la mise à jour des chaînes de connexion de base de données et les configurations du serveur web.

  3. Effectuez les tests finaux de réception de l’application et de la migration sur l’application migrée qui s’exécute maintenant dans Azure.

  4. Réduisez le trafic vers l’instance de machine virtuelle Azure migrée.

  5. Supprimez les machines virtuelles locales de votre inventaire des machines virtuelles locales.

  6. Supprimez les machines virtuelles locales des sauvegardes locales.

  7. Mettez à jour la documentation interne en y mentionnant le nouvel emplacement et la nouvelle adresse IP des machines virtuelles Azure.

Bonnes pratiques après la migration