次の方法で共有

将采用统一业务流程的虚拟机规模集关联到产能预留组

适用于:✔️ 统一规模集

Azure 虚拟机规模集具有两种模式:

  • 统一业务流程:在此模式下,虚拟机规模集使用虚拟机 (VM) 配置文件或模板来纵向扩展到所需的容量。 尽管具备一些管理或自定义单独 VM 实例的功能,但统一业务流程使用相同的 VM 实例。 这些实例通过虚拟机规模集的 VM API 公开,并且与 Azure 基础结构即服务 (IaaS) VM 的标准 API 命令不兼容。 由于规模集会执行所有的实际 VM 操作,因此预留与虚拟机规模集是直接关联的。 将规模集与预留关联后,将会针对预留完成所有的后续 VM 分配。
  • 灵活业务流程:在此模式下,可以更灵活地管理单独的虚拟机规模集 VM 实例。 它们可以使用标准的 Azure IaaS VM API,而不是使用规模集接口。 要通过灵活业务流程模式使用预留,请在每台虚拟机上定义虚拟机规模集属性和产能预留属性。

要详细了解这些模式,请参阅虚拟机规模集业务流程模式

此内容适用于统一业务流程模式。 对于灵活业务流程模式,请参阅将采用灵活业务流程的虚拟机规模集关联到产能预留组

统一业务流程中的规模集限制

  • 要使统一业务流程的虚拟机规模集与产能预留兼容,必须将 singlePlacementGroup 属性设置为 False
  • 产能预留不支持多区域统一规模集的“静态固定分布”可用性选项。 此选项需要使用五个容错域。 但预留对于常规用途大小最多仅支持三个容错域。 建议的方法是使用“最大分布”选项,以将 VM 分布到每个区域中尽可能多的容错域 (FD) 中。 如果需要,请配置三个或更少的自定义容错域配置。

使用产能预留时,还存在其他一些限制。 有关完整列表,请参阅产能预留概述

将新的虚拟机规模集与产能预留组关联

重要

从 2023 年 11 月开始,如果未指定业务流程模式,则使用 PowerShell 和 Azure CLI 创建的虚拟机规模集将默认为采用灵活业务流程模式。 要详细了解此更改以及应执行的操作,请参阅面向 VMSS PowerShell/CLI 客户的中断性变更 - Microsoft 社区中心

要将新的统一虚拟机规模集与产能预留组关联,请向 PUT 提供程序构造以下 Microsoft.Compute 请求:

PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01

capacityReservationGroup 属性中添加 virtualMachineProfile 属性:

{ 
    "name": "<VMScaleSetName>", 
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}", 
    "type": "Microsoft.Compute/virtualMachineScaleSets", 
    "location": "chinanorth3", 
    "sku": { 
        "name": "Standard_D2s_v3", 
        "tier": "Standard", 
        "capacity": 3 
}, 
"properties": { 
    "virtualMachineProfile": { 
        "capacityReservation": { 
            "capacityReservationGroup":{ 
                "id":"subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/CapacityReservationGroup/{CapacityReservationGroupName}" 
            } 
         }, 
        "osProfile": { 
            … 
        }, 
        "storageProfile": { 
            … 
        }, 
        "networkProfile": { 
            …,
            "extensionProfile": { 
                … 
            } 
        } 
    } 

将现有虚拟机规模集关联到产能预留组

区域虚拟机规模集

若要将现有区域容量预留组添加到现有统一规模集,请执行以下作:

  • 停止规模集以解除分配 VM 实例。
  • 将规模集更新为使用匹配的产能预留组。
  • 启动规模集。

此过程可确保地区中的产能预留和规模集的放置处于兼容状态。

有关升级策略的重要说明

  • 自动升级:在此模式下,规模集 VM 实例与产能预留组自动关联,你无需执行任何进一步操作。 规模集 VM 重新分配后,会开始使用预留容量。
  • 滚动升级:在此模式下,规模集 VM 实例将会与产能预留组关联,你无需执行任何进一步操作。 但是,它们按批更新,并在它们之间有可选的暂停时间。 规模集 VM 重新分配后,会开始使用预留容量。
  • 手动升级:在此模式下,将虚拟机规模集附加到产能预留组时,规模集 VM 实例将保持不变。 你需要对每个规模集 VM 进行更新,方法是使用最新的规模集模型升级它
  1. 解除分配虚拟机规模集:

    POST https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}/deallocate?api-version=2021-04-01
    
  2. 向规模集模型添加 capacityReservationGroup 属性。 构造对 PUT 提供程序的以下 Microsoft.Compute 请求:

    PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01
    

    在请求正文包含 capacityReservationGroup 属性:

    "location": "chinanorth3",
    "properties": {
        "virtualMachineProfile": {
             "capacityReservation": {
                      "capacityReservationGroup": {
                            "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}"
                      }
                }
        }
    }
    

区域虚拟机规模集

