Share via


Creación de una máquina virtual en una zona de disponibilidad con Azure PowerShell y CLI

En este artículo se detalla el uso de cmdlets de Azure PowerShell y la CLI para mover máquinas virtuales de instancia única de Azure de zonas de disponibilidad regionales a zonales. Una zona de disponibilidad es una zona separada físicamente en una región de Azure. Use zonas de disponibilidad para proteger sus datos y aplicaciones de la improbable pérdida o error de todo un centro de datos.

Para usar una zona de disponibilidad, cree la máquina virtual en una región de Azure compatible.

Importante

La configuración del traslado regional a zonal de las máquinas virtuales de instancia única se encuentra actualmente en versión preliminar pública.

Requisitos previos

Compruebe que se cumplen los siguientes requisitos:

Requisito Descripción
Permisos de suscripción Asegúrese de que tiene acceso de Propietario a la suscripción que contiene los recursos que desea trasladar.

La identidad administrada necesita estos permisos:
- Permiso para escribir o crear recursos en la suscripción de usuario, disponibles con el rol Colaborador.
- Permiso para crear asignaciones de roles. Normalmente disponible con los roles Propietario o Administrador de acceso de usuario, con un rol personalizado que tenga las asignaciones de roles o permiso de escritura Microsoft.Authorization asignados. Este permiso no es necesario si ya se concedió a la identidad administrada del recurso compartido de datos acceso al almacén de datos de Azure.
Obtenga más información sobre los roles de Azure.
Soporte técnico de máquina virtual Revisar las regiones admitidas.

- Compruebe la configuración admitida de proceso, almacenamiento y redes.
Estado de mantenimiento de la máquina virtual Las máquinas virtuales que desea trasladar deben estar en un estado correcto antes de intentar el traslado zonal. Asegúrese de que todos los reinicios pendientes y las actualizaciones obligatorias están completos y la máquina virtual funciona y está en un estado correcto antes de intentar el movimiento zonal de la máquina virtual.

Revisión de los requisitos de PowerShell y la CLI

La mayoría de las operaciones de movimiento de recursos son las mismas, independientemente de si se usa Azure Portal o PowerShell o la CLI, con un par de excepciones.

Operación Portal CLI o PowerShell
Crear una colección de transferencia de recursos Se crea automáticamente una colección de transferencia de recursos (una lista de todas las máquinas virtuales regionales que se van a mover). El portal asigna los permisos de identidad necesarios en el back-end. Puede usar cmdlets de PowerShell o cmdlets de la CLI para:
- Asignar una identidad administrada a la colección.
- Agregar máquinas virtuales regionales a la colección.
Operaciones de movimiento de recursos Valida los pasos y valida los cambios de configuración de usuario. Iniciar movimiento inicia el proceso de traslado y crea una copia de la máquina virtual de origen en la zona de destino. También finaliza el traslado de la máquina virtual recién creada en la zona de destino. cmdlets de PowerShell o cmdlets de la CLI para:
- Agregar máquinas virtuales regionales a la colección.
- Resolver dependencias.
- Realizar el movimiento.
- Confirmar el movimiento.

Valores de ejemplo

Usamos estos valores en los ejemplos de script:

Configuración Valor
Id. de suscripción subscription-id
Mover región Este de EE. UU.
Grupo de recursos (contiene los metadatos de la colección de transferencia de recursos) RegionToZone-DemoMCRG
Nombre de la colección de movimiento RegionToZone-DemoMC
Ubicación de la colección de transferencia de recursos eastus2euap
Tipo de identidad Asignada por el sistema
Nombre de la máquina virtual demoVM-MoveResource
Tipo de movimiento RegionToZone

Inicio de sesión en Azure

Inicie sesión en la suscripción a Azure con el comando Connect-AzAccount y siga las instrucciones de la pantalla.

Connect-AzAccount –Subscription "<subscription-id>"

Configuración de la colección de transferencia de recursos

