将虚拟机添加到虚拟机规模集或从中分离

将虚拟机连接到虚拟机规模集

重要

只能在灵活编排模式下将虚拟机附加到虚拟机规模集。 有关更多信息,请参阅 虚拟机规模集的编排模式

有时,需要将虚拟机附加到虚拟机 (VM) 规模集,以便受益于规模集提供的规模、可用性和灵活性。 有两种方法可将 VM 附加到规模集:在规模集中手动创建新的独立 VM 或将现有 VM 附加到规模集。

如果你需要在特定虚拟机上使用与缩放配置文件中定义的配置不同的配置,或者当规模集没有缩放配置文件时,则可以将新的独立虚拟机附加到规模集中。 通过手动附加虚拟机,你可以完全控制实例的命名,并将其放置在特定的可用区或容错域中。 VM 不必与规模集的缩放配置文件中的配置匹配,因此你可以指定操作系统、网络配置、按需或现成、VM 大小等参数。

可以通过指定要附加到的虚拟机规模集,将现有 VM 附加到现有虚拟机规模集。 VM 不必与已在规模集中运行的 VM 相同,这意味着它可以具有不同的操作系统、网络配置、优先级、磁盘等。

将新的虚拟机添加到虚拟机规模集

在创建 VM 时通过指定 virtualMachineScaleSet 属性将虚拟机附加到虚拟机规模集。

注意

将虚拟机附加到虚拟机规模集本身不会更新任何 VM 网络参数,例如负载均衡器。 如果希望此虚拟机接收来自任何负载均衡器的流量,则必须手动配置 VM 网络接口以接收来自负载均衡器的流量。 详细了解负载均衡器

  1. 转到 虚拟机。
  2. 选择创建
  3. 选择“Azure 虚拟机”。
  4. 在“基本信息”选项卡中,打开“可用性选项”下拉列表,然后选择“虚拟机规模集”。
  5. 在“虚拟机规模集”下拉列表中,选择要将此虚拟机添加到的规模集。
  6. (可选)指定放置 VM 的可用性区域或容错域。

将新虚拟机添加到虚拟机规模集的例外情况

  • VM 必须与规模集位于同一资源组中。
  • 区域(非区域性)虚拟机(未指定可用区)可以附加到区域(非区域性)虚拟机规模集。
  • 可将区域虚拟机附加到指定一个或多个区域的规模集。 虚拟机必须位于规模集跨越的区域之一。 例如,无法在区域 1 中创建虚拟机,并将其放置在跨区域 2 和 3 的规模集中。
  • 无法创建新虚拟机并将其与在虚拟机创建过程中使用 自动区域放置 的规模集相关联。 而是先创建区域虚拟机,然后将 现有虚拟机附加到规模集
  • 规模集必须处于灵活编排模式,并且 singlePlacementGroup 属性必须为 false

将现有虚拟机添加到虚拟机规模集

在创建 VM 后,通过指定 virtualMachineScaleSet 属性将现有虚拟机附加到虚拟机规模集。 将现有 VM 附加到容错域计数为 1 的规模集不需要停机时间。

注意

将虚拟机附加到虚拟机规模集本身不会更新任何 VM 网络参数,例如负载均衡器。 如果希望此虚拟机接收来自任何负载均衡器的流量,则必须手动配置 VM 网络接口以接收来自负载均衡器的流量。 详细了解负载均衡器

  1. 转到 虚拟机。
  2. 选择要附加到规模集的虚拟机名称。
  3. 在“设置” 下,选择“可用性 + 缩放”
  4. 缩放部分中,选择开始使用按钮。 如果该按钮显示为灰色,则表示你的虚拟机当前未满足附加到规模集中的要求。
  5. 在页面右侧的“附加到 VMSS”窗格中,在“选择 VMSS”下拉列表中选择要将 VM 附加到的规模集。
  6. 选择底部的“附加”按钮以附加 VM。

