Migrar uma máquina virtual regional para uma zona de disponibilidade (Pré-visualização)

Aplica-se a: ✔️ Linux VMs ✔️ Windows VMs

Observação

Os passos de migração mencionados neste artigo não se aplicam a máquinas virtuais num conjunto de disponibilidade. Se precisar de mover máquinas virtuais num grupo de disponibilidade, consulte Migrar grupos de disponibilidade para Conjuntos de Dimensionamento de Máquinas Virtuais

Este artigo descreve como migrar uma Máquina Virtual Azure (VM) de uma implementação regional (não zonal) para uma zona de disponibilidade específica, preservando o nome da VM, os discos de dados e outras propriedades com estado.

Importante

A migração de regional para VM zonal está atualmente em Prévia Pública. As pré-visualizações são disponibilizadas a si na condição de concordar com os termos suplementares de utilização. Alguns aspetos desta funcionalidade podem alterar-se após a disponibilidade geral (GA).

Esta funcionalidade de migração ainda não está disponível no portal Azure.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

  • Subscrição do Azure com a funcionalidade de pré-visualização de migração registada
  • Papel de colaborador ou superior no grupo de recursos que contém a máquina virtual
  • CLI do Azure 2.72.0 ou posterior, ou Azure PowerShell módulo Az instalado
  • Uma VM regional (não zonal) existente que deseja migrar
  • A zona de disponibilidade alvo deve suportar o tamanho atual da VM no alvo

Registe-se na funcionalidade de pré-visualização

A funcionalidade de migração requer registo. Registe a RegionalToZonalVMMigrationForDeallocatedVM funcionalidade de pré-visualização para a tua subscrição:

# Set your subscription context
az account set --subscription "<subscription-name-or-id>"

# Register the migration feature
az feature register --namespace Microsoft.Compute --name RegionalToZonalVMMigrationForDeallocatedVM

# Check registration status (wait for "Registered" state)
az feature show --namespace Microsoft.Compute --name RegionalToZonalVMMigrationForDeallocatedVM --query properties.state -o tsv

Observação

O registo de funcionalidades pode demorar vários minutos a concluir. Espere até que o estado indique Registado antes de avançar.

Visão geral da migração

O processo de migração consiste nos seguintes passos:

  1. Desalocar a VM - Parar e desalocar a VM regional
  2. Atualizar a atribuição de zonas - Atribuir a VM a uma zona de disponibilidade específica
  3. Iniciar a VM - Ligar a VM na nova zona
  4. (Opcional) Anexar a um Conjunto de Escala de Máquina Virtual - Adicionar a VM zonal a um conjunto de escalas com Orquestração Flexível

Importante

  • A VM deve ser desalocada antes da atribuição de zona. Planeje o tempo de inatividade de acordo.
  • As VMs podem ser iniciadas imediatamente após a conclusão da atribuição de zonas.
  • A migração é uma operação unidirecional. Não podes migrar uma VM zonal de volta para uma implementação regional.

Configurações suportadas

Rotas migratórias

Source Target Description
Máquina Virtual Regional Zonal VM VM colocada numa zona de disponibilidade específica (1, 2 ou 3)
Máquina Virtual Regional VM zonal num conjunto de escalas de máquinas virtuais VM colocada numa zona e ligada a um conjunto de escala flexível
VM Regional num Grupo de Colocação de Proximidade Zonal VM A VM foi transferida para uma zona onde o Grupo de Colocação de Proximidade foi removido.

Limitações

As seguintes configurações não são suportadas para migração:

  • VMs com endereços IP públicos básicos - Atualizar para o SKU Standard antes da migração
  • As VMs atrás de um Balanceador de Carga Basic - Faça a atualização para um Balanceador de Carga Standard antes da migração
  • VMs com discos não geridos - Converter para discos geridos antes da migração

Passo 1: Desalocar a VM

Antes de atualizar a atribuição de zonas, a VM deve estar totalmente desalocada:

az vm deallocate --resource-group "<resource-group-name>" --name "<vm-name>"

Verifica se a VM está no estado de Parada (desalocada) antes de prosseguir.

Passo 2: Atualizar a atribuição de zonas

Atribui a VM a uma zona de disponibilidade específica. Escolha a opção apropriada com base na configuração da sua VM.

