Partilhar via


Associar um conjunto de escala de máquina virtual como Orquestração Uniforme a um grupo de reserva de capacidade

Aplica-se a: ✔️ Conjunto de escala uniforme

Os Conjuntos de Dimensionamento de Máquina Virtual do Azure têm dois modos:

  • Orquestração uniforme: neste modo, os conjuntos de dimensionamento de máquina virtual usam um perfil de máquina virtual (VM) ou um modelo para dimensionar até a capacidade desejada. Embora haja alguma capacidade de gerenciar ou personalizar instâncias de VM individuais, o Uniform Orchestration usa instâncias de VM idênticas. Essas instâncias são expostas por meio das APIs de VM do conjunto de dimensionamento de máquina virtual e não são compatíveis com os comandos de API que são padrão para VMs IaaS (infraestrutura como serviço) do Azure. Como o conjunto de escala executa todas as operações reais da VM, as reservas são associadas diretamente ao conjunto de escala da máquina virtual. Depois que o conjunto de escalas é associado à reserva, todas as alocações de VM subsequentes são feitas em relação à reserva.
  • Orquestração flexível: nesse modo, você obtém mais flexibilidade para gerenciar as instâncias de VM do conjunto de dimensionamento de máquina virtual individual. Eles podem usar as APIs de VM IaaS padrão do Azure em vez de usar a interface do conjunto de escala. Para usar reservas com o modo Orquestração Flexível, defina a propriedade do conjunto de escala da máquina virtual e a propriedade de reserva de capacidade em cada VM.

Para saber mais sobre esses modos, consulte Modos de orquestração de conjuntos de escala de máquina virtual.

Este conteúdo aplica-se ao modo de Orquestração Uniforme. Para o modo de Orquestração Flexível, consulte Associar um conjunto de dimensionamento de máquina virtual à Orquestração Flexível a um grupo de reserva de capacidade.

Limitações dos conjuntos de escalas na orquestração uniforme

  • Para que os conjuntos de dimensionamento de máquina virtual no Uniform Orchestration sejam compatíveis com a reserva de capacidade, a singlePlacementGroup propriedade deve ser definida como False.
  • A opção de disponibilidade de Dispersão Estática Fixa para conjuntos de escalas uniformes de várias zonas não é suportada com a reserva de capacidade. Esta opção requer o uso de cinco domínios de falha. No entanto, as reservas suportam apenas até três domínios de falha para tamanhos de uso geral. A abordagem que recomendamos é usar a opção Max Spreading que espalha VMs pelo maior número possível de domínios de falha dentro de cada zona. Se necessário, configure uma configuração de domínio de falha personalizada de três ou menos.

Existem algumas outras restrições quando utiliza reservas de capacidade. Para obter a lista completa, consulte a visão geral das reservas de capacidade.

Associar um novo conjunto de escala de máquina virtual a um grupo de reserva de capacidade

Importante

A partir de novembro de 2023, os conjuntos de dimensionamento de máquina virtual criados usando o PowerShell e a CLI do Azure 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 tomar, consulte Breaking Change for VMSS PowerShell/CLI Customers - Microsoft Community Hub.

Para associar um novo conjunto uniforme de escala de máquina virtual a um grupo de reserva de capacidade, construa a seguinte PUT solicitação ao Microsoft.Compute provedor:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01

Adicione a capacityReservationGroup propriedade na virtualMachineProfile propriedade:

