Partilhar via


Modificar uma reserva de capacidade

Aplica-se a: ✔️ VMs Linux VMs ✔️ ✔️ do Windows Conjunto ✔️ de escala uniforme Conjuntos de balanças flexíveis

Depois de criar um grupo de reservas de capacidade e uma reserva de capacidade, convém modificar suas reservas. Este artigo explica como executar as seguintes ações usando a API, o portal do Azure e o PowerShell.

  • Atualize o número de instâncias reservadas em uma reserva de capacidade.
  • Redimensione VMs associadas a um grupo de reserva de capacidade.
  • Exclua o grupo de reserva 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

Em casos raros em que o Azure não consegue atender à solicitação para aumentar a quantidade reservada para reservas de capacidade existentes, uma reserva pode entrar em um estado Falha e ficar indisponível até que a quantidade seja restaurada para o 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 capacity propriedade para a nova contagem que você deseja reservar:

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

Neste exemplo, a capacity propriedade agora está definida como 5.

Redimensionar VMs associadas a um grupo de reserva de capacidade

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

  • Crie uma nova reserva para esse tamanho.
  • Remova a VM do grupo de reservas antes de redimensionar.

Verifique se o tamanho do alvo 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 essa etapa para 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ários:

Excluir um grupo de reserva de capacidade e uma reserva de capacidade

O Azure permite que um grupo seja excluído quando todas as reservas de capacidade de membro são excluídas e nenhuma VM é associada ao grupo.

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

Primeiro, localize todas as VMs associadas ao grupo de reserva de capacidade e dissocie-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 sob a virtualMachinesAssociated propriedade. Remova-os do grupo de reserva de capacidade usando as etapas em Remover uma associação de VM para uma reserva de capacidade.

Depois que todas as VMs forem removidas do grupo de reserva de capacidade, exclua as reservas de capacidade de 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 reserva de capacidade pai:

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

Restaurar quantidade de instância

Um pedido bem formado para reduzir a quantidade reservada deve ser sempre bem-sucedido, independentemente do número de VMs associadas à reserva. No entanto, aumentar a quantidade reservada pode exigir mais cota e para o Azure atender à solicitação de mais capacidade. Em um cenário raro em que o Azure não pode atender à solicitação para aumentar a quantidade reservada para reservas existentes, a reserva pode entrar em um estado de Falha e ficar indisponível até que a quantidade reservada seja restaurada para o valor original.

Nota

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

Por exemplo, digamos que myCapacityReservation tenha 5 instâncias reservadas. Você solicita 5 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 atender às 5 instâncias extras solicitadas. Nesse caso, myCapacityReservation não consegue atender ao estado pretendido de 10 instâncias reservadas e entra em um estado Falhado .

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

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

Atualização myCapacityReservation para a quantidade antiga reservada. Depois de atualizada, a reserva fica disponível imediatamente para uso com suas VMs.

Próximo passo