Modificar uma reserva de capacidade

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

Depois de criar um grupo de reserva de capacidade e uma reserva de capacidade, poderá querer modificar as 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.

Redimensione as VMs associadas ao grupo de reserva de capacidade

Tem de adotar uma das seguintes opções se a VM que está a ser redimensionada estiver atualmente associada a um grupo de reserva de capacidade e esse grupo não tiver uma reserva para o tamanho pretendido:

  • 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. Saiba o tamanho da VM associado a 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, identifique os nomes de todas as VMs na propriedade virtualMachinesAssociated. Remova-os do grupo de reserva de capacidade seguindo os passos em Remover uma associação de VM a uma reserva de capacidade.

Depois de todas as VMs serem removidas do grupo de reserva de capacidade, elimine as reservas de capacidade membro:

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

Por fim, elimine o grupo principal de reserva de capacidade:

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 quota e que o Azure satisfaça o pedido 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 Azure, vá a Análise de Mudanças.
  2. Selecione as configurações aplicáveis de Assinatura, Grupo de recursos e Intervalo de tempo nos filtros. Só pode recuar no máximo 14 dias 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.

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

Em alternativa, utilize o campo currentCapacity nas propriedades da vista da instância da reserva de capacidade para verificar a capacidade do tamanho de VM que foi reservado com êxito e atualize a quantidade para o valor atual da capacidade. Consulte Reservas de Capacidade - Obter.

Próximo passo