Criar um grupo de posicionamento por proximidade usando o PowerShell
Observação
Muitas das etapas listadas neste documento se aplicam a Conjuntos de Dimensionamento de Máquinas Virtuais usando o modo Orquestração Uniforme. É recomendável usar a Orquestração Flexível para cargas de trabalho novas. Para saber mais, confira Modos de orquestração para conjuntos de dimensionamento de máquinas virtuais no Azure.
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 Conjuntos 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.
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, ao 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 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.
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 SKU de máquina virtual diferente poderá falhar se ele não existir nesse data center. Nesse caso, é retornado um erro OverconstrainedAllocationRequest. Para evitar isso, tente alterar a ordem na qual implantar os SKUs ou ter os dois recursos implantados usando um único modelo ARM.
- 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.
Para o PowerShell, o status de colocação pode ser obtido usando o cmdlet Get-AzProximityPlacementGroup, incluindo o parâmetro opcional ‘-ColocationStatus`.
Para a CLI, o status de colocação pode ser obtido usando
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 que eles começarem com êxito, o status 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.
Alinhar recursos novamente
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.
- Implantar todos os tamanhos de VM em um único modelo. Para evitar a aterrissagem de hardware que não dá suporte a todos os tamanhos e SKUs de VM necessários, inclua todas as camadas de aplicativo em um único modelo para que todas sejam implantadas ao mesmo tempo.
- Caso esteja criando scripts para a implantação usando o PowerShell, o CLI ou o SDK, poderá obter um erro de alocação
OverconstrainedAllocationRequest
. Nesse caso, será necessário parar/desalocar todas as VMs existentes e alterar a sequência no script de implantação para começar com os tamanhos/SKU da VM que falharam. - 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).
Criar um grupo de posicionamento de proximidade
Crie um grupo de posicionamento por 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
Lista de grupos de posicionamento por proximidade
Liste todos os grupos de posicionamento por proximidade usando o cmdlet Get-AzProximityPlacementGroup.
Get-AzProximityPlacementGroup
Criar um conjunto de dimensionamento em um grupo de posicionamento por proximidade
Importante
A partir de novembro de 2023, os conjuntos de dimensionamento de VM criados usando o PowerShell e a CLI do Azure serão padrão para 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 executar, acesse Alteração Interruptiva para Clientes PowerShell/CLI de VMSS – Hub de Comunidade da Microsoft
Crie uma escala no grupo de posicionamento por proximidade usando -ProximityPlacementGroup $ppg.Id
para se referir à ID do grupo de posicionamento por proximidade quando usar New-AzVMSS para criar o conjunto de dimensionamento.
$scalesetName = "myVM"
New-AzVmss `
-ResourceGroupName $resourceGroup `
-Location $location `
-OrchestrationMode "Uniform" `
-VMScaleSetName $scalesetName `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-ProximityPlacementGroup $ppg.Id
Veja a instância no grupo de posicionamento usando Get-AzProximityPlacementGroup.
Get-AzProximityPlacementGroup `
-ResourceId $ppg.Id | Format-Table `
-Wrap `
-Property VirtualMachineScaleSets
Próximas etapas
Você também pode usar a CLI do Azure para criar grupos de posicionamento por proximidade.