{ 
    "name": "<VMScaleSetName>", 
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}", 
    "type": "Microsoft.Compute/virtualMachineScaleSets", 
    "location": "eastus", 
    "sku": { 
        "name": "Standard_D2s_v3", 
        "tier": "Standard", 
        "capacity": 3 
}, 
"properties": { 
    "virtualMachineProfile": { 
        "capacityReservation": { 
            "capacityReservationGroup":{ 
                "id":"subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroup/{CapacityReservationGroupName}" 
            } 
         }, 
        "osProfile": { 
            … 
        }, 
        "storageProfile": { 
            … 
        }, 
        "networkProfile": { 
            …,
            "extensionProfile": { 
                … 
            } 
        } 
    } 

Associar um conjunto de dimensionamento de máquina virtual existente a um grupo de reserva de capacidade

Para adicionar um grupo de reserva de capacidade existente a um conjunto de escala uniforme existente:

  • Pare o conjunto de escala para desalocar as instâncias de VM.
  • Atualize o conjunto de escalas para usar um grupo de reserva de capacidade correspondente.
  • Inicie o conjunto de escalas.

Esse processo garante que o posicionamento para as reservas de capacidade e a escala definida na região sejam compatíveis.

Observações importantes sobre políticas de atualização

  • Atualização automática: neste modo, as instâncias de VM do conjunto de escala são automaticamente associadas ao grupo de reserva de capacidade sem qualquer ação adicional da sua parte. Quando as VMs do conjunto de escala são realocadas, elas começam a consumir a capacidade reservada.
  • Atualização contínua: neste modo, as instâncias de VM do conjunto de escala são associadas ao grupo de reserva de capacidade sem qualquer ação adicional da sua parte. No entanto, eles são atualizados em lotes com um tempo de pausa opcional entre eles. Quando as VMs do conjunto de escala são realocadas, elas começam a consumir a capacidade reservada.
  • Atualização manual: nesse modo, nada acontece com as instâncias de VM do conjunto de escala quando o conjunto de dimensionamento da máquina virtual é anexado a um grupo de reserva de capacidade. Você precisa atualizar para cada VM de conjunto de escala atualizando-a com o modelo de conjunto de escala mais recente.
  1. Desaloque o conjunto de escala da máquina virtual:

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
    
  2. Adicione a capacityReservationGroup propriedade ao modelo de conjunto de escalas. Construa a seguinte PUT solicitação ao Microsoft.Compute provedor:

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
    

    No corpo do pedido, inclua a capacityReservationGroup propriedade:

    "location": "eastus",
    "properties": {
        "virtualMachineProfile": {
             "capacityReservation": {
                      "capacityReservationGroup": {
                            "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}"
                      }
                }
        }
    }
    

Exibir associação do conjunto de dimensionamento de máquina virtual com a Exibição de instância

Depois que o conjunto uniforme de escala de máquina virtual for associado ao grupo de reserva de capacidade, todas as alocações de VM subsequentes acontecerão em relação à reserva de capacidade. O Azure localiza automaticamente a reserva de capacidade correspondente no grupo e consome um slot reservado.

A Visualização de instância do grupo de reserva de capacidade reflete as VMs do novo conjunto de escala nas virtualMachinesAssociated propriedades e virtualMachinesAllocated :

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}?$expand=instanceview&api-version=2021-04-01 
{ 
    "name": "<CapacityReservationGroupName>", 
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}", 
    "type": "Microsoft.Compute/capacityReservationGroups", 
    "location": "eastus" 
}, 
    "properties": { 
        "capacityReservations": [ 
            { 
                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{CapacityReservationName}" 
            } 
        ], 
        "virtualMachinesAssociated": [ 
            { 
                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/virtualMachines/{VirtualMachineId}" 
            } 
        ], 
        "instanceView": { 
            "capacityReservations": [ 
                { 
                    "name": "<CapacityReservationName>", 
                    "utilizationInfo": { 
                        "virtualMachinesAllocated": [ 
                            { 
                                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/virtualMachines/{VirtualMachineId}" 
                            } 
                        ] 
                    },
                    "statuses": [ 
                        { 
                            "code": "ProvisioningState/succeeded", 
                            "level": "Info", 
                            "displayStatus": "Provisioning succeeded", 
                            "time": "2021-05-25T15:12:10.4165243+00:00" 
                        } 
                    ] 
                } 
            ] 
        } 
    } 
} 

Considerações sobre região e zona de disponibilidade

Você pode criar conjuntos de dimensionamento de máquina virtual regionalmente ou em uma ou mais zonas de disponibilidade para ajudar a protegê-los de falhas no nível do datacenter. Para saber mais sobre conjuntos de dimensionamento de máquina virtual multizonal, consulte Conjuntos de dimensionamento de máquina virtual que usam zonas de disponibilidade.

Importante

O local (região e zonas de disponibilidade) do conjunto de escala da máquina virtual e o grupo de reserva de capacidade devem corresponder para que a associação seja bem-sucedida. Para um conjunto de escala regional, a região deve corresponder entre o conjunto de escalas e o grupo de reserva de capacidade. Para um conjunto de escala zonal, as regiões e as zonas devem corresponder entre o conjunto de escalas e o grupo de reserva de capacidade.

Quando um conjunto de dimensionamento é distribuído em várias zonas, ele sempre tenta implantar uniformemente nas zonas de disponibilidade incluídas. Devido a essa implantação, mesmo assim, um grupo de reserva de capacidade deve sempre ter a mesma quantidade de VMs reservadas em cada zona. Como ilustração de por que essa implantação uniforme é importante, considere o exemplo a seguir.

Neste exemplo, cada zona tem uma quantidade diferente reservada. Digamos que o conjunto de dimensionamento da máquina virtual seja dimensionado para 75 instâncias. Como um conjunto de dimensionamento sempre tenta implantar uniformemente entre zonas, a distribuição de VM deve ser semelhante a este exemplo:

Zona Quantidade reservada Número de VMs do conjunto de escala em cada zona Quantidade não utilizada reservada Atribuição excessiva
1 40 25 15 0
2 20 25 0 5
3 15 25 0 10

Nesse caso, o conjunto de escala incorre em custo extra para 15 instâncias não utilizadas na Zona 1. A expansão também depende de 5 VMs na Zona 2 e 10 VMs na Zona 3 que não estão protegidas pela reserva de capacidade. Se cada zona tivesse 25 instâncias de capacidade reservadas, todas as 75 VMs seriam protegidas por reserva de capacidade e a implantação não incorreria em nenhum custo extra para instâncias não utilizadas.

Como as reservas podem ser superalocadas, o conjunto de escalas pode continuar a ser dimensionado normalmente além dos limites da reserva. A única diferença é que as VMs alocadas acima da quantidade reservada não são cobertas pelo contrato de nível de serviço de reserva de capacidade. Para saber mais, consulte Sobrealocar reserva de capacidade.

Próximo passo