XenServer

虚拟机放置

XenServer® 提供了多种方式,可用于定义池中虚拟机启动或迁移到的主机:

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

反亲和性放置组

您可以将您的虚拟机分配到虚拟机组,这些虚拟机组会根据组的放置规则在池中的主机上启动。可用的放置类型有“反亲和性”和“正常”。

具有正常放置的虚拟机组没有任何特殊行为。

具有反亲和性放置的虚拟机组有以下规则:

  1. 没有单个主机是特定组中所有虚拟机运行的唯一位置。
  2. 每个主机上组内虚拟机的数量尽可能均匀。

当具有反亲和性放置规则的虚拟机组中的虚拟机从主机启动或迁移时,XenServer® 会选择将虚拟机放置在能够使虚拟机组尽可能遵循这些反亲和性放置规则的主机上。如果虚拟机启动或主机迁移无法在不违反放置规则的情况下完成,XenServer 会优先完成操作而不是遵循放置规则。

如果违反了反亲和性规则,您会收到警报。如果反亲和性组中所有正在运行的虚拟机都驻留在单个主机上,则会生成警报。如果情况发生变化,警报将被清除。如果组中只有一个虚拟机正在运行或没有虚拟机正在运行,则不会生成此警报。有关更多信息,请参阅XenCenter 警报

在以下情况下,虚拟机组放置规则不生效:

  • 在启用了工作负载平衡 (WLB) 的池中,虚拟机组不用于启动、重新启动、恢复或迁移虚拟机。相反,工作负载平衡通过分析 XenServer 资源池指标并推荐优化来为虚拟机提名最佳服务器。这些建议可能会导致虚拟机反亲和性规则被违反。
  • 如果虚拟机定义了主服务器,则此设置优先于虚拟机组设置。

使用虚拟机组时的注意事项:

  • 每个池仅支持 5 个反亲和性组。
  • 克隆虚拟机组中的虚拟机时,新虚拟机不会添加到同一虚拟机组。您必须为新虚拟机明确设置虚拟机组。
  • 如果您将虚拟机恢复到以前的快照,虚拟机将保留其当前的虚拟机组设置。此设置不会更改为拍摄快照时的值。
  • 导出虚拟机不会保留虚拟机组设置。如果您再次导入此虚拟机,它不会添加到虚拟机组。您必须为导入的虚拟机明确设置虚拟机组。

将虚拟机添加到组

您只能将虚拟机添加到单个虚拟机组。

在 XenCenter® 中,使用以下方法之一将虚拟机添加到组:

  • 新建虚拟机向导的虚拟机组选项卡中,您可以选择要将虚拟机添加到的虚拟机组,也可以创建新组。有关详细信息,请参阅创建新虚拟机
  • 在 XenCenter 的资源窗格中,您可以右键单击虚拟机或选定的虚拟机集,然后选择分配到虚拟机组。子菜单显示可用的虚拟机组,并提供创建新虚拟机组的选项。虚拟机的当前虚拟机组标有复选标记。
  • 在 XenCenter 的资源窗格中,您可以右键单击池并选择管理虚拟机组。有关详细信息,请参阅管理虚拟机组
  • 在 XenCenter 主菜单中,您可以选择虚拟机 > 分配到虚拟机组。子菜单显示可用的虚拟机组,并提供创建新虚拟机组的选项。虚拟机的当前虚拟机组标有复选标记。
  • 在 XenCenter 主菜单中,您可以选择池 > 管理虚拟机组。有关详细信息,请参阅管理虚拟机组

要使用 xe CLI 将 VM 添加到组,请运行以下命令:

xe vm-param-set uuid=<vm_uuid> groups=<vm_group_uuid>
<!--NeedCopy-->

要获取 VM 和 VM 反亲和性组的 UUID,可以使用命令 xe vm-listxe 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>
<!--NeedCopy-->

要获取 VM 和 VM 反亲和性组的 UUID,可以使用命令 xe vm-listxe vm-group-list

您还可以使用此命令将 VM 从亲和性组中移除。为此,请将 groups 参数的值留空。

xe vm-param-set uuid=<vm_uuid> groups=
<!--NeedCopy-->

使用 VM 组

您可以使用管理 VM 组对话框在 XenCenter 中管理您的 VM 组。有关详细信息,请参阅管理 VM 组

XenServer 提供了以下 xe CLI 命令,用于处理 VM 组:

创建 VM 组:

xe vm-group-create placement=anti-affinity name-label=<name_label>
<!--NeedCopy-->

<name-label> 替换为您的组名。您还可以提供一个可选的 name-description 参数,用于设置组的描述。要创建其成员遵循反亲和性放置规则的组,请指定 placement=anti-affinity。选项 normal 也可用于参数 placement。普通放置组没有特殊行为或规则。

查看可用的 VM 组:

xe vm-group-list
<!--NeedCopy-->

删除 VM 组:

xe vm-group-destroy uuid=<vm_group_uuid>
<!--NeedCopy-->

您可以列出可用的 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 的值留空。)
虚拟机放置