Migrar uma máquina virtual regional para uma zona de disponibilidade (versão prévia)

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

Note

As etapas de migração mencionadas neste artigo não se aplicam a máquinas virtuais em um conjunto de disponibilidade. Se você precisar mover máquinas virtuais em um conjunto de disponibilidade, consulte Migrar conjuntos de disponibilidade para Conjuntos de Dimensionamento de Máquinas Virtuais

Este artigo descreve como migrar uma VM (máquina virtual) Azure de uma implantaçã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 VM regional para zonal está atualmente em Versão Prévia Pública. As versões prévias são disponibilizadas com a condição de que você concorde com os termos de uso complementares. Alguns aspectos desse recurso podem alterar antes da GA (disponibilidade geral).

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

Pré-requisitos

Antes de começar, verifique se você tem o seguinte:

  • Assinatura do Azure com a versão de prévia do recurso de migração registrada
  • Função de colaborador ou superior no grupo de recursos que contém a VM
  • CLI do Azure 2.72.0 ou posterior ou Azure PowerShell módulo Az instalado
  • Uma VM regional (não zonal) existente que você deseja migrar
  • A zona de disponibilidade de destino deve dar suporte ao tamanho atual da VM no destino

Registrar o recurso de visualização

O recurso de migração requer registro. Registre o RegionalToZonalVMMigrationForDeallocatedVM recurso de visualização para sua assinatura:

# 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

Note

O registro de recursos pode levar vários minutos para ser concluído. Aguarde até que o status mostre Registrado antes de continuar.

Visão geral da migração

O processo de migração consiste nas seguintes etapas:

  1. Desalocar a VM – Parar e desalocar a VM regional
  2. Atualizar a atribuição de zona – Atribuir a VM a uma zona de disponibilidade específica
  3. Iniciar a VM – Ligar a VM em sua nova zona
  4. (Opcional) Anexar a um Conjunto de Dimensionamento de Máquinas Virtuais — Adicionar a VM zonal a um conjunto de dimensionamento com orquestração Flexível

Importante

  • A VM deve ser desalocada antes da atribuição da zona. Planeje o tempo de inatividade adequadamente.
  • As VMs podem ser iniciadas imediatamente após a conclusão da atribuição de zona.
  • A migração é uma operação unidirecional. Você não pode migrar uma VM zonal de volta para uma implantação regional.

Configurações suportadas

Caminhos de migração

Source Target Description
Máquina Virtual Regional VM Zonal VM colocada em uma zona de disponibilidade específica (1, 2 ou 3)
Máquina Virtual Regional VM zonal em um Conjunto de Dimensionamento de Máquinas Virtuais VM colocada em uma zona e anexada a um conjunto de dimensionamento Flexível
Máquina Virtual Regional em um Grupo de Posicionamento por Proximidade VM Zonal VM movida para uma zona com o Proximity Placement Group removido

Limitations

Não há suporte para as seguintes configurações para migração:

  • VMs com endereços IP públicos básicos – Atualizar para o SKU Standard antes da migração
  • As VMs por trás de um Basic Load Balancer – Atualize para Standard Load Balancer antes da migração
  • VMs com discos não gerenciados – Converter em discos gerenciados antes da migração

Etapa 1: Desalocar a VM

Antes de atualizar a atribuição de zona, a VM deve ser totalmente desalocada:

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

Verifique se a VM está no estado Parado (desalocado) antes de continuar.

Etapa 2: Atualizar a atribuição de zona

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

Atribuição de zona padrão

Para VMs que não estão em um Grupo de Posicionamento por Proximidade:

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

Atribuição de zona com remoção do Grupo de Posicionamento por Proximidade

Se sua VM estiver atualmente em um Grupo de Posicionamento por Proximidade, você deverá remover a associação grupo de posicionamento por proximidade durante a atribuição de zona:

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

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

Dica

A disponibilidade da zona varia de acordo com a região. Para verificar quais zonas estão disponíveis para o tamanho da VM em uma região específica, execute:

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

Etapa 3: Iniciar a VM

Após a atribuição de zona, a VM está em um estado Parado (desalocado ). Inicie a VM:

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

Note

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

Etapa 4 (opcional): anexar a VM a um conjunto de dimensionamento de máquinas virtuais

Depois de migrar a VM para uma zona de disponibilidade, você pode anexá-la opcionalmente a um Conjunto de Dimensionamento de Máquinas Virtuais com orquestração flexível para recursos de gerenciamento aprimorados, como dimensionamento automático e atualizações sem interrupção.

Pré-requisitos para anexação ao conjunto de dimensionamento

  • Pré-requisitos para anexação ao conjunto de dimensionamento Flexível
  • O conjunto de dimensionamento deve estar na mesma região que a VM
  • A configuração da zona do conjunto de dimensionamento deve incluir a zona atribuída à VM
  • Para conjuntos de escalonamento com contagem de domínio de falha de 1, singlePlacementGroup deve ser definido como false

Uma VM regional não tem uma propriedade virtualMachineScaleSet para inserir, portanto, use az resource update para atualizar a propriedade como um objeto JSON no recurso da VM subjacente:

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 se a VM está em execução 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

Solução de problemas

Tamanho de máquina virtual não disponível na zona

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

Solução: Verifique os tamanhos de VM disponíveis na zona de destino:

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

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

Conflito do Grupo de Posicionamento por Proximidade

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

Solução: Use a atribuição de zona com a opção de remoção de Grupo de Posicionamento por Proximidade descrita na Etapa 2. Isso remove a associação com o Grupo de Posicionamento por Proximidade e atribui a zona em uma única operação.

Permissões insuficientes

Erro: The client does not have authorization to perform action

Solução: Verifique se você tem a função colaborador ou superior no grupo de recursos.

A anexação ao conjunto de dimensionamento falha após a atribuição da zona

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

Solução: Verifique o seguinte:

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

Próximas Etapas