El objeto MoveCollection almacena los metadatos y la información de configuración de los recursos que se quieren mover. Para configurar una colección de transferencia de recursos, haga lo siguiente:

  • Cree un grupo de recursos para la colección de transferencia de recursos.
  • Registre el proveedor de servicios en la suscripción para que se pueda crear el recurso MoveCollection.
  • Cree el objeto MoveCollection con una identidad administrada. Para que el objeto MoveCollection tenga acceso a la suscripción en la que se encuentra el servicio Resource Mover, necesita una identidad administrada asignada por el sistema (antes conocida como identidad de servicio administrada (MSI)) en la que confíe la suscripción.
  • Conceda acceso a la suscripción de Resource mover para la identidad administrada.

Crear el grupo de recursos

Use el siguiente cmdlet para crear un grupo de recursos para la información de configuración y metadatos de colección de transferencia de recursos con New-AzResourceGroup. Un grupo de recursos es un contenedor lógico en el que se implementan y se administran los recursos de Azure.

New-AzResourceGroup -Name "RegionToZone-DemoMCRG" -Location "EastUS"

Salida:

La salida muestra que el disco administrado está en la misma zona de disponibilidad que la máquina virtual:

ResourceGroupName : RegionToZone-DemoMCRG
Location          : eastus
ProvisioningState : Succeeded
Tags              :
                    Name     Value
                    =======  ========
                    Created  20230908

ResourceId        : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG

Registrar el proveedor de recursos

  1. Registre el proveedor de recursos Microsoft.Migrate para que se pueda crear el recurso MoveCollection, como se indica a continuación:

    Register-AzResourceProvider -ProviderNamespace Microsoft.Migrate
    
  2. Espere al registro:

    While(((Get-AzResourceProvider -ProviderNamespace Microsoft.Migrate)| where {$_.RegistrationState -eq "Registered" -and $_.ResourceTypes.ResourceTypeName -eq "moveCollections"}|measure).Count -eq 0)
    {
        Start-Sleep -Seconds 5
        Write-Output "Waiting for registration to complete."
    }
    

Creación de un objeto MoveCollection

Cree un objeto MoveCollection y asígnele una identidad administrada, como se indica a continuación:

New-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC"  -ResourceGroupName "RegionToZone-DemoMCRG" -MoveRegion "eastus" -Location "eastus2euap" -IdentityType "SystemAssigned" -MoveType "RegionToZone"

Salida:

Etag                                   Location    Name
----                                   --------    ----
"3a00c441-0000-3400-0000-64fac1b30000" eastus2euap RegionToZone-DemoMC

Nota:

Para el movimiento regional a zonal, el parámetro MoveType debe establecerse como regionToZone y el parámetro MoveRegion debe establecerse como la ubicación donde residen los recursos que se encuentran en movimiento zonal. Asegúrese de que los parámetros SourceRegion y TargetRegion no sean necesarios y estén establecidos en null.

Concesión de acceso a la identidad administrada

Conceda acceso a la suscripción de Resource mover a la identidad administrada como se indica a continuación. El usuario debe ser propietario de la suscripción.

  1. Recupere los detalles de la identidad del objeto MoveCollection.

    $moveCollection = Get-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG"
    $identityPrincipalId = $moveCollection.IdentityPrincipalId
    
  2. Asigne los roles necesarios a la identidad para que Azure Resource Mover pueda acceder a la suscripción para ayudar a trasladar recursos. Revise la lista de permisos necesarios para el traslado.

    New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName Contributor -Scope "/subscriptions/<subscription-id>""
    New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName "User Access Administrator" -Scope "/subscriptions/<subscription-id>"
    

Adición de máquinas virtuales regionales a la colección de transferencia de recursos

Recupere los identificadores de los recursos de origen existentes que desee trasladar. Cree el objeto de configuración de recursos de destino y, a continuación, agregue recursos a la colección de transferencia de recursos.

Nota:

