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


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

Применимо к: ✔️ Виртуальные машины 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. Рассмотрим следующие сценарии.

    1. Если целевой размер виртуальной машины не входит в группу, создайте новое резервирование мощности для целевой виртуальной машины
    2. Если целевой размер виртуальной машины уже существует в группе, измените размер виртуальной машины

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

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

Примечание.

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

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

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

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

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

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