Criar um grupo de posicionamento de proximidade usando o PowerShell

Nota

Muitas das etapas listadas neste documento se aplicam a Conjuntos de Escala de Máquina Virtual usando o modo de Orquestração Uniforme. Recomendamos o uso da Orquestração Flexível para novas cargas de trabalho. Para obter mais informações, consulte Modos de ordenação para conjuntos de escala de máquina virtual no Azure.

Colocar VMs em uma única região reduz a distância física entre as instâncias. Colocá-los dentro de uma única zona de disponibilidade também os aproximará fisicamente. No entanto, à medida que a pegada 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 afeta seu aplicativo.

Para obter VMs o mais próximo possível, alcançando a menor latência possível, você pode implantá-las em um grupo de posicionamento de proximidade.

Um grupo de posicionamento de 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 colocação 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 escala de máquina virtual.
  • Baixa latência entre VMs autônomas, VMs em vários conjuntos de disponibilidade ou vários conjuntos de escala. Você pode ter vários recursos de computação em um único grupo de posicionamento para reunir um aplicativo de várias camadas.
  • Baixa latência entre várias camadas de aplicativos usando diferentes tipos de hardware. 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 escala, em um único grupo de posicionamento de proximidade.

Usando grupos de posicionamento de proximidade

Um grupo de posicionamento de proximidade é um recurso no Azure. Você precisa criar um antes de usá-lo com outros recursos. Uma vez criado, ele pode ser usado com máquinas virtuais, conjuntos de disponibilidade ou conjuntos de escala de máquina virtual. Você especifica um grupo de posicionamento de proximidade ao criar recursos de computação fornecendo o ID do grupo de posicionamento de proximidade.

Você também pode mover um recurso existente para um grupo de posicionamento de proximidade. Ao mover um recurso para um grupo de posicionamento de proximidade, você deve parar (deslocalizar) o ativo primeiro, pois ele será reimplantado potencialmente em um data center diferente na região para satisfazer a restrição de colocation.

No caso de conjuntos de disponibilidade e Conjuntos de Escala de Máquina Virtual, você deve definir o grupo de posicionamento de proximidade no nível de recurso em vez das máquinas virtuais individuais.

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

O que esperar ao usar os Grupos de Posicionamento de Proximidade

Os grupos de colocação por proximidade permitem colocalização no mesmo datacenter. No entanto, dado que os grupos de colocação por proximidade representam uma restrição de implementação adicional, podem ocorrer falhas de alocação. Há alguns casos de uso em que você pode ver falhas de alocação ao usar grupos de posicionamento de proximidade:

  • Quando pede a primeira máquina virtual no grupo de colocação por proximidade, o datacenter é selecionado automaticamente. Em alguns casos, uma segunda solicitação para uma SKU de máquina virtual diferente pode falhar se ela não existir nesse data center. Neste caso, é devolvido um erro OverconstrainedAllocationRequest. Para evitar este erro, tente alterar o pedido no qual implementa os SKUs ou implemente ambos os recursos com um único modelo do ARM.
  • No caso de cargas de trabalho elásticas, em que você adiciona e remove instâncias de VM, ter uma restrição de grupo de posicionamento de proximidade em sua implantação pode resultar em uma falha na satisfação da solicitação, resultando no erro AllocationFailure .
  • Parar (desalocar) e iniciar as VMs conforme necessário é outra forma de alcançar a elasticidade. Como a capacidade não é mantida depois que você interrompe (deslocaliza) uma VM, iniciá-la novamente pode resultar em um erro AllocationFailure .
  • As operações de início e reimplementação da VM continuarão a respeitar o Grupo de Colocação por Proximidade depois de configuradas com sucesso.

Manutenção planeada e Grupos de Colocação de Proximidade

Eventos de manutenção planejada, como descomissionamento de hardware em um datacenter do Azure, podem afetar o alinhamento de recursos em 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.

Verificar o estado do alinhamento

