Compartir a través de


Migración de máquinas virtuales de VMware a Azure (sin agente): PowerShell

En este artículo, aprenderá a migrar máquinas virtuales (VM) de VMware detectadas con el método sin agente mediante Azure PowerShell para Migración y modernización.

Nota:

Esta documentación de escenario de migración de VMware de un extremo a otro está actualmente en versión preliminar. Para más información sobre el uso de Azure Migrate, consulte la Documentación del producto de Azure Migrate.

Aprenderá a:

  • Recuperar máquinas virtuales de VMware detectadas en un proyecto de Azure Migrate.
  • Iniciar la replicación de las máquinas virtuales.
  • Actualizar las propiedades para replicar máquinas virtuales.
  • Supervisar la replicación.
  • Ejecute una migración de prueba para asegurarse de que todo funciona de la forma esperada.
  • Ejecutar una migración completa de la máquina virtual.

Nota:

En los tutoriales se muestra la ruta de implementación más sencilla para un escenario, de modo que pueda configurar rápidamente una prueba de concepto. En ellos se usan las opciones predeterminadas siempre que es posible y no muestran todos los valores y rutas de acceso posibles.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Requisitos previos

Antes de comenzar este tutorial, debe:

Instalación del módulo de PowerShell de Azure Migrate

El módulo de PowerShell de Azure Migrate está disponible como parte de Azure PowerShell (Az). Ejecute el comando Get-InstalledModule -Name Az.Migrate para comprobar si el módulo Azure Migrate de PowerShell está instalado en la máquina.

Inicie sesión en la suscripción de Azure

Inicie sesión en su suscripción de Azure con el cmdlet Connect-AzAccount.

Connect-AzAccount

Selección de su suscripción a Azure

Use el cmdlet Get-AzSubscription para obtener la lista de suscripciones de Azure a las que tiene acceso. Seleccione la suscripción de Azure donde trabajará con el proyecto de Azure Migrate mediante el cmdlet Set-AzContext.

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

Recuperación del proyecto de Azure Migrate

El proyecto de Azure Migrate se usa para almacenar los metadatos de detección, valoración y migración recopilados del entorno que se va a evaluar o migrar. En un proyecto, puede realizar un seguimiento de los recursos detectados, coordinar valoraciones y realizar migraciones.

