你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用现成 VM Priority Mix 实现高可用性和成本节省

注意

本文引用了 CentOS,这是一个接近生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南

适用范围:✔️ 灵活规模集

Azure 允许为虚拟机规模集部署灵活运行不可中断标准 VM 和可中断现成 VM 的组合。 可以使用灵活业务流程来部署此 Spot Priority Mix,以根据工作负载要求轻松地在高容量可用性和更低基础结构成本之间取得平衡。 使用此功能,可以轻松管理规模集功能以实现以下目标:

  • 通过应用现成 VM 的大幅折扣来降低计算基础结构成本
  • 通过规模集部署中的不可中断标准 VM 保持容量可用性
  • 保证在基础结构有时间做出反应并恢复已逐出的容量之前,所有 VM 不会因逐出而同时脱机
  • 通过支持 Azure 协调 VM 的创建和删除,简化同时需要现成 VM 和标准 VM 的计算工作负载的横向扩展与横向缩减

限制

不支持在规模集上使用启用了 singlePlacementMode 的 Spot Priority Mix。

配置组合

可以在现成 VM 和标准 VM 之间配置自定义分布百分比。 平台通过选择要创建或删除的适当 VM 数量,自动协调每个横向扩展和缩减操作以实现所需的分布。 还可以选择配置在任何缩放操作期间,希望在虚拟机规模集中保留的基础标准 VM 数量。

现成 VM 的逐出策略遵循为规模集中的现成 VM 设置的策略。 解除分配是默认行为,其中逐出的现成 VM 将移动到“已停止-解除分配”状态。 或者,现成逐出策略可以设置为删除,其中将删除 VM 及其基础磁盘。

缩小策略

使用 Spot Priority Mix 时,规模集的横向缩减策略将会运行,以尝试保持规模集中现成和标准 VM 的拆分百分比。 Spot Priority Mix 将会确定在横向扩展操作期间是否需要移除现成或标准 VM,以保持拆分百分比,而不是删除最早或最新的 VM。

ARM 模板

可以使用 ARM 模板设置 Spot Priority Mix,以使用现成优先级 VM 配置文件通过灵活业务流程将以下属性添加到规模集:

"priorityMixPolicy": {
    "baseRegularPriorityCount": 0,
    "regularPriorityPercentageAboveBase": 50
},

参数:

  • baseRegularPriorityCount - 指定设为标准优先级的和常规优先级的 VM 基数;如果规模集容量等于或低于此数字,则所有 VM 将会是常规优先级。
  • regularPriorityPercentageAboveBase - 指定当规模集容量高于 baseRegularPriorityCount 时所使用的常规现成优先级 VM 的百分比划分。

可以在 Azure 门户中虚拟机规模集创建过程的“现成虚拟机”选项卡中设置 Spot Priority Mix。 以下步骤将指导你如何在该过程中访问此功能。

  1. 登录到 Azure 门户
  2. 在搜索栏中,搜索并选择“虚拟机规模集”。
  3. 在“虚拟机规模集”页上选择“创建”。
  4. 在“基本信息”选项卡中填写必填字段,选择 灵活”作为“业务流程”模式”,然后选中“使用 Azure 现成 VM 折扣运行”复选框。
  5. 在“现成 VM”选项卡中,选中“使用 VM 和折扣现成 VM 进行缩放”部分下“使用 VM 和现成 VM 进行缩放”选项旁边的复选框。
  6. 填写基础 VM(不可中断)计数实例分布字段,以配置现成 VM 和标准 VM 之间的百分比拆分。
  7. 继续执行虚拟机规模集创建过程。

更新 Spot Priority Mix

如果现成 VM 和标准 VM 的理想百分比拆分发生更改,则可以在部署规模集后更新 Spot Priority Mix。 做出更改,更新 Spot Priority Mix 将适用于所有规模集操作,现有 VM 将保持原样。

可以在 Azure 门户“虚拟机规模集”资源页面的“配置”选项卡中更新现有 Spot Priority Mix。 以下步骤将指导你如何在该过程中访问此功能。 注意:在门户中,只能更新已启用 Spot Priority Mix 的规模集的 Spot Priority Mix。

可以在 Azure 门户“虚拟机规模集”资源页面的“配置”选项卡中更新现有 Spot Priority Mix。 以下步骤将指导你如何在该过程中访问此功能。 注意:在门户中,只能更新已启用 Spot Priority Mix 的规模集的 Spot Priority Mix。

  1. 导航到要调整其上的 Spot Priority Mix 的特定虚拟机规模集。
  2. 在左侧栏中,向下滚动到并选择配置
  3. 当前的 Spot Priority Mix 应可见。 在这里,可以更改现成 VM 和标准 VM 的基础 VM(不可中断)计数实例分布
  4. 根据需要更新 Spot Mix。
  5. 保存按钮应用更改。

示例

以下示例包含方案假设、操作表和结果演练,可帮助了解 Spot Priority Mix 配置的工作原理。

在参考这些示例之前,请注意一些重要术语:

  • sku.capacity 是虚拟机规模集中 VM 的总数
  • 基本(标准)VM 是标准非现成 VM 的数量,类似于最小 VM 数

方案 1

以下方案假设适用于此示例:

  • sku.capacity 是可变的,因为自动缩放程序将在规模集中添加或移除 VM
  • 基本(标准)VM:10
  • 额外标准 VM:0
  • 现成优先级 VM:0
  • regularPriorityPercentageAboveBase:50%
  • 逐出策略:删除
操作 sku.capacity 基本(标准)VM 额外标准 VM 现成优先级 VM
创建 10 10 0 0
向外扩展 20 10 5 5
向外扩展 30 10 10 10
向外扩展 40 10 15 15
向外扩展 41 10 15 16
向外扩展 42 10 16 16
横向缩减 - 逐出-删除(所有现成 VM 实例) 26 10 16 0
向外扩展 30 10 16 4
向外扩展 42 10 16 16
向外扩展 44 10 17 17

示例演练:

  1. 首先使用包含 10 个 VM 的虚拟机规模集。
    • sku.capacity 是可变的,不会设置 VM 的起始数目。 基本 VM 设置为 10,因此起始 VM 总数就是 10 台基本(标准)VM。
  2. 然后横向扩展 5 次,其中 50% 为标准 VM,50% 为现成 VM。
    • 请注意,由于按 50/50 拆分,因此在第四次横向扩展中,现成 VM 比标准 VM 多一个。 再次横向扩展后(第 5 次横向扩展),将使用另一台标准 VM 恢复 50/50 的平衡状态。
  3. 然后,在逐出策略为“逐出-删除”的规模集中进行缩放,这会删除所有现成 VM。
  4. 使用本方案中所述的横向扩展操作,只需创建现成 VM 即可在规模集中恢复 50/50 平衡状态。
  5. 在最后一次横向扩展前,规模集已经平衡,因此会每种类型都会创建一台 VM。

方案 2

以下方案假设适用于此示例:

  • sku.capacity 是可变的,由自动缩放程序定义;起始数目为 20
  • 基本(标准)VM:10
  • 额外标准 VM:2
  • 现成优先级 VM:8
  • regularPriorityPercentageAboveBase:25%
  • 逐出策略:解除分配
操作 sku.capacity 基本(标准)VM 额外标准 VM 现成优先级 VM
创建 20 10 2 8
向外扩展 50 10 10 30
向外扩展 110 10 25 75
横向缩减:停止-解除分配(10 个实例) 100 10 25 75(65 台正在运行的 VM,10 台停止-解除分配的 VM)
向外扩展 120 10 27 83(73 台正在运行的 VM,10 台停止-解除分配的 VM)

示例演练:

  1. 通过初始创建虚拟机规模集和现成优先级组合,你已具有 20 台 VM。
    • 其中 10 台 VM 是基本(标准)VM、2 台是额外标准 VM,8 台是现成优先级 VM,适用于 25% 的 regularPriorityPercentageAboveBase
    • 查看此比率的另一种方法是在规模集中每 4 台现成 VM 配置 1 台标准 VM。
  2. 然后横向扩展两次,以另外创建 90 台 VM;其中 23 台为标准 VM,67 台为现成 VM。
  3. 按 10 台 VM 横向缩减时,会停止-解除分配 10 台现成 VM,从而在规模集中造成不平衡。
  4. 下一次横向扩展操作将另外创建 2 台标准 VM 和 8 台现成 VM,导致你更接近于高于基础比率 25%。

故障排除

如果 Spot Priority Mix 不可用,请确保配置 priorityMixPolicy,以指定 virtualMachineProfile 中的现成 VM 优先级。 如果不启用 priorityMixPolicy 设置,你将无法访问此现成 VM 功能。

常见问题解答

问:我更改了 Spot Priority Mix 设置,为什么我的现有 VM 没有更改?

Spot Priority Mix 适用于规模集上的缩放操作。 更改现成 VM 和标准 VM 的百分比拆分不会重新平衡现有规模集。 缩放规模集时,会看到实际百分比拆分的更改。

问:是否为统一业务流程模式启用了 Spot Priority Mix?

Spot Priority Mix 仅适用于具有灵活业务流程模式的虚拟机规模集。

问:哪些区域启用了 Spot Priority Mix?

现成 VM(即 Spot Priority Mix)在全球所有 Azure 区域中都可用。

后续步骤