Los recursos agregados a una colección de transferencia de recursos deben estar en la misma suscripción, pero pueden estar en distintos grupos de recursos.

  1. Cree el objeto de configuración de recursos de destino de la siguiente manera:

    $targetResourceSettingsObj = New-Object Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings
    $targetResourceSettingsObj.ResourceType = "Microsoft.Compute/virtualMachines"
    $targetResourceSettingsObj.TargetResourceName = "RegionToZone-demoTargetVm"
    $targetResourceSettingsObj.TargetAvailabilityZone = "2"
    

    Salida

    ResourceType                      TargetResourceGroupName TargetResourceName        TargetAvailabilitySetId TargetAvailabilityZone TargetVMSize UserManagedIdentity
    ------------                      ----------------------- ------------------        ----------------------- ---------------------- ------------ -------------------
    Microsoft.Compute/virtualMachines                         RegionToZone-demoTargetVm                         2
    
  2. Adición de recursos

    Add-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -SourceId "/subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm" -Name "demoVM-MoveResource" -ResourceSetting $targetResourceSettingsObj
    

    Salida

    DependsOn                         : {}
    DependsOnOverride                 : {}
    ErrorsPropertiesCode              :
    ErrorsPropertiesDetail            :
    ErrorsPropertiesMessage           :
    ErrorsPropertiesTarget            :
    ExistingTargetId                  :
    Id                                : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/Re
                                        gionToZone-DemoMC/moveResources/demoVM-MoveResource
    IsResolveRequired                 : False
    JobStatusJobName                  :
    JobStatusJobProgress              :
    MoveStatusErrorsPropertiesCode    : DependencyComputationPending
    MoveStatusErrorsPropertiesDetail  : {}
    MoveStatusErrorsPropertiesMessage : The dependency computation is not completed for resource - /subscriptions/<Subscription-id>/resourcegroups/PS-demo-R
                                        egionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm'.
                                            Possible Causes: Dependency computation is pending for resource.
                                            Recommended Action: Validate dependencies to compute the dependencies.
    
    MoveStatusErrorsPropertiesTarget  :
    MoveStatusMoveState               : MovePending
    Name                              : demoVM-MoveResource
    ProvisioningState                 : Succeeded
    ResourceSetting                   : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings
    SourceId                          : /subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/
                                        RegionToZone-demoSourceVm
    SourceResourceSetting             : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings
    SystemDataCreatedAt               : 9/8/2023 6:48:11 AM
    SystemDataCreatedBy               : xxxxx@microsoft.com
    SystemDataCreatedByType           : User
    SystemDataLastModifiedAt          : 9/8/2023 6:48:11 AM
    SystemDataLastModifiedBy          : xxxxx@microsoft.com
    SystemDataLastModifiedByType      : User
    TargetId                          :
    Type                              :
    

Modificar la configuración

Puede modificar la configuración de destino al mover las máquinas virtuales de Azure y los recursos asociados. Se recomienda cambiar la configuración de destino únicamente después de validar la colección de transferencia de recursos.

Las configuraciones que puede modificar son:

  • Configuración de máquina virtual: grupo de recursos, nombre de máquina virtual, zona de disponibilidad de máquina virtual, SKU de máquina virtual, almacén de claves de máquina virtual y conjunto de cifrado de disco.
  • Configuración de recursos de red: para interfaces de red, redes virtuales (VNet/) e interfaces de red o grupos de seguridad de red, puede:
    • - Usar un recurso de red existente en la región de destino.
    • Crear otro recurso con un nombre diferente.
  • IP pública/Equilibrador de carga: SKU y zona.

Modifique la configuración de la manera siguiente:

  1. Recupere el recurso de movimiento para el que desea editar las propiedades. Por ejemplo, para recuperar una ejecución de máquina virtual:

    $moveResourceObj = Get-AzResourceMoverMoveResource -MoveCollectionName " RegionToZone-DemoMCRG " -ResourceGroupName " RegionToZone-DemoMC " -Name "PSDemoVM"
    
  2. Copie la configuración del recurso en un objeto de configuración de recurso de destino.

    $TargetResourceSettingObj = $moveResourceObj.ResourceSetting
    
  3. Establezca el parámetro en el objeto de configuración del recurso de destino. Por ejemplo, para cambiar el nombre de la máquina virtual de destino:

    $TargetResourceSettingObj.TargetResourceName="PSDemoVM-target"
    
  4. Actualice la configuración de destino del recurso de movimiento. En este ejemplo, se cambia el nombre de la máquina virtual de PSDemoVM a PSDemoVMTarget.

    Update-AzResourceMoverMoveResource -ResourceGroupName " RegionToZone-DemoMCRG " -MoveCollectionName " RegionToZone-DemoMC -SourceId "/subscriptions/<Subscription-d>/resourceGroups/PSDemoRM/providers/Microsoft.Compute/virtualMachines/PSDemoVM" -Name "PSDemoVM" -ResourceSetting $TargetResourceSettingObj
    

