共用方式為


修改容量保留

適用於:✔️ 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。

檢查目標大小是否為保留群組的一部分。

  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. 了解為每個保留保留的 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" 
        } 
    }  
    
  3. 請考量下列案例:

刪除容量保留群組和容量保留

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 個保留執行個體的狀態,並進入失敗狀態。

若要解決此失敗帶來的問題,請遵循以下步驟來找出舊的保留數量值:

  1. 在 Azure 入口網站中,移至 [應用程式變更分析]
  2. 在篩選條件中選取適用的 [訂用帳戶]、[資源群組] 和 [時間範圍] 設定。 在 [時間範圍] 篩選條件中最多只能回溯 14 天。
  3. 搜尋容量保留的名稱。
  4. 尋找該保留的 sku.capacity 屬性變更。 舊的保留數量是 [舊值] 資料行底下的值。

myCapacityReservation 更新為舊的保留數量。 更新之後,該保留可立即供您的 VM 使用。

後續步驟