Grupos de posicionamento de proximidade

Aplica-se a: ✔️ VMs do Linux ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis ✔️ Conjuntos de dimensionamento uniformes

Posicionar VMs em uma única região reduz a distância física entre as instâncias. Posicioná-los em uma única zona de disponibilidade também os colocará fisicamente juntos. No entanto, à medida que a superfície do Azure cresce, uma única zona de disponibilidade pode abranger vários data centers físicos, o que pode resultar em uma latência de rede que afetará seu aplicativo.

Para colocar as VMs o mais próximo possível umas das outras, atingindo a menor latência possível, implante-as dentro de um grupo de posicionamento por proximidade.

Um grupo de posicionamento por proximidade é um agrupamento lógico usado para garantir que os recursos de computação do Azure estejam fisicamente localizados próximos uns dos outros. Os grupos de posicionamento por proximidade são úteis para cargas de trabalho em que a baixa latência é um requisito.

  • Baixa latência entre VMs autônomas.
  • Baixa latência entre VMs em um único conjunto de disponibilidade ou um conjunto de dimensionamento de máquinas virtuais.
  • Baixa latência entre VMs autônomas, VMs em vários conjuntos de disponibilidade ou vários conjuntos de dimensionamento. É possível ter vários recursos de computação em um único grupo de posicionamento para reunir um aplicativo em várias camadas.
  • Baixa latência entre várias camadas de aplicativo usando tipos de hardware diferentes. Por exemplo, executar o back-end usando a série M em um conjunto de disponibilidade e o front-end em uma instância da série D, em um conjunto de dimensionamento, em um único grupo de posicionamento de proximidade.

Gráfico por grupos de posicionamento de proximidade

Usar grupos de posicionamento de proximidade

O grupo de posicionamento de proximidade é um recurso no Azure. É necessário criar um antes de usá-lo com outros recursos. Depois de criado, poderá ser usado com máquinas virtuais, conjuntos de disponibilidade ou conjuntos de dimensionamento de máquinas virtuais. Especifique um grupo de posicionamento de proximidade ao criar recursos de computação, fornecendo a ID de grupo de posicionamento de proximidade.

Também é possível mover um recurso existente para um grupo de posicionamento de proximidade. Ao mover um recurso para um grupo de posicionamento de proximidade, é necessário parar (desalocar) o ativo primeiro, pois ele será reimplantado potencialmente em um data center diferente na região para atender à restrição de colocalização.

No caso de conjuntos de disponibilidade e conjuntos de dimensionamento de máquinas virtuais, deverá ser definido o grupo de posicionamento de proximidade no nível de recurso em vez de máquinas virtuais individuais.

Um grupo de posicionamento de proximidade é uma restrição de colocação em vez de um mecanismo de fixação. Ele é fixado em um data center específico com a implantação do primeiro recurso para usá-lo. Depois que todos os recursos que usam o grupo de posicionamento de proximidade tiverem sido interrompidos (desalocados) ou excluídos, eles não serão mais fixados. Portanto, sempre que usar um grupo de posicionamento de proximidade com várias séries de VM, sempre que possível, é importante especificar todos os tipos necessários antecipadamente em um modelo, se possível, ou seguir uma sequência de implantação que aumentará as chances de uma implantação bem-sucedida. Se a implantação falhar, reinicie-a com o tamanho da VM que falhou como o primeiro tamanho a ser implantado.

Usar a intenção para especificar os tamanhos de VM

Você pode usar o parâmetro opcional intent para fornecer os tamanhos de VM pretendidos, para fazer parte do grupo de posicionamento por proximidade. Esse parâmetro pode ser especificado no momento da criação de um grupo de posicionamento por proximidade ou pode ser adicionado/modificado ao atualizar um grupo de posicionamento por proximidade, depois de desalocar todas as VMs.

Ao especificar intent, você também pode adicionar o parâmetro opcional zone para especificar uma zona de disponibilidade, indicando que o grupo de posicionamento por proximidade deve ser criado em uma zona de disponibilidade específica. Observe os seguintes pontos ao fornecer o parâmetro zone:

  • O parâmetro de zona de disponibilidade só pode ser fornecido durante a criação do grupo de posicionamento por proximidade e não pode ser modificado posteriormente.
  • O parâmetro zone só pode ser usado com intent. Ele não pode ser usado isoladamente.
  • Somente uma zona de disponibilidade pode ser especificada.