Você pode fazer o seguinte para verificar o status de alinhamento de seus grupos de posicionamento de proximidade.

  • O status de colocation do grupo de posicionamento de proximidade pode ser exibido usando o portal, a CLI e o PowerShell.

    • Para o PowerShell, o status de colocation pode ser obtido usando o cmdlet Get-AzProximityPlacementGroup incluindo o parâmetro opcional '-ColocationStatus'.

    • Para a CLI, o status de colocation pode ser obtido usando az ppg show o parâmetro opcional '--include-colocation-status'.

  • Para cada grupo de posicionamento de proximidade, uma propriedade de status de colocation 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á deslocalizado. Assim que iniciarem com sucesso, o status voltará para Alinhado.

    • Não alinhado: pelo menos um recurso de VM não está alinhado com o 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 membros

  • Para Conjuntos de disponibilidade, você pode ver informações sobre o alinhamento de VMs individuais na página Visão geral do conjunto de disponibilidade.

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

Realinhar recursos

Se um grupo de posicionamento de proximidade for Not Aligned, você poderá parar\desalocar e reiniciar os recursos afetados. Se a VM estiver em um conjunto de disponibilidade ou em um conjunto de escala, todas as VMs no conjunto de disponibilidade ou conjunto de escala deverão ser interrompidas\desalocadas primeiro antes de reiniciá-las.

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

Melhores práticas

  • Para obter a latência mais baixa, use grupos de posicionamento de proximidade juntamente 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.
  • Implante todos os tamanhos de VM em um único modelo. Para evitar o uso de hardware que não suporta todas as SKUs e tamanhos de VM necessários, inclua todas as camadas de aplicativo em um único modelo para que todas sejam implantadas ao mesmo tempo.
  • Se você estiver criando scripts para sua implantação usando o PowerShell, a CLI ou o SDK, poderá receber um erro OverconstrainedAllocationRequestde alocação. Nesse caso, você deve parar/desalocar todas as VMs existentes e alterar a sequência no script de implantação para começar com a SKU/tamanhos da VM que falhou.
  • Ao reutilizar um grupo de posicionamento existente do qual as VMs foram excluídas, aguarde a conclusão completa da exclusão antes de adicionar VMs a ele.
  • 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 principal prioridade, distribua suas instâncias por várias zonas de disponibilidade (um único grupo de posicionamento de proximidade não pode abranger zonas).

Criar um grupo de colocação em proximidade

Crie um grupo de posicionamento de proximidade usando o cmdlet New-AzProximityPlacementGroup .

$resourceGroup = "myPPGResourceGroup"
$location = "East US"
$ppgName = "myPPG"
New-AzResourceGroup -Name $resourceGroup -Location $location
$ppg = New-AzProximityPlacementGroup `
   -Location $location `
   -Name $ppgName `
   -ResourceGroupName $resourceGroup `
   -ProximityPlacementGroupType Standard

Listar grupos de posicionamento de proximidade

Você pode listar todos os grupos de posicionamento de proximidade usando o cmdlet Get-AzProximityPlacementGroup .

Get-AzProximityPlacementGroup

Criar um conjunto de escalas em um grupo de posicionamento de proximidade

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure assumirão como padrão o Modo de Orquestração Flexível se nenhum modo de orquestração for especificado. Para obter mais informações sobre essa alteração e quais ações você deve tomar, vá para Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub

Crie uma escala no grupo de posicionamento de proximidade usando -ProximityPlacementGroup $ppg.Id para se referir ao ID do grupo de posicionamento de proximidade quando você usar New-AzVMSS para criar o conjunto de escala.

$scalesetName = "myVM"

New-AzVmss `
  -ResourceGroupName $resourceGroup `
  -Location $location `
  -OrchestrationMode "Uniform" `
  -VMScaleSetName $scalesetName `
  -VirtualNetworkName "myVnet" `
  -SubnetName "mySubnet" `
  -PublicIpAddressName "myPublicIPAddress" `
  -LoadBalancerName "myLoadBalancer" `
  -ProximityPlacementGroup $ppg.Id

Você pode ver a instância no grupo de posicionamento usando Get-AzProximityPlacementGroup.

  Get-AzProximityPlacementGroup `
   -ResourceId $ppg.Id | Format-Table `
   -Wrap `
   -Property VirtualMachineScaleSets

Próximos passos

Você também pode usar a CLI do Azure para criar grupos de posicionamento de proximidade.