修改容量保留

適用於:✔️ Linux VM ✔️ Windows VM ✔️ 統一擴展集 ✔️ 彈性擴展集

建立容量保留群組和容量保留後,您可以修改保留。 本文說明如何使用 API、Azure 入口網站和 PowerShell 執行下列動作。

  • 更新容量保留中保留的執行個體數目
  • 為與容量保留群組相關聯的 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 目前已連結至容量保留群組,且該群組沒有目標大小的保留,您必須執行下列其中一個選項:

  • 為該大小建立新的保留
  • 在調整大小之前,請先從保留群組中移除虛擬機器。

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

  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. 請考慮下列案例:

    1. 如果目標 VM 大小不是群組的一部分,請為目標 VM 建立新的容量保留
    2. 如果目標 VM 大小已存在於群組中,請調整虛擬機器的大小

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

Azure 允許在所有成員容量保留均刪除,且沒有與群組相關聯的 VM 時,將群組刪除。

若要刪除容量保留,請先找出與其相關聯的所有虛擬機器。 虛擬機器清單可在 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 屬性底下找出所有虛擬機器的名稱,並使用移除 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 更新為舊的保留數量。 更新之後,保留將立即可供您的虛擬機器使用。

下一步