Изменение резервирования емкости
Применимо к: ✔️ Виртуальные машины 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
значение .
Изменение размера виртуальных машин, связанных с группой резервирования емкости
Если размер виртуальной машины в настоящее время подключен к группе резервирования емкости, необходимо выполнить одно из следующих параметров, и эта группа не имеет резервирования для целевого размера:
- Создайте новое резервирование для этого размера.
- Удалите виртуальную машину из группы резервирования перед изменением размера.
Проверьте, является ли целевой размер частью группы резервирования.
Получите имена всех резервирований емкости в группе.
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}" } ] } }
Найдите размер виртуальной машины, указанный для каждого резервирования. Следующий пример предназначен для
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" } }
Рассмотрим следующие сценарии.
- Если размер целевой виртуальной машины не является частью группы, создайте новое резервирование емкости для целевой виртуальной машины.
- Если размер целевой виртуальной машины уже существует в группе, измените размер виртуальной машины.
Удаление группы резервирования емкости и резервирования емкости
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 .
Чтобы устранить эту ошибку, выполните следующие действия, чтобы найти старое зарезервированное значение количества:
- В портал Azure перейдите к анализу изменений приложений.
- Выберите соответствующие параметры подписки, группы ресурсов и диапазона времени в фильтрах. Вы можете вернуться только за 14 дней в прошлом в фильтре диапазона времени.
- Найдите имя резервирования емкости.
- Найдите изменение свойства
sku.capacity
для этого резервирования. Старое количество зарезервировано — это значение в столбце "Старое значение ".
Укажите старое значение количества зарезервированных экземпляров в myCapacityReservation
. После обновления резервирование будет доступно сразу же для использования с виртуальными машинами.