VM 放置

Last published : Oct 07, 2026
XenServer® 提供了多种方式,可用于定义池中的哪个主机启动或迁移您的 VM:
  • 反亲和性放置组:当具有反亲和性放置规则的 VM 组中的 VM 从主机启动或撤离时,XenServer 会将 VM 放置在能够使该组最紧密地遵循组规则的主机上。有关详细信息,请参阅反亲和性放置组。
  • 主服务器:此 VM 设置定义 XenServer 尝试启动 VM 的主机。如果设置了主服务器,则此设置的优先级高于同一 VM 上的任何 VM 组放置规则。有关详细信息,请参阅主服务器。
  • 工作负载平衡:一个虚拟设备,用于监视您的池并提供重新平衡和放置建议,以最大化 VM 密度或资源性能。默认情况下,工作负载平衡放置优先于主服务器和反亲和性放置组设置。工作负载平衡放置建议可能会违反反亲和性规则。有关详细信息,请参阅工作负载平衡。

反亲和性放置组

您可以根据组的放置规则将 VM 分配到池中主机上启动的 VM 组。可用的放置类型为“反亲和性”和“正常”。
具有正常放置的 VM 组没有任何特殊行为。
具有反亲和性放置的 VM 组具有以下规则:
  1. 没有单个主机是特定组中所有正在运行的 VM 的唯一位置。
  2. 每个主机上组内 VM 的数量尽可能均匀。
当具有反亲和性放置规则的 VM 组中的 VM 从主机启动或撤离时,XenServer® 会选择将 VM 放置在能够使 VM 组尽可能紧密地遵循这些反亲和性放置规则的主机上。如果无法在不违反放置规则的情况下完成 VM 启动或主机撤离,XenServer 会优先完成操作而不是遵循放置规则。
如果违反了反亲和性规则,您会收到警报。如果反亲和性组中所有正在运行的 VM 都驻留在单个主机上,则会生成警报。如果情况发生变化,警报将被清除。如果组中只有一个 VM 正在运行或没有 VM 正在运行,则不会生成此警报。有关详细信息,请参阅XenCenter 警报。
在以下情况下,VM 组放置规则不生效:
  • 在启用了工作负载平衡 (WLB) 的池中,VM 组不用于启动、重新启动、恢复或迁移 VM。相反,工作负载平衡通过分析 XenServer 资源池指标并推荐优化来为 VM 提名最佳服务器。这些建议可能会导致 VM 反亲和性规则被违反。
  • 如果虚拟机定义了主服务器,则此设置优先于虚拟机组设置。
使用虚拟机组时的注意事项:
  • 每个池仅支持 5 个反亲和组。
  • 克隆虚拟机组中的虚拟机时,新虚拟机不会添加到同一虚拟机组。您必须为新虚拟机显式设置虚拟机组。
  • 如果将虚拟机还原到以前的快照,则虚拟机将保留其当前的虚拟机组设置。此设置不会更改为拍摄快照时的值。
  • 导出虚拟机不会保留虚拟机组设置。如果再次导入此虚拟机,它不会添加到虚拟机组。您必须为导入的虚拟机显式设置虚拟机组。

将虚拟机添加到组

您只能将虚拟机添加到单个虚拟机组。
在 XenCenter® 中,使用以下方法之一将虚拟机添加到组:
  • 在新建虚拟机向导的虚拟机组选项卡中,您可以选择要将虚拟机添加到的虚拟机组,也可以创建新组。有关详细信息,请参阅创建新虚拟机。
  • 在 XenCenter 的资源窗格中,您可以右键单击虚拟机或选定的虚拟机集,然后选择分配到虚拟机组。子菜单显示可用的虚拟机组,并提供创建新虚拟机组的选项。虚拟机的当前虚拟机组用复选标记表示。
  • 在 XenCenter 的资源窗格中,您可以右键单击池并选择管理虚拟机组。有关详细信息,请参阅管理虚拟机组。
  • 在 XenCenter 主菜单中,您可以选择虚拟机 > 分配到虚拟机组。子菜单显示可用的虚拟机组,并提供创建新虚拟机组的选项。虚拟机的当前虚拟机组用复选标记表示。
  • 在 XenCenter 主菜单中,您可以选择池 > 管理虚拟机组。有关详细信息,请参阅管理虚拟机组。
要使用 xe CLI 将虚拟机添加到组,请运行以下命令:
xe vm-param-set uuid=<vm_uuid> groups=<vm_group_uuid>
要获取 VM 和 VM 反亲和性组的 UUID,可以使用命令 xe vm-list 和 xe vm-group-list。