Resolución de dependencias

Compruebe si las máquinas virtuales regionales que ha agregado tienen dependencias en otros recursos y agréguelos según sea necesario.

  1. Resuelva las dependencias de la siguiente manera:

    Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
    

    Salida (cuando existen dependencias)

    AdditionalInfo :
    Code           :
    Detail         :
    EndTime        : 9/8/2023 6:52:14 AM
    Id             : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/o
                     perations/bc68354b-ec1f-44cb-92ab-fb3b4ad90229
    Message        :
    Name           : bc68354b-ec1f-44cb-92ab-fb3b4ad90229
    Property       : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
    StartTime      : 9/8/2023 6:51:50 AM
    Status         : Succeeded
    
  2. Para obtener una lista de los recursos agregados a la colección de transferencia de recursos:

    $list = Get-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" $list.Name
    

    Salida:

    demoVM-MoveResource
    mr_regiontozone-demosourcevm661_d6f18900-3b87-4fb5-9bdf-12da2f9fb185
    mr_regiontozone-demosourcevm-vnet_d8536bf5-2d5f-4778-9650-32d0570bc41a
    mr_regiontozone-demosourcevm-ip_6af03f1f-eae8-4541-83f5-97a2506cfc3e
    mr_regiontozone-demosourcevm-nsg_98d68420-d7ff-4e2d-b758-25a6df80fca7
    mr_nrms-timkbo3hy3nnmregiontozone-demosourcevm-vnet_f474c880-4823-4ed3-b761-96df6500f6a3
    
  3. Para quitar recursos de la colección de recursos, siga estas instrucciones.

Inicio del traslado de recursos de máquina virtual

Invoke-AzResourceMoverInitiateMove -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource") -MoveResourceInputType "MoveResourceId"

Salida

AdditionalInfo :
Code           :
Detail         :
EndTime        : 9/8/2023 7:07:58 AM
Id             : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/o
                 perations/d3e06ac3-a961-4045-8301-aee7f6911160
Message        :
Name           : d3e06ac3-a961-4045-8301-aee7f6911160
Property       : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
StartTime      : 9/8/2023 7:01:31 AM
Status         : Succeeded

Commit

Después del movimiento inicial, debe confirmar el movimiento o descartarlo. Confirmar completa el traslado a la región de destino.

Confirme el traslado de la siguiente manera:

Invoke-AzResourceMover-VMZonalMoveCommit -ResourceGroupName "RG-MoveCollection-demoRMS" -MoveCollectionName "PS-centralus-westcentralus-demoRMS" -MoveResource $('psdemovm111', 'PSDemoRM-vnet','PSDemoVM-nsg', ‘PSDemoVM’) -MoveResourceInputType "MoveResourceId"

Salida:

AdditionalInfo : 
Code           : 
Detail         : 
EndTime        : 9/22/2023 5:26:55 AM 
Id             : /subscriptions/e80eb9fa-c996-4435-aa32-5af6f3d3077c/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/operations/35dd1d93-ba70-4dc9-a17f-7d8ba48678d8 
Message        : 
Name           : 35dd1d93-ba70-4dc9-a17f-7d8ba48678d8 
Property       : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any 
StartTime      : 9/22/2023 5:26:54 AM 
Status         : Succeeded 

Eliminación de máquinas virtuales regionales de origen.

Después de confirmar el traslado y comprobar que los recursos funcionan según lo previsto en la región de destino, puede eliminar cada recurso de origen mediante:

Pasos siguientes

Aprenda a mover máquinas virtuales de Azure de instancia única de configuración regional a zonal a través del portal.