A criação ou a atualização do Grupo de Posicionamento por Proximidade só terá êxito quando pelo menos um data center oferecer suporte a todos os Tamanhos de VM especificados na intenção. Caso contrário, a criação ou atualização falhará apresentando a mensagem "OverconstrainedAllocationRequest", que indica que a combinação de Tamanhos de VM não pode ser permitida em um grupo de posicionamento por proximidade. A intenção não fornece reservas ou garantias de capacidade. Os tamanhos de VM e a zona fornecidas em intent são usados para selecionar um data center apropriado, reduzindo as chances de falha, se o tamanho de VM desejado não estiver disponível em um data center. Falhas de alocação ainda poderão ocorrer, se não houver mais capacidade para um tamanho de VM no momento da implantação.

Observação

Para usar a intenção para seus grupos de posicionamento por proximidade, a versão da API deve ser 2021-11-01 ou superior

Melhores práticas ao usar a intenção

  • Forneça uma zona de disponibilidade para o grupo de posicionamento por proximidade, somente quando você fornecer uma intenção. Fornecer uma zona de disponibilidade sem uma intenção resultará em um erro ao criar o grupo de posicionamento por proximidade.
  • Se você fornecer uma zona de disponibilidade na intenção, verifique se a zona de disponibilidade das VMs implantadas corresponde ao especificado na intenção, para evitar erros durante a implantação de VMs.
  • É permitido, mas não é recomendado criar ou adicionar VMs com tamanhos que não estão incluídos na intenção. O tamanho pode não existir no datacenter selecionado e pode resultar em falhas no momento da implantação da VM.
  • Para grupos de posicionamento existentes, recomendamos incluir os tamanhos de VMs existentes ao atualizar a intenção, para evitar falhas ao reimplantar as VMs.

A intenção pode ser afetada com desativação

  • É possível que, depois de criar um grupo de posicionamento por proximidade com intenção e antes de implantar VMs, ocorram eventos de manutenção planejados, como a desativação de hardware em um datacenter do Azure, resultando na combinação de Tamanhos de VM especificados na intenção que não estão disponível no data center. Nesses casos, ocorrerá o erro "OverconstrainedAllocationRequest", mesmo durante a implantação de VMs de tamanhos especificados na intenção. Você pode tentar desalocar e recriar todos os recursos no grupo de posicionamento por proximidade, para obter um data center que possa acomodar a intenção. Se não houver datacenter com os Tamanhos de VM especificados após a desativação, talvez seja necessário modificar a intenção de usar uma combinação diferente de Tamanhos de VM, já que não há mais suporte para a combinação de tamanhos de VM.
  • O Azure pode desativar uma família de VM inteira ou um conjunto específico de tamanhos de VM. Se você tiver esse tamanho de VM na intenção, talvez seja necessário removê-lo ou substituí-lo por um tamanho diferente, antes da data de desativação do tamanho original da VM. Caso contrário, a intenção não será mais válida.

O que esperar ao usar Grupos de posicionamento de proximidade

Os grupos de posicionamento de proximidade oferecem colocação no mesmo data center. No entanto, como os grupos de posicionamento de proximidade representam uma restrição de implantação adicional, podem ocorrer falhas de alocação. Há alguns casos de uso em que se pode ver falhas de alocação ao usar grupos de posicionamento de proximidade:

  • Quando solicitar a primeira máquina virtual no grupo de posicionamento de proximidade, o data center será selecionado automaticamente. Em alguns casos, uma segunda solicitação para um tamanho de VM diferente poderá falhar, se ele não existir nesse data center. Nesse caso, é retornado um erro OverconstrainedAllocationRequest. Para evitar esse erro, tente alterar a ordem de implantação dos tamanhos de VM ou implante os dois recursos usando um único modelo do ARM.
  • Se o grupo de posicionamento por proximidade for criado com intenção, as VMs não precisarão ser implantadas em nenhuma ordem específica e não precisarão ser colocadas em lote usando um único modelo do ARM, pois a intenção é usada para selecionar um datacenter que permita todos os tamanhos de VM indicados na intenção.
  • No caso de cargas de trabalho elásticas, em que são adicionadas e removidas instâncias de VM, ter uma restrição de grupo de posicionamento de proximidade na implantação pode resultar em uma falha ao atender à solicitação, resultando no erro AllocationFailure.
  • Parar (desalocar) e iniciar as VMs conforme necessário é outra maneira de obter elasticidade. Como a capacidade não é mantida ao parar (desalocar) uma VM, iniciá-la novamente pode resultar em um erro de AllocationFailure.
  • Quando configuradas com êxito, as operações de início e reimplantação da VM continuarão respeitando o Grupo de Posicionamento por Proximidade.

