修改容量保留
適用於:✔️ Linux VM ✔️ Windows VM ✔️ 統一擴展集 ✔️ 彈性擴展集
建立容量保留群組和容量保留後,您可能想要修改您的保留。 本文說明如何使用 API、Azure 入口網站和 PowerShell 來執行下列動作。
- 更新容量保留中保留的執行個體數目。
- 調整與容量保留群組相關聯的 VM 大小。
- 刪除容量保留群組和容量保留。
更新保留的執行個體數目
更新容量保留中保留的虛擬機器 (VM) 執行個體數目。
重要
在少數情況下,當 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
。
為與容量保留群組相關聯的 VM 調整大小
如果要調整大小的 VM 目前已連結至容量保留群組,且該群組沒有目標大小的保留,您必須執行下列其中一個選項:
- 為該大小建立新的保留。
- 在您調整大小之前,請先從保留群組中移除 VM。
檢查目標大小是否為保留群組的一部分。
取得群組內所有容量保留的名稱。
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}" } ] } }
了解為每個保留保留的 VM 大小。 下列範例適用於
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 允許在刪除所有成員容量保留且沒有任何 VM 與群組相關聯時刪除該群組。
若要刪除容量保留,請先找出與其相關聯的所有 VM。 VM 的清單可在 virtualMachinesAssociated
屬性下找到。
首先,找到與容量保留群組相關聯的所有 VM,並解除與它們的關聯:
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
屬性下所有 VM 的名稱。 使用「移除 VM 與容量保留的關聯」中的步驟將它們從容量保留群組中移除。
從容量保留群組中移除所有 VM 之後,請刪除成員容量保留:
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
還原執行個體數量
無論與保留相關聯的 VM 數目為何,減少保留數量的要求只要格式正確就應該都會成功。 不過,增加保留數量可能需要更多配額,而且 Azure 需要滿足更多容量的要求。 在極少數情況下,當 Azure 無法滿足增加現有保留的保留數量的要求時,保留可能會進入失敗狀態且變得無法使用,直到保留的數量還原為原始數量為止。
注意
如果保留處於失敗狀態,則與該保留相關聯的所有 VM 都將繼續正常運作。
例如,假設 myCapacityReservation
保留了 5 個執行個體。 您要求 5 個額外的執行個體,這使得總保留的數量等於 10。 不過,由於該區域中的容量有所限制,因此 Azure 無法滿足您所要求的額外 5 個執行個體。 在此情況下,myCapacityReservation
無法符合其預期的 10 個保留執行個體的狀態,並進入失敗狀態。
若要解決此失敗帶來的問題,請遵循以下步驟來找出舊的保留數量值:
- 在 Azure 入口網站中,移至 [應用程式變更分析]。
- 在篩選條件中選取適用的 [訂用帳戶]、[資源群組] 和 [時間範圍] 設定。 在 [時間範圍] 篩選條件中最多只能回溯 14 天。
- 搜尋容量保留的名稱。
- 尋找該保留的
sku.capacity
屬性變更。 舊的保留數量是 [舊值] 資料行底下的值。
將 myCapacityReservation
更新為舊的保留數量。 更新之後,該保留可立即供您的 VM 使用。