如果现有容量预留组中有容量,且您想将一个现有的区域一致规模集添加到其中,只需将规模集更新至容量预留组,以便使用相应的容量预留。

重要

Microsoft世纪互联运营的 Azure 当前不支持无需解除分配即可将现有区域规模集关联到预留组的功能。

有关升级策略的重要说明

  • 自动升级:在此模式下,规模集 VM 实例与产能预留组自动关联,你无需执行任何进一步操作。 如果已运行,规模集 VM 实例将开始使用预留容量。 如果现有规模集 VM 处于解除分配状态,则会在重新分配时开始使用预留容量。
  • 滚动升级:在此模式下,规模集 VM 实例将会与产能预留组关联,你无需执行任何进一步操作。 但是,它们按批更新,并在它们之间有可选的暂停时间。 如果已运行,规模集 VM 实例将开始使用预留容量。 如果现有规模集 VM 处于解除分配状态,则会在重新分配时开始使用预留容量。
  • 手动升级:在此模式下,将虚拟机规模集附加到产能预留组时,规模集 VM 实例将保持不变。 你需要对每个规模集 VM 进行更新,方法是使用最新的规模集模型升级它

向规模集模型添加 capacityReservationGroup 属性。 构造对 PUT 提供程序的以下 Microsoft.Compute 请求:

    PUT https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourcegroupname}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMScaleSetName}?api-version=2021-04-01

在请求正文包含 capacityReservationGroup 属性:

    "location": "chinanorth3",
    "properties": {
        "virtualMachineProfile": {
             "capacityReservation": {
                      "capacityReservationGroup": {
                            "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/capacityReservationGroups/{capacityReservationGroupName}"
                      }
                }
        }
    }

使用零大小预留保护现有区域虚拟机规模集

区域部署的虚拟机规模集可以转换为使用按需容量预留,而无需重新分配。 如果现有的容量预留组中没有容量,您可以首先创建零大小匹配的预留来保护您的工作负载。 基本过程涉及 3 个步骤:

  1. 创建容量预留组,然后在每个目标区域中匹配容量预留,并将预留数量设置为零。 这不需要额外的配额或容量。 有关如何创建预留的详细信息,请参阅 “创建容量预留”。

  2. 将现有的正在运行的区域性虚拟机规模集关联到容量预留。 将虚拟机规模集(VMSS)capacityReservationGroup 属性设置为所需的容量预留组,然后在 VMSS(VMSS 统一)上执行模型更新,或使用 capacityReservationGroup 属性(VMSS Flex)更新每个成员 VM。 完成后,目标容量预留将会被过度分配,请参考区域虚拟机规模集

  3. 增加每个容量预留(CR)的保留数量,以匹配分配的虚拟机(VM)数量。 由于每个 CR 已过度分配,因此此步骤不需要额外的配额或容量。 有关如何更新预留计数的详细信息,请参阅 容量预留修改

在数量增加后,你应该看到 CR 处于完全分配状态,并且所有 VMSS 虚拟机都已分配。 请参阅 使用实例视图查看 VM 分配

有关使用共享容量预留组的信息,请参阅在 共享容量预留组中使用零大小预留保护现有区域工作负荷

地区和可用性区域注意事项

可以按地区或在一个或多个可用性区域中创建虚拟机规模集,以帮助保护它们免受数据中心级故障的影响。 要详细了解多区域虚拟机规模集,请参阅使用可用性区域的虚拟机规模集

重要

虚拟机规模集和产能预留组的位置(地区和可用性区域)必须匹配才能成功关联。 对于地区性规模集,规模集和产能预留组之间的地区必须匹配。 对于区域性规模集,规模集和产能预留组之间的地区和区域都必须匹配。

如果规模集跨多个区域分布,它会始终尝试跨包含的可用性区域均匀部署。 由于这种均匀部署,产能预留组在每个区域中应始终具有相同数量的预留 VM。 为了说明此类均匀部署的重要性,请考虑下面的示例。

在本例中,每个区域预留了不同的数量。 假设虚拟机规模集横向扩展到 75 个实例。 由于规模集将始终尝试跨区域均匀部署,因此 VM 分布应如下示例所示:

区域 预留数量 每个区域中的规模集 VM 数量 未使用的预留数量 过度分配数
1 40 二十五 15 0
2 20 二十五 0 5
3 15 二十五 0 10

在此情况下,对于区域 1 中的 15 个未使用实例,规模集会产生额外的费用。 横向扩展还依赖于区域 2 中的 5 台 VM 和区域 3 中的 10 台 VM,它们不受产能预留保护。 如果每个区域预留 25 个容量实例,则产能预留将会保护全部 75 台 VM ,并且部署将不会因未使用实例产生任何额外费用。

由于预留可以过度分配,因此规模集可超出预留限制继续正常缩放。 唯一的区别在于产能预留服务级协议不会涵盖分配的超出预留数量的 VM。 若要了解详细信息,请参阅 “过度分配容量预留”。

后续步骤