将现有虚拟机附加到规模集的限制

  • 规模集必须使用灵活编排模式。
  • 该规模集的 platformFaultDomainCount 必须为 1
  • VM 和规模集必须位于同一资源组中。
  • 可用性区域配置:
    • 如果目标规模集是跨可用区的或区域性的,则虚拟机必须是区域性的,并部署在符合该规模集放置配置的可用区中。 当规模集使用 自动区域放置时,此要求也适用。
    • 如果目标规模集是区域(非区域),则 VM 还必须是区域(非区域)。 无法将分区 VM 附加到区域(非分区)规模集。
  • VM 不能位于自定义的可用性集中。
  • VM 不能位于 ProximityPlacementGroup 中.
  • VM 不能位于 Azure 专用主机中。
  • VM 必须具有托管磁盘。
  • 规模集必须将 singlePlacementGroup 设置为 False
  • 如果创建规模集时未使用缩放配置文件,则会默认将 singlePlacementGroup 设置为 null。 若要将 VM 附加到没有缩放配置文件的规模集,需要在创建规模集时将 singlePlacementGroup 设置为 False
  • VM 不能是具有远程直接内存访问(RDMA)功能的 HB 系列或 N 系列 VM(预览功能)。

将虚拟机与虚拟机规模集分离

如果需要将 VM 从规模集中分离,可以按照以下步骤将 VM 从规模集中移除。

  1. 转到 虚拟机。
  2. 选择要附加到规模集的虚拟机的名称。
  3. 在“设置” 下,选择“可用性 + 缩放”
  4. 选择页面顶部的“从 VMSS 拆离”按钮。
  5. 出现确认提示时,选择“拆离”按钮。
  6. 如果拆离 VM ,门户会发送通知。

从规模集分离虚拟机的限制

  • 虚拟机规模集必须使用灵活协调模式。
  • 规模集的 platformFaultDomainCount 必须为 1
  • 如果规模集创建时没有缩放配置文件,则默认将 singlePlacementGroup 设置为 null。 若要从没有缩放配置文件的规模集中拆离 VM,singlePlacementGroup 需设置为 False
  • VM 不能是支持 RDMA 的 HB 系列或 N 系列 VM(预览功能)。

在规模集之间移动虚拟机

要将 VM 从一个规模集移到另一个规模集,请使用以下步骤:

  1. 将 VM 从规模集 A 中分离
  2. 拆离完成后,可将 VM 附加到规模集 B。

限制

将虚拟机 附加到规模集或从规模集中分离的限制条件保持不变。

故障排除

将现有虚拟机附加到现有规模集故障排除

错误消息 说明 疑难解答选项
虚拟机所引用的虚拟机规模集 "{vmssUri}" 不存在。 规模集资源不存在,或未处于灵活编排模式。 检查缩放集是否存在。 如果是,请检查它是否正在使用统一业务流程模式。
不允许执行此操作,因为引用的虚拟机规模集“{vmssName}”没有将编排模式设置为“灵活”。 该虚拟机规模集不处于灵活编排模式。 尝试附加到另一个启用了灵活业务流程模式的规模集。
引用的虚拟机“{vmName}”属于可用性集,不支持附加到虚拟机规模集。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach VmssDoesNotSupportAttachingExistingAvsetVM:你尝试附加的虚拟机属于可用性集,无法附加到虚拟机规模集。 可用性集中的 VM 无法附加到规模集。
所引用的虚拟机规模集“{vmssName}”不支持将现有虚拟机附加到该虚拟机规模集中,因为该虚拟机规模集包含 1 个以上的容错域。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach VmssDoesNotSupportAttachingExistingVMMultiFD:附加 VM 的操作失败,因为 VM 尝试附加到具有平台容错域计数超过 1 的规模集。 VM 只能附加到 platform fault domain count 大小为 1 的规模集。 尝试附加到具有平台容错域计数为 1 的规模集。
不支持使用带有非托管磁盘的虚拟机“{vmName}”并将其附加到虚拟机规模集。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach VmssDoesNotSupportAttachingExistingVMUnmanagedDisk:具有非托管磁盘的 VM 无法附加到规模集。 若要将具有磁盘的 VM 附加到规模集,请确保 VM 正在使用托管磁盘。 请访问文档,了解如何从非托管磁盘迁移到托管磁盘。
所引用的虚拟机“{vmName}”属于近距离放置组 (PPG),不支持将其附加到虚拟机规模集。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach VmssDoesNotSupportAttachingPPGVM:附加虚拟机的操作失败,因为该虚拟机属于邻近放置组。 无法将邻近放置组中的 VM 附加到规模集。 将 VM 从邻近放置组中移除,然后再尝试附加到虚拟机规模集。 请参阅文档,了解如何将 VM 移出邻近放置组。
PropertyChangeNotAllowed 不允许更改属性 virtualMachineScaleSet.id。 如果不先将虚拟机从虚拟机规模集中分离,则无法将虚拟机规模集 ID 更改为其他虚拟机规模集 ID。 将虚拟机从虚拟机规模集中分离,然后将其附加到新的规模集中。
虚拟机规模集“{0}”不支持将现有虚拟机附加到该规模集,因为该虚拟机规模集已将单一放置组设置为 true,或未将单一放置组显式设置为 false。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach VmssDoesNotSupportAttachingWithSpg:附加 VM 的操作失败,因为规模集是单个放置组的一部分。 虚拟机只能附加到将 singlePlacementGroup 设置为 false 的规模集。
虚拟机规模集不支持附加虚拟机 {0} ,因为它使用的 VM 大小 {1} 只能与启用了单个放置组的虚拟机规模集一起使用。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach 所附加的 VM 的大小要求规模集使用单个放置组。 无法将需要单个放置组的 VM 附加到规模集。
虚拟机规模集不支持附加支持 RDMA 的 VM 大小,例如 {0}。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach 无法将支持 RDMA 的 VM 与规模集分离。 分离失败,因为 VM 支持 RDMA。 只有未启用 RDMA 的 VM 才能从规模集分离。 此功能以预览版提供。