Manutenção planejada e Grupos de posicionamento de proximidade

Eventos de manutenção planejada, como o encerramento de hardware em um datacenter do Azure, poderão afetar o alinhamento dos recursos nos grupos de posicionamento de proximidade. Os recursos podem ser movidos para um data center diferente, interrompendo as expectativas de colocação e latência associadas ao grupo de posicionamento de proximidade.

Verificação do status do alinhamento

É possível fazer o seguinte para verificar o status de alinhamento dos grupos de posicionamento de proximidade.

  • O status de colocação do grupo de posicionamento de proximidade pode ser exibido usando o portal, o CLI e o PowerShell.

    • PowerShell – o status de colocação pode ser obtido por meio do cmdlet Get-AzProximityPlacementGroup, incluindo o parâmetro opcional ‘-ColocationStatus`.

    • CLI – o status de colocação pode ser obtido por meio de az ppg show, incluindo o parâmetro opcional ‘--include-colocation-status`.

  • Para cada grupo de posicionamento de proximidade, uma propriedade de status de colocalização fornece o resumo do status de alinhamento atual dos recursos agrupados.

    • Alinhado: o recurso está dentro do mesmo envelope de latência do grupo de posicionamento de proximidade.

    • Desconhecido: pelo menos um dos recursos da VM está desalocado. Depois de reiniciá-los com êxito, o status deve voltar para Alinhado.

    • Não alinhado: pelo menos um recurso da VM não está alinhado ao grupo de posicionamento de proximidade. Os recursos específicos que não estão alinhados também serão chamados separadamente na seção de associação

  • Para conjuntos de disponibilidade, é possível ver informações sobre o alinhamento de VMs individuais na página de visão geral do conjunto de disponibilidade.

  • Para conjuntos de dimensionamento, informações sobre alinhamento de instâncias individuais podem ser vistas na guia Instâncias da página Visão Geral do conjunto de dimensionamento.

Realinhar recursos

Se um grupo de posicionamento de proximidade for Not Aligned, será possível parar\desalocar e reiniciar os recursos afetados. Se a VM estiver em um conjunto de disponibilidade ou em um conjunto de dimensionamento, todas as VMs no conjunto de disponibilidade ou conjunto de dimensionamento devem primeiro ser paradas/desalocadas antes de reiniciá-las.

Se houver uma falha de alocação devido a restrições de implantação, talvez seja necessário primeiro parar/desalocar todos os recursos no grupo de posicionamento de proximidade afetado (incluindo os recursos alinhados), e, em seguida, reiniciá-los para restaurar o alinhamento.

Práticas recomendadas

  • Para a latência mínima, use grupos de posicionamento de proximidade junto com a rede acelerada. Para obter mais informações, consulte Criar uma máquina virtual Linux com rede acelerada ou Criar uma máquina virtual do Windows com rede acelerada.
  • Para evitar o acesso a hardware que não dá suporte a todos os SKUs e tamanhos de VM necessários, use a intenção para grupos de posicionamento por proximidade. Se for um grupo de posicionamento por proximidade já existente sem intenção, você pode usar um único modelo do ARM com todos os tamanhos de VM especificados, para evitar esse problema.
  • Ao reutilizar um grupo de posicionamento existente do qual as VMs foram excluídas, aguarde até que a exclusão seja concluída completamente antes de adicionar VMs a ela.
  • Se a latência for sua primeira prioridade, coloque as VMs em um grupo de posicionamento de proximidade e toda a solução em uma zona de disponibilidade. Mas, se a resiliência for sua prioridade máxima, espalhe suas instâncias entre várias zonas de disponibilidade (um único grupo de posicionamento de proximidade não pode abranger zonas).

Próximas etapas