Поделиться через


Изменение резервирования емкости

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы ✔️ Гибкие масштабируемые наборы

После создания группы резервирования емкости и резервирования емкости может потребоваться изменить резервирования. В этой статье объясняется, как выполнять следующие действия с помощью API, портал Azure и PowerShell.

  • Обновите количество экземпляров, зарезервированных в резервировании емкости.
  • Изменение размера виртуальных машин, связанных с группой резервирования емкости.
  • Удалите группу резервирования емкости и резервирование емкости.

Обновление количества зарезервированных экземпляров

Обновите количество экземпляров виртуальной машины, зарезервированных в резервировании емкости.

Внимание

В редких случаях, когда Azure не может выполнить запрос на увеличение количества, зарезервированного для существующих резервирований емкости, резервирование может перейти в состояние сбоя и стать недоступным, пока количество не будет восстановлено до исходного количества.

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

В тексте запроса измените свойство capacity на новое количество экземпляров, которое необходимо зарезервировать:

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

В этом примере capacity для свойства теперь задано 5значение .

Изменение размера виртуальных машин, связанных с группой резервирования емкости

Если размер виртуальной машины в настоящее время подключен к группе резервирования емкости, необходимо выполнить одно из следующих параметров, и эта группа не имеет резервирования для целевого размера:

  • Создайте новое резервирование для этого размера.
  • Удалите виртуальную машину из группы резервирования перед изменением размера.

Проверьте, является ли целевой размер частью группы резервирования.

  1. Получите имена всех резервирований емкости в группе.

        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. Найдите размер виртуальной машины, указанный для каждого резервирования. Следующий пример предназначен для capacityReservationName1, но этот шаг можно повторить для других резервирований.

        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. Рассмотрим следующие сценарии.

Удаление группы резервирования емкости и резервирования емкости

Azure позволяет удалить группу при удалении всех резервирований емкости участников и не связаны виртуальные машины с группой.

Чтобы удалить резервирование емкости, сначала выясните все виртуальные машины, связанные с ним. Список виртуальных машин доступен в свойстве virtualMachinesAssociated .

Сначала найдите все виртуальные машины, связанные с группой резервирования емкости, и разместите их:

    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>" 
                        } 
                    ] 
                } 
            ] 
        } 
    } 
}  

В приведенном выше ответе найдите имена всех виртуальных машин в свойстве virtualMachinesAssociated . Удалите их из группы резервирования емкости, выполнив действия, описанные в разделе "Удаление связи виртуальной машины с резервированием емкости".

После удаления всех виртуальных машин из группы резервирования емкости удалите резервирования емкости участников:

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

Наконец, удалите группу резервирования родительской емкости:

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

Восстановление количества экземпляров

Хорошо сформированный запрос на сокращение зарезервированного количества всегда должен быть успешным независимо от количества виртуальных машин, связанных с резервированием. Однако увеличение зарезервированного количества может потребовать больше квоты и для выполнения запроса на увеличение емкости. В редких случаях, когда Azure не может выполнить запрос на увеличение зарезервированного количества для существующих резервирований, резервирование может перейти в состояние сбоя и стать недоступным, пока зарезервированное количество не будет восстановлено до исходного объема.

Примечание.

Если резервирование находится в состоянии сбоя , все виртуальные машины, связанные с резервированием, продолжают работать как обычно.

Например, предположим myCapacityReservation , что зарезервировано 5 экземпляров. Вы запрашиваете 5 дополнительных экземпляров, что делает общее зарезервированное количество равным 10. Однако из-за ограниченной емкости в регионе Azure не может выполнить дополнительные 5 экземпляров, которые вы запрашивали. В этом случае myCapacityReservation не соответствует предполагаемому состоянию 10 зарезервированных экземпляров и переходит в состояние failed .

Чтобы устранить эту ошибку, выполните следующие действия, чтобы найти старое зарезервированное значение количества:

  1. В портал Azure перейдите к анализу изменений приложений.
  2. Выберите соответствующие параметры подписки, группы ресурсов и диапазона времени в фильтрах. Вы можете вернуться только за 14 дней в прошлом в фильтре диапазона времени.
  3. Найдите имя резервирования емкости.
  4. Найдите изменение свойства sku.capacity для этого резервирования. Старое количество зарезервировано — это значение в столбце "Старое значение ".

Укажите старое значение количества зарезервированных экземпляров в myCapacityReservation. После обновления резервирование будет доступно сразу же для использования с виртуальными машинами.

Следующий шаг