更改 VM 的组

一个 VM 只能属于一个 VM 组。如果您选择将 VM 添加到一个组,它将从之前所属的组中移除。
要更改 VM 所属的组:
在 XenCenter 中,您可以在以下位置之一更新 VM 的组:
  • 在 XenCenter 的资源窗格中,您可以右键单击 VM 并选择分配到 VM 组。子菜单会显示可用的 VM 组,并提供创建新 VM 组的选项。VM 当前所属的 VM 组会用复选标记表示。
  • 在 XenCenter 的资源窗格中,您可以右键单击池并选择管理 VM 组。有关详细信息,请参阅管理 VM 组。
  • 在 XenCenter 主菜单中,您可以选择VM > 分配到 VM 组。子菜单会显示可用的 VM 组,并提供创建新 VM 组的选项。VM 当前所属的 VM 组会用复选标记表示。
  • 在 XenCenter 主菜单中,您可以选择池 > 管理 VM 组。有关详细信息,请参阅管理 VM 组。
要使用 xe CLI 更改 VM 的组,请运行以下命令:
xe vm-param-set uuid=<vm_uuid> groups=<vm_group_uuid>
要获取 VM 和 VM 反亲和性组的 UUID,可以使用命令 xe vm-list 和 xe vm-group-list。
您还可以使用此命令将 VM 从亲和性组中移除。为此,请将 groups 参数的值留空。
xe vm-param-set uuid=<vm_uuid> groups=

使用 VM 组

您可以使用 XenCenter 中的管理 VM 组对话框来管理您的 VM 组。有关详细信息,请参阅管理 VM 组。
XenServer 提供以下 xe CLI 命令来处理 VM 组:
创建 VM 组:
xe vm-group-create placement=anti-affinity name-label=<name_label>
将 <name-label> 替换为您的组的名称。您还可以提供一个可选的 name-description 参数,用于设置组的描述。要创建一个其成员遵循反亲和性放置规则的组,请指定 placement=anti-affinity。选项 normal 也可用于参数 placement。普通放置组没有特殊行为或规则。
查看可用的 VM 组:
xe vm-group-list
删除 VM 组:
xe vm-group-destroy uuid=<vm_group_uuid>
您可以列出可用的 VM 组以查找组 UUID。
如果您删除一个包含 VM 的 VM 组,这些 VM 将不再与任何组关联,但不会受到其他影响。

主服务器

主服务器是为池中 VM 提供资源的服务器。当您为 VM 指定主服务器时,XenServer 总是尝试在该服务器上启动 VM(如果可能)。如果 XenServer 无法在该服务器上启动 VM,则会自动选择同一池中的备用服务器。
在以下情况下,主服务器指定不生效:
  • 在启用了工作负载平衡 (WLB) 的池中,指定的主服务器不用于启动、重新启动、恢复或迁移 VM。相反,工作负载平衡通过分析 XenServer 资源池指标并推荐优化来为 VM 指定最佳服务器。
  • 如果 VM 分配有一个或多个虚拟 GPU,则主服务器指定不生效。相反,服务器指定基于用户设置的虚拟 GPU 放置策略。有关详细信息,请参阅 GPU 放置策略。

指定主服务器

首次创建 VM 时设置主服务器:
在 XenCenter 中:
  • 在新建 VM 向导中为 VM 指定主服务器时,请选择将 VM 放置在此服务器上,然后从列表中选择一个服务器。
  • 如果您不想指定主服务器,请单击 不为此 VM 分配主服务器。VM 将使用最合适的可用服务器上的资源。
有关详细信息,请参阅创建新 VM。
使用 xe CLI:
  • 要在创建 VM 期间指定主服务器,请运行命令 xe vm-param-set uuid=<vm_uuid> affinity=<host_uuid>。
注意:
如果您正在创建 BIOS 定制 VM,则复制 BIOS 字符串的 OEM 服务器将自动选作新 VM 的主服务器。

更改主服务器

要更改 VM 的主服务器配置:
在 XenCenter 中:
  • 转到 VM 的属性对话框,然后转到主服务器选项卡。有关详细信息,请参阅更改 VM 属性。
使用 xe CLI:
  • 要更改主服务器,请运行命令 xe vm-param-set uuid=<vm_uuid> affinity=<host_uuid>。
  • 要从 VM 中删除主服务器,请运行命令 xe vm-param-set uuid=<vm_uuid> affinity=。(将 affinity 的值留空。)