Como parte de los requisitos previos, ya ha creado un proyecto de Azure Migrate. Con el cmdlet Get-AzMigrateProject puede recuperar los detalles de un proyecto de Azure Migrate. Debe especificar el nombre del proyecto de Azure Migrate (Name) y el del grupo de recursos de ese proyecto (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

Recuperación de las máquinas virtuales detectadas en un proyecto de Azure Migrate

Azure Migrate and Modernize usa un dispositivo de Azure Migrate ligero. Como parte de los requisitos previos, ya ha implementado el dispositivo de Azure Migrate como una máquina virtual de VMware.

Para recuperar una máquina virtual de VMware específica en un proyecto de Azure Migrate, especifique el nombre del proyecto de Azure Migrate (ProjectName), el grupo de recursos del proyecto (ResourceGroupName) y el nombre de la máquina virtual (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

En este tutorial, vamos a migrar esta máquina virtual.

También puede recuperar todas las máquinas virtuales de VMware en un proyecto Azure Migrate mediante los parámetros ProjectName y ResourceGroupName.

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

Si tiene varios dispositivos en un proyecto de Azure Migrate, puede usar los parámetros ProjectName, ResourceGroupName y ApplianceName para recuperar todas las máquinas virtuales detectadas mediante un dispositivo de Azure Migrate específico.

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

Inicialización de la infraestructura de replicación

Migración y modernización usa varios recursos de Azure para migrar máquinas virtuales. Migración y modernización aprovisiona los recursos siguientes en el mismo grupo de recursos que el proyecto.

  • Service Bus: la herramienta Migración y modernización usa Service Bus para enviar mensajes de orquestación de replicación al dispositivo.
  • Cuenta de almacenamiento de puerta de enlace: la herramienta Migración y modernización usa la cuenta de almacenamiento de puerta de enlace para almacenar información del estado de las máquinas virtuales que se replican.
  • Cuenta de almacenamiento de registros: el dispositivo con Azure Migrate carga los registros de replicación de las máquinas virtuales en una cuenta de almacenamiento de registros. Azure Migrate aplica la información de replicación a los discos administrados de réplica.
  • Almacén de claves: el dispositivo de Azure Migrate usa el almacén de claves para administrar las cadenas de conexión de Service Bus y las claves de acceso de las cuentas de almacenamiento utilizadas en la replicación.

Antes de replicar la primera máquina virtual en el proyecto de Azure Migrate, ejecute el comando siguiente para aprovisionar la infraestructura de replicación. Este comando aprovisiona y configura los recursos anteriores para que pueda empezar a realizar la migración de las máquinas virtuales de VMware.

Nota:

Un proyecto de Azure Migrate solo admite migraciones a una región de Azure. Una vez ejecutado este script, no se puede cambiar la región de destino a la que quiere migrar las máquinas virtuales de VMware. Si configura un nuevo dispositivo en el proyecto de Azure Migrate, debe ejecutar el comando Initialize-AzMigrateReplicationInfrastructure.

En el artículo, inicializamos la infraestructura de replicación para poder migrar nuestras máquinas virtuales a la región Central US.

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

Replicación de máquinas virtuales

Una vez terminadas la detección y la inicialización de la infraestructura de replicación, puede empezar la replicación de las máquinas virtuales de VMware en Azure. Puede ejecutar hasta 500 replicaciones simultáneamente.

Para especificar las propiedades de replicación, use la tabla siguiente.

Parámetro Tipo Descripción
Suscripción y grupo de recursos de destino Mandatory Especifique la suscripción y el grupo de recursos a los que se debe migrar la máquina virtual; para ello, proporcione el identificador del grupo de recursos mediante el parámetro TargetResourceGroupId.
Red virtual y subred de destino Mandatory Especifique el identificador de la instancia de Azure Virtual Network y el nombre de la subred donde se debe migrar la máquina virtual mediante los parámetros TargetNetworkId y TargetSubnetName respectivamente.
Identificador de la máquina Mandatory Especifique el identificador de la máquina detectada que debe replicarse y migrarse. Use InputObject para especificar el objeto de máquina virtual detectada para la replicación.
Nombre de máquina virtual de destino Mandatory Especifique el nombre de la máquina virtual de Azure que se va a crear mediante el parámetro TargetVMName.
Tamaño de la máquina virtual de destino Mandatory Especifique el tamaño de máquina virtual de Azure que se usará en la máquina virtual de replicación con el parámetro TargetVMSize. Por ejemplo, para realizar la migración de una máquina virtual a una máquina virtual D2_v2 de Azure, especifique el valor de TargetVMSize como Standard_D2_v2.
Licencia Mandatory Para usar la Ventaja híbrida de Azure en las máquinas con Windows Server que se incluyen en las suscripciones activas de Software Assurance o Windows Server, especifique el valor del parámetro LicenseType como WindowsServer. En otros casos, especifique el valor NoLicenseType.
Disco del sistema operativo Mandatory Especifique el identificador único del disco que tiene el cargador de arranque y el instalador del sistema operativo. El identificador de disco que se va a usar es la propiedad de identificador único (UUID) del disco recuperado mediante el cmdlet Get-AzMigrateDiscoveredServer.
Tipo de disco Mandatory Especifique el tipo de disco que se va a usar.
Redundancia de la infraestructura Opcionales Especifique la opción de redundancia de infraestructura de la siguiente manera:

- Zona de disponibilidad: ancla la máquina migrada a una zona de disponibilidad específica de la región. Use esta opción para distribuir los servidores que forman una capa de aplicación de varios nodos entre zonas de disponibilidad. Esta opción solo está disponible si la región de destino seleccionada para la migración admite zonas de disponibilidad. Para usar zonas de disponibilidad, especifique el valor de la zona de disponibilidad en el parámetro TargetAvailabilityZone.
- Conjunto de disponibilidad: coloca la máquina migrada en un conjunto de disponibilidad. Para usar esta opción, el grupo de recursos de destino seleccionado debe tener uno o varios conjuntos de disponibilidad. Para usar un conjunto de disponibilidad, especifique el identificador del conjunto de disponibilidad en el parámetro TargetAvailabilitySet.
Cuenta de almacenamiento de diagnóstico de arranque Opcionales Para usar una cuenta de almacenamiento de diagnóstico de arranque, especifique el identificador en el parámetro TargetBootDiagnosticStorageAccount.
- La cuenta de almacenamiento que se usa para el diagnóstico de arranque debe estar en la misma suscripción a la que se van a migrar las máquinas virtuales.
- De forma predeterminada, no se establece ningún valor para este parámetro.
Etiquetas Opcionales Agregue etiquetas a las máquinas virtuales, las NIC y los discos migrados.
Utilice Tag para agregar etiquetas a las máquinas virtuales, los discos y las NIC o:
- Use VMTag para agregar etiquetas a las máquinas virtuales migradas.
- Use DiskTag para agregar etiquetas a los discos.
Utilice NicTag para agregar etiquetas a las interfaces de red.
Por ejemplo, agregue las etiquetas necesarias a la variable $tags y pase la variable en el parámetro requerido: $tags = @{Organization=”Contoso”}.

Replicación de máquinas virtuales con todos los discos

En este tutorial, replicamos todos los discos de la máquina virtual detectada y se especifica un nombre nuevo para la máquina virtual en Azure. Especificamos el primer disco del servidor detectado como disco del sistema operativo y migramos todos los discos como HDD estándar. Este es el disco que tiene el cargador de arranque y el instalador del sistema operativo. El cmdlet devuelve un trabajo cuyo seguimiento se puede realizar para supervisar el estado de la operación.

# 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

Replicación de máquinas virtuales con discos seleccionados

También puede replicar de forma selectiva los discos de la máquina virtual detectada mediante el cmdlet New-AzMigrateDiskMapping y proporcionar esto como entrada para el parámetro DiskToInclude en el cmdlet New-AzMigrateServerReplication. También puede usar el cmdlet New-AzMigrateDiskMapping para especificar otros tipos de discos de destino para cada disco que se va a replicar.

Especifique valores para los siguientes parámetros del cmdlet New-AzMigrateDiskMapping:

  • DiskId: especifique el identificador único del disco que se va a migrar. El identificador de disco que se va a usar es la propiedad UUID del disco recuperado mediante el cmdlet Get-AzMigrateDiscoveredServer.
  • IsOSDisk: especifique true si el disco que se va a migrar es el disco del sistema operativo de la máquina virtual. De lo contrario, especifique false.
  • DiskType: especifique el tipo de disco que se va a usar en Azure.

En el ejemplo siguiente, replicamos solo dos discos de la máquina virtual detectada. Especificamos el disco del sistema operativo y usamos tipos de disco diferentes para cada disco que se va a replicar. El cmdlet devuelve un trabajo cuyo seguimiento se puede realizar para supervisar el estado de la operación.

# 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

Supervisión de la replicación

La replicación se produce en los casos siguientes:

  • Cuando el trabajo de inicio de replicación finaliza correctamente, las máquinas comienzan su replicación inicial en Azure.
  • Durante la replicación inicial, se crea una instantánea de la máquina virtual. Los datos de disco de la instantánea se replican en los discos administrados de réplica en Azure.
  • Cuando finaliza esta replicación inicial, comienza la replicación diferencial. Los cambios incrementales de los discos locales se replican periódicamente en los discos de réplica de Azure.

Realice el seguimiento de la replicación mediante el 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

Puede realizar un seguimiento de las propiedades Migration State y Migration State Description en la salida.

  • En la replicación inicial, los valores de las propiedades Migration State y Migration State Description son InitialSeedingInProgress e Initial replication, respectivamente.
  • En la replicación diferencial, los valores de las propiedades Migration State y Migration State Description son Replicating y Ready to migrate, respectivamente.
  • Una vez terminada la migración, los valores de las propiedades Migration State y Migration State Description son Migration succeeded y Migrated, respectivamente.
AllowedOperation            : {DisableMigration, TestMigrate, Migrate}
CurrentJobId                : /Subscriptions/xxx/resourceGroups/xxx/providers/Micr
                              osoft.RecoveryServices/vaults/xxx/replicationJobs/None
CurrentJobName              : None
CurrentJobStartTime         : 1/1/1753 1:01:01 AM
EventCorrelationId          : 9d435c55-4660-41a5-a8ed-dd74213d85fa
Health                      : Normal
HealthError                 : {}
Id                          : /Subscriptions/xxx/resourceGroups/xxx/providers/Micr
                              osoft.RecoveryServices/vaults/xxx/replicationFabrics/xxx/replicationProtectionContainers/xxx/
                              replicationMigrationItems/10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_5009e941-3e40-
                              39b2-1e14-f90584522703
LastTestMigrationStatus     :
LastTestMigrationTime       :
Location                    :
MachineName                 : MyTestVM
MigrationState              : InitialSeedingInProgress
MigrationStateDescription   : Initial replication
Name                        : 10-150-8-52-b090bef3-b733-5e34-bc8f-eb6f2701432a_5009e941-3e40-39b2-1e14-f90584522703
PolicyFriendlyName          : xxx
PolicyId                    : /Subscriptions/xxx/resourceGroups/xxx/providers/Micr
                              osoft.RecoveryServices/vaults/xxx/replicationPolicies/xxx
ProviderSpecificDetail      : Microsoft.Azure.PowerShell.Cmdlets.Migrate.Models.Api20180110.VMwareCbtMigrationDetails
TestMigrateState            : None
TestMigrateStateDescription : None
Type                        : Microsoft.RecoveryServices/vaults/replicationFabrics/replicationProtectionContainers/replicationMigrationItems

Para obtener más información sobre el progreso de la replicación, ejecute el siguiente cmdlet:

Write-Output $replicatingserver.ProviderSpecificDetail

Puede realizar un seguimiento del progreso de la replicación inicial mediante las propiedades Initial Seeding Progress Percentage en la salida.

    "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 replicación se produce en los casos siguientes:

  • Cuando el trabajo de inicio de replicación finaliza correctamente, las máquinas comienzan su replicación inicial en Azure.
  • Durante la replicación inicial, se crea una instantánea de la máquina virtual. Los datos de disco de la instantánea se replican en los discos administrados de réplica en Azure.
  • Cuando finaliza esta replicación inicial, comienza la replicación diferencial. Los cambios incrementales de los discos locales se replican periódicamente en los discos de réplica de Azure.

Recuperación del estado de un trabajo

Puede supervisar el estado de un trabajo mediante el cmdlet Get-AzMigrateJob.

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

Actualización de las propiedades de una máquina virtual de replicación

Migración y modernización permite cambiar las propiedades de destino, como el nombre, el tamaño, el grupo de recursos, la configuración de NIC, etc., para una máquina virtual de replicación.

Para una máquina virtual se pueden actualizar las propiedades siguientes.

Parámetro Tipo Descripción
Nombre de la máquina virtual Opcionales Especifique el nombre de la máquina virtual de Azure que se va a crear mediante el parámetro TargetVMName.
Tamaño de VM Opcionales Especifique el tamaño de máquina virtual de Azure que se usará en la máquina virtual de replicación con el parámetro TargetVMSize. Por ejemplo, para realizar la migración de una máquina virtual a una máquina virtual D2_v2 de Azure, especifique el valor de TargetVMSize como Standard_D2_v2.
Red virtual Opcionales Especifique el identificador de la red virtual de Azure a la que se debe migrar la máquina virtual mediante el parámetro TargetNetworkId.
Resource group Opcionales La configuración de la NIC se puede especificar mediante el cmdlet New-AzMigrateNicMapping. Después, el objeto se pasa como entrada al parámetro NicToUpdate del cmdlet Set-AzMigrateServerReplication.

- Cambiar asignación de IP: para especificar una dirección IP estática para una NIC, proporcione la dirección IPv4 que se usará como IP estática para la máquina virtual mediante el parámetro TargetNicIP. Para asignar dinámicamente una dirección IP para una NIC, proporcione auto como valor del parámetro TargetNicIP.
-Use los valores Primary, Secondary o DoNotCreate para el parámetro TargetNicSelectionType con el fin de especificar si la NIC debe ser principal, secundaria o no se debe crear en la máquina virtual migrada. Solo se puede especificar una NIC como principal de la máquina virtual.
-Para que una NIC sea principal, también debe especificar las otras NIC que se deben convertir en secundarias o que no se deben crear en la máquina virtual migrada.
-Para cambiar la subred de la NIC, especifique el nombre de la subred mediante el parámetro TargetNicSubnet.
Interfaz de red Opcionales Especifique el nombre de la máquina virtual de Azure que se va a crear mediante el parámetro TargetVMName.
Zona de disponibilidad Opcionales Para usar zonas de disponibilidad, especifique el valor de la zona de disponibilidad en el parámetro TargetAvailabilityZone.
El conjunto de disponibilidad Opcionales Para usar conjuntos de disponibilidad, especifique el identificador del conjunto de disponibilidad en el parámetro TargetAvailabilitySet.
Etiquetas Opcionales Para actualizar las etiquetas, utilice los siguientes parámetros: UpdateTag, UpdateVMTag, UpdateDiskTag o UpdateNicTag, y el tipo de operación de actualización de etiqueta: UpdateTagOperation, UpdateVMTagOperation, UpdateDiskTagOperation o UpdateNicTagOperation. La operación de actualización de etiqueta toma los siguientes valores: Merge, Delete y Replace.
Utilice UpdateTag para actualizar todas las etiquetas de las máquinas virtuales, los discos y las NIC.
Use UpdateVMTag para actualizar las etiquetas de máquina virtual.
Use UpdateDiskTag para actualizar las etiquetas de disco.
Use UpdateNicTag para actualizar etiquetas de NIC.
Utilice UpdateTagOperation para actualizar la operación de todas las etiquetas de las máquinas virtuales, los discos y las NIC.
Use UpdateVMTagOperation para actualizar las etiquetas de máquina virtual.
Use UpdateDiskTagOperation para actualizar las etiquetas de disco.
Use UpdateNicTagOperation para actualizar etiquetas de NIC.

La opción replace reemplaza todo el conjunto de etiquetas por otro nuevo.
La opción merge permite agregar etiquetas con nuevos nombres y actualizar los valores de las que tienen nombres que ya existen.
La opción delete permite eliminar etiquetas de forma selectiva en función de nombres o pares nombre-valor específicos.
Discos Opcionales En el disco del sistema operativo:
Actualice el nombre del disco del sistema operativo utilizando el parámetro TargetDiskName.

Para actualizar varios discos:
- Use Set-AzMigrateDiskMapping para establecer los nombres de disco en una variable $DiskMapping. A continuación, use el parámetro DiskToUpdate y pase la variable.

El identificador de disco que se va a usar en Set-AzMigrateDiskMapping es la propiedad UUID del disco recuperado mediante el cmdlet Get-AzMigrateDiscoveredServer.
Nombre de la NIC Opcionales Use New-AzMigrateNicMapping para establecer los nombres de NIC en una variable $NICMapping. A continuación, use el parámetro NICToUpdate y pase la variable.

El cmdlet Get-AzMigrateServerReplication devuelve un trabajo cuyo seguimiento se puede realizar para supervisar el estado de la operación.

# 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

En el ejemplo siguiente, actualizamos la configuración de la NIC; convertimos la primera NIC en principal y le asignamos una dirección IP estática. Descartamos la segunda NIC para la migración, actualizamos el nombre y el tamaño de la máquina virtual de destino, y personalizamos los nombres de NIC.

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

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

En el ejemplo siguiente, personalizamos el nombre 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 

En el ejemplo siguiente, agregamos etiquetas a las máquinas virtuales de replicación.

# 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 

Utilice el ejemplo siguiente para seguir el estado del trabajo.

# 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

Ejecutar una migración de prueba

Cuando comienza la replicación diferencial, puede ejecutar una migración de prueba para las máquinas virtuales antes de ejecutar una migración completa a Azure. Se recomienda encarecidamente al menos una migración de prueba en cada máquina antes de migrarla. El cmdlet devuelve un trabajo cuyo seguimiento se puede realizar para supervisar el estado de la operación.

  • Durante la ejecución de la migración de prueba, se comprueba que funciona según lo previsto. La migración de prueba no afecta a la máquina local, que sigue operativa y continúa la replicación.
  • La migración de prueba simula la migración mediante la creación de una máquina virtual de Azure con datos replicados. La prueba normalmente realiza una migración a una red virtual de Azure que no es de producción de la suscripción de Azure.
  • Puede usar la máquina virtual de Azure de prueba replicada para validar la migración, realizar pruebas de aplicaciones y resolver los problemas antes de la migración completa.

Seleccione la red virtual de Azure que se va a usar para las pruebas; para ello, especifique el identificador de la red virtual mediante el parámetro TestNetworkID.

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

Una vez completadas las pruebas, limpie la migración de prueba con el cmdlet Start-AzMigrateTestMigrationCleanup. El cmdlet devuelve un trabajo cuyo seguimiento se puede realizar para supervisar el estado de la operación.

# 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

Migración de máquinas virtuales

Después de comprobar que la migración de prueba funciona según lo previsto, puede migrar el servidor de replicación con el cmdlet siguiente. El cmdlet devuelve un trabajo cuyo seguimiento se puede realizar para supervisar el estado de la operación.

Si no quiere apagar el servidor de origen, no utilice el parámetro TurnOffSourceServer.

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

Completar la migración

  1. Una vez finalizada la migración, detenga la replicación de la máquina local y limpie la información del estado de replicación de la máquina virtual con el siguiente cmdlet. El cmdlet devuelve un trabajo cuyo seguimiento se puede realizar para supervisar el estado de la operación.

    # 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. Realice los ajustes de la aplicación posteriores a la migración, como actualizar las cadenas de conexión de la base de datos y las configuraciones del servidor web.

  3. Realice las pruebas finales de la aplicación y la aceptación de la migración en la aplicación migrada que ahora se ejecuta en Azure.

  4. Pase el tráfico a la instancia de máquina virtual de Azure migrada.

  5. Quite las máquinas virtuales locales del inventario de máquinas virtuales local.

  6. Quite las máquinas virtuales locales de las copias de seguridad locales.

  7. Actualice la documentación interna para mostrar la nueva ubicación y la dirección IP las máquinas virtuales de Azure.

Procedimientos recomendados después de la migración