Atribuição padrão de zonas

Para VMs (máquinas virtuais) que não estão num Grupo de Colocação de Proximidade:

az vm update \
  --resource-group "<resource-group-name>" \
  --name "<vm-name>" \
  --set zones='["<target-zone>"]'

Atribuição de zonas com remoção do Grupo de Posicionamento de Proximidade

Se a sua VM estiver atualmente num Grupo de Colocação de Proximidade, deve remover a associação do Grupo de Colocação de Proximidade durante a atribuição de zonas:

az vm update \
  --resource-group "<resource-group-name>" \
  --name "<vm-name>" \
  --set zones='["<target-zone>"]' \
  --ppg ""

Uma atribuição de zona bem-sucedida devolve o código de estado HTTP 200.

Dica

A disponibilidade das zonas varia consoante a região. Para verificar quais as zonas disponíveis para o tamanho da sua VM numa região específica, execute:

az vm list-skus --location "<region>" --zone --resource-type virtualMachines --output table

Passo 3: Iniciar a VM

Após a atribuição da zona, a VM fica num estado de Parada (desalocada ). Inicie a VM:

az vm start --resource-group "<resource-group-name>" --name "<vm-name>"

Observação

Podes iniciar a VM imediatamente após a atribuição da zona terminar. A migração de dados continua de forma transparente em segundo plano.

Passo 4 (Opcional): Anexar a VM a um conjunto de escalas de máquina virtual

Depois de migrar a VM para uma zona de disponibilidade, pode opcionalmente ligá-la a um Conjunto de Escala de Máquina Virtual com orquestração flexível para capacidades de gestão melhoradas, como autoescalabilidade e atualizações contínuas.

Pré-requisitos para ligações a conjuntos de escalas

  • O conjunto de escalas deve usar o modo de orquestração flexível
  • O conjunto de escalas deve estar na mesma região da VM
  • A configuração de zona de escala deve incluir a zona atribuída à VM
  • Para conjuntos de escala com contagem de domínio de falha igual a 1, singlePlacementGroup deve ser definido para false

Uma VM regional não tem uma propriedade acessível diretamente, por isso use PATCH para atualizar a propriedade como um objeto JSON no recurso subjacente da VM.

az resource update \
  --ids "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachines/<vm-name>" \
  --set 'properties.virtualMachineScaleSet={"id":"/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachineScaleSets/<scale-set-name>"}'

Verificar a migração

Após a migração, confirme que a VM está a correr na zona de disponibilidade correta:

az vm show --resource-group "<resource-group-name>" --name "<vm-name>" --query "{Name:name, Zone:zones[0], Location:location}" --output table

Troubleshooting

Tamanho da VM não disponível na zona

Erro:The requested VM size is not available in the specified location/zone

Solução: Verifique os tamanhos das VMs disponíveis na zona alvo:

az vm list-skus --location "<region>" --zone "<zone>" --resource-type virtualMachines --output table

Considera alterar o tamanho da VM antes da migração se o tamanho atual não estiver disponível na zona de destino.

Conflito entre Grupos de Colocação de Proximidade

Erro:Cannot assign zone to a VM in a Proximity Placement Group

Solução: Use a atribuição de zonas com a opção de remoção do Grupo de Colocação de Proximidade descrita no Passo 2. Isto remove a associação do Grupo de Colocação de Proximidade e atribui a zona numa única operação.

Permissões insuficientes

Erro:The client does not have authorization to perform action

Solução: Certifica-te de que tens um papel de Contribuinte ou superior no grupo de recursos.

Falha na ligação do conjunto de escalas após atribuição de zona

Erro:Cannot attach VM to the specified Virtual Machine Scale Set

Solução: Verifique o seguinte:

  • O conjunto de escalas utiliza o modo de orquestração flexível
  • A configuração de zona do conjunto de escalas inclui a zona da VM
  • Para conjuntos de escala com contagem de domínio de falha 1, singlePlacementGroup é definido como false
az vmss show --resource-group "<resource-group-name>" --name "<scale-set-name>" --query "{Zones:zones, OrchestrationMode:orchestrationMode, SinglePlacementGroup:singlePlacementGroup}"

Passos seguintes