Compartilhar via


Modificar uma reserva de capacidade

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

Depois de criar um grupo de reservas de capacidade e uma reserva de capacidade, talvez você queira modificar suas reservas. Este artigo explica como executar as ações a seguir usando a API, o portal do Azure e o PowerShell.

  • Atualizar o número de instâncias reservadas em uma reserva de capacidade.
  • Redimensionar VMs associadas a um grupo de reservas de capacidade.
  • Excluir o grupo de reservas de capacidade e a reserva de capacidade.

Atualizar o número de instâncias reservadas

Atualize o número de instâncias de máquina virtual (VM) reservadas em uma reserva de capacidade.

Importante

Nos casos raros em quando o Azure não pode atender à solicitação de aumento da quantidade reservada para a reserva de capacidade atual, a reserva poderá entrar em estado de Falha e ficar indisponível até que a quantidade seja restaurada ao valor original.

    PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName}?api-version=2021-04-01

No corpo da solicitação, atualize a propriedade capacity para a nova contagem que você deseja reservar:

{
    "sku":
    {
        "capacity": 5
    }
} 

Neste exemplo, a propriedade capacity é definida como 5.

Redimensionar VMs associadas a um grupo de reservas de capacidade

Você deve executar uma das seguintes opções se a VM que está sendo redimensionada estiver atualmente anexada a um grupo de reservas de capacidade e esse grupo não tiver uma reserva para o tamanho de destino:

  • Criar uma nova reserva para esse tamanho.
  • Remover a VM do grupo de reserva antes de redimensionar.

Verifique se o tamanho de destino faz parte do grupo de reservas.

  1. Obtenha os nomes de todas as reservas de capacidade dentro do grupo.

        GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}?api-version=2021-04-01
    
    { 
        "name": "<CapacityReservationGroupName>", 
        "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}", 
        "type": "Microsoft.Compute/capacityReservationGroups", 
        "location": "eastUS", 
        "zones": [ 
            "1" 
        ], 
        "properties": { 
            "capacityReservations": [ 
                { 
                    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName1}" 
                }, 
    { 
                    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName2}" 
                } 
            ] 
        } 
    } 
    
  2. Descubra o tamanho da VM reservado para cada reserva. O exemplo a seguir é para capacityReservationName1, mas você pode repetir esta etapa em outras reservas.

        GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName1}?api-version=2021-04-01
    
    { 
        "name": "capacityReservationName1", 
        "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName1}", 
        "type": "Microsoft.Compute/capacityReservationGroups/capacityReservations", 
        "location": "eastUS", 
        "sku": { 
            "name": "Standard_D2s_v3", 
            "capacity": 3 
        }, 
        "zones": [ 
            "1" 
        ], 
        "properties": { 
            "reservationId": "<reservationId>", 
            "provisioningTime": "<provisioningTime>", 
            "provisioningState": "Succeeded" 
        } 
    }  
    
  3. Considere os seguintes cenário:

Excluir um grupo de reservas de capacidade e a reserva de capacidade

O Azure permite que um grupo seja excluído quando todas as reservas de capacidade do membro foram excluídas e nenhuma VMs estiver associada ao grupo.

Para excluir uma reserva de capacidade, primeiro descubra todas as VMs associadas a ela. A lista de VMs está disponível na propriedade virtualMachinesAssociated.

Primeiro, localize todas as VMs associadas ao grupo de reservas de capacidade e desassocie-as:

    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/virtualMachines/{VirtualMachineName1}" 
            }, 
            { 
                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VirtualMachineName2}" 
            } 
        ], 
        "instanceView": { 
            "capacityReservations": [ 
                { 
                    "name": "{capacityReservationName}", 
                    "utilizationInfo": { 
                        "virtualMachinesAllocated": [ 
                            { 
                                "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VirtualMachineName1}" 
                            } 
                        ] 
                    }, 
                    "statuses": [ 
                        { 
                            "code": "ProvisioningState/succeeded", 
                            "level": "Info", 
                            "displayStatus": "Provisioning succeeded", 
                            "time": "<time>" 
                        } 
                    ] 
                } 
            ] 
        } 
    } 
}  

Na resposta anterior, localize os nomes de todas as VMs na propriedade virtualMachinesAssociated. Remova-os do grupo de reservas de capacidade usando as etapas em Remover uma associação de VM para uma reserva de capacidade.

Depois de remover todas as VMs do grupo de reservas de capacidade, exclua as reservas de capacidade do membro:

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroups/{CapacityReservationGroupName}/capacityReservations/{capacityReservationName}?api-version=2021-04-01

Por fim, exclua o grupo de reservas de capacidade pai:

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

Quantidade de instância de restauração

Uma solicitação bem formada para reduzir a quantidade reservada sempre deve ser bem-sucedida, seja qual for o número de VMs associadas à reserva. No entanto, aumentar a quantidade reservada pode exigir mais cota e para que o Azure atenda à solicitação de mais capacidade. Em um cenário raro em que o Azure não possa atender à solicitação de aumento da quantidade reservada da reserva atual, a reserva poderá entrar em estado de Falha e ficar indisponível até que a quantidade reservada seja restaurada ao valor original.

Observação

Se uma reserva estiver em um estado de Falha, todas as VMs associadas à reserva continuarão funcionando normalmente.

Por exemplo, digamos que myCapacityReservation tenha cinco instâncias reservadas. Você solicita cinco instâncias extras, o que torna a quantidade total reservada igual a 10. No entanto, devido a uma situação de capacidade restrita na região, o Azure não pode fornecer as cinco instâncias extras solicitadas. Nesse caso, myCapacityReservation falha ao atender ao estado pretendido de 10 instâncias reservadas e entra em um estado de Falha.

Para resolver essa falha, siga estas etapas para localizar o valor antigo da quantidade reservada:

  1. No portal do Azure, acesse Análise de Alterações de Aplicativo.
  2. Selecione as configurações de Assinatura, Grupo de recursos e Intervalo de tempo aplicáveis ​​nos filtros. Você só pode selecionar até 14 dias atrás no filtro Intervalo de tempo.
  3. Pesquise o nome da reserva de capacidade.
  4. Procure a alteração na propriedade sku.capacity dessa reserva. A quantidade reservada antiga será o valor da coluna Valor antigo.

Atualize myCapacityReservation com a quantidade reservada antiga. Depois de atualizada, a reserva estará disponível imediatamente para uso com suas VMs.

Próxima etapa