从规模集故障排除中分离虚拟机

错误消息 说明 疑难解答选项
虚拟机所引用的虚拟机规模集 "{vmssUri}" 不存在。 规模集资源不存在,或者不在灵活的业务流程模式中。 检查规模集是否存在。 如果是,请检查它是否正在使用统一业务流程模式。
不允许执行此操作,因为引用的虚拟机规模集“{vmssName}”没有将编排模式设置为“灵活”。 该规模集不处于灵活编排模式。 只有具有灵活业务流程模式的规模集才能将 VM 与其拆离。
虚拟机规模集“{vmssName}”不支持从中拆离现有虚拟机,因为虚拟机规模集有超过 1 个容错域。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach VM 分离失败,因为其所在的规模集具有一个以上的平台容错域。 VM 只能从 platform fault domain count 大小为 1 的规模集拆离。
OperationNotAllowed,消息:不允许进行此操作,因为引用的虚拟机规模集“{armId}”未将业务流程模式设置为“灵活” 你尝试附加到或从中分离的规模集是采用统一编排模式的规模集。 只有具有灵活业务流程模式的规模集才能将 VM 与其拆离。
PropertyChangeNotAllowed 不允许更改属性 virtualMachineScaleSet.id。 如果不先将虚拟机从该虚拟机规模集中分离,则无法将虚拟机规模集 ID 更改为其他虚拟机规模集 ID。 将 VM 从虚拟机规模集中分离,然后将其附加到新的虚拟机规模集中。 确保将 virtualMachineScaleSet.id 设置为 null 的值。 不正确的值包括:"""null"
虚拟机规模集“{0}”不支持将虚拟机从中分离,因为该虚拟机规模集已将单个放置组设置为 true。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach VmssDoesNotSupportAttachingWithSpg:无法分离虚拟机,因为该虚拟机规模集属于单个放置组。 VM 只能从 singlePlacementGroup 设置为 false 的规模集拆离。
虚拟机规模集不支持分离支持 RDMA 的 VM 大小,例如 {0}。 有关详细信息,请参阅 https://aka.ms/vmo/attachdetach 无法将支持 RDMA 的 VM 与规模集分离。 分离失败,因为 VM 支持 RDMA。 只有未启用 RDMA 的 VM 才能从规模集分离。 此功能以预览版提供。

接下来

了解如何使用“维护通知”“维护配置”“计划事件”管理更新和维护。