XenServer

管理池

本文介绍了一些可用于管理池的操作。

要管理单个主机,请参阅管理主机

创建资源池

可以使用 XenCenter® 或 CLI 创建资源池。当新主机加入资源池时,加入主机将其本地数据库与池范围的数据库同步,并从池继承一些设置:

  • VM、本地和远程存储配置将添加到池范围的数据库中。此配置将应用于池中加入的主机,除非您在主机加入池后明确将资源设为共享。

  • 加入主机继承池中现有的共享存储库。将创建适当的 PBD 记录,以便新主机可以自动访问现有共享存储。

  • 网络信息部分继承到加入主机:NIC、VLAN 和绑定接口的结构详细信息都已继承,但策略信息未继承。此策略信息必须重新配置,其中包括:

    • 管理 NIC 的 IP 地址,这些地址从原始配置中保留。

    • 管理接口的位置,该位置与原始配置保持相同。例如,如果其他池主机在绑定接口上具有管理接口,则加入主机必须在加入后迁移到绑定。

    • 专用存储 NIC,必须从 XenCenter 或 CLI 重新分配给加入主机,并重新插入 PBD 以相应地路由流量。这是因为 IP 地址未作为池加入操作的一部分分配,并且存储 NIC 仅在正确配置时才起作用。有关如何从 CLI 专用存储 NIC 的更多信息,请参阅管理网络

    • 在将主机添加到池之前,重新配置管理接口并将其移动到物理 NIC。主机加入池后,您可以再次重新配置管理接口。

在创建资源池之前,请查看池和加入主机的要求。有关详细信息,请参阅资源池

使用 xe CLI 将主机添加到池

  1. 在尝试加入之前,将池和加入主机更新到相同级别。您可以通过以下方式之一执行此操作:

    • 将加入主机更新到与池相同的级别:

      • (推荐)通过将加入主机与池同步,并从池协调器上保存的更新文件进行更新。有关更多信息,请参阅更新到池级别
      • 通过下载与池级别匹配的更新包,并使用它来更新加入主机。
    • 将池和加入主机都更新到最新级别:

      • 通过将主机和池与相同的更新通道同步并应用最新更新。
      • 通过使用离线更新机制将最新级别的更新应用到主机和池。

    有关这些更新方法的更多信息,请参阅使用 XenCenter 应用更新使用 xe CLI 应用更新

  2. 在要加入池的 XenServer® 主机上打开控制台。

  3. 通过发出以下命令将 XenServer 主机加入池:

    xe pool-join master-address=<address of pool coordinator> master-username=<administrator username> master-password=<password>
    <!--NeedCopy-->
    

    master-address 必须设置为池协调器的完全限定域名。password 必须是安装池协调器时设置的管理员密码。

注意:

将主机加入池时,加入主机的管理员密码会自动更改为与池协调器的管理员密码匹配。

XenServer 主机默认属于一个未命名的池。要创建第一个资源池,请重命名现有的无名池。使用 Tab 键自动完成功能查找 pool_uuid

xe pool-param-set name-label="New Pool" uuid=pool_uuid
<!--NeedCopy-->

创建异构资源池

XenServer 通过允许将不同的主机硬件加入资源池(称为异构资源池)来简化部署的扩展。异构资源池的实现得益于 Intel (FlexMigration) 和 AMD (Extended Migration) CPU 中的技术,这些技术提供了 CPU “掩蔽”或“分级”功能。CPU 掩蔽和分级功能允许将 CPU 配置为 看起来 提供与实际不同的品牌、型号或功能。此功能使您能够创建具有不同 CPU 的主机池,同时仍能安全地支持实时迁移。

注意:

加入异构池的 XenServer 主机的 CPU 必须与池中已有主机的 CPU 属于同一供应商(即 AMD、Intel)。但是,主机在系列、型号或步进编号级别上不必是相同的类型。

XenServer 简化了对异构池的支持。现在可以将主机添加到现有资源池中,而无需考虑底层 CPU 类型(只要 CPU 来自同一供应商系列)。池功能集在以下情况下动态计算:

  • 新主机加入池

  • 池成员离开池

  • 池成员在重新启动后重新连接

池功能集的任何更改都不会影响当前在池中运行的 VM。正在运行的 VM 会继续使用启动时应用的功能集。此功能集在启动时固定,并在迁移、暂停和恢复操作中保持不变。如果当功能较弱的主机加入池时池级别下降,则正在运行的 VM 可以迁移到池中的任何主机,但新添加的主机除外。当您将 VM 移动或迁移到池内或跨池的不同主机时,XenServer 会将 VM 的功能集与目标主机的功能集进行比较。如果发现功能集兼容,则允许 VM 迁移。这使得 VM 可以在池内和跨池自由移动,无论 VM 使用的 CPU 功能如何。如果您使用工作负载平衡来选择最佳目标主机以迁移 VM,则不会推荐具有不兼容功能集的主机作为目标主机。

添加共享存储

本节展示了如何在现有 NFS 服务器上创建共享存储(表示为存储库)的示例。有关支持的共享存储类型的完整列表,请参阅 存储

使用 CLI 将 NFS 共享存储添加到资源池

  1. 在池中的任何 XenServer 主机上打开控制台。

  2. 通过发出以下命令在 server:/path 上创建存储库:

    xe sr-create content-type=user type=nfs name-label="Example SR" shared=true \
        device-config:server=server \
        device-config:serverpath=path
    <!--NeedCopy-->
    

    device-config:server 是 NFS 服务器的主机名,device-config:serverpath 是 NFS 服务器上的路径。由于 shared 设置为 true,共享存储会自动连接到池中的每个 XenServer 主机。任何稍后加入的 XenServer 主机也会连接到该存储。存储库的通用唯一标识符 (UUID) 将打印在屏幕上。

  3. 通过运行以下命令查找池的 UUID:

    xe pool-list
    <!--NeedCopy-->
    
  4. 使用以下命令将共享存储设置为池范围的默认值:

    xe pool-param-set uuid=pool_uuid default-SR=sr_uuid
    <!--NeedCopy-->
    

    由于共享存储已设置为池范围的默认值,所有未来的虚拟机默认都会在共享存储上创建其磁盘。有关创建其他类型共享存储的信息,请参阅创建 SR

从资源池中移除 XenServer 主机

注意:

从池中移除任何 XenServer 主机之前,请确保关闭在该主机上运行的所有虚拟机。否则,您可能会看到一条警告,指出无法移除该主机。

从池中移除(弹出)主机时,机器将重新启动、重新初始化,并处于类似于全新安装的状态。如果本地磁盘上有重要数据,请勿从池中弹出 XenServer 主机。

使用 CLI 从资源池中移除主机

  1. 在池中的任何主机上打开控制台。

  2. 运行以下命令查找主机的 UUID:

    xe host-list
    <!--NeedCopy-->
    
  3. 从池中弹出所需主机:

    xe pool-eject host-uuid=host_uuid
    <!--NeedCopy-->
    

    XenServer 主机被弹出并处于全新安装状态。

    警告:

    如果资源池中的主机本地磁盘上存储有重要数据,请弹出该主机。当主机从池中弹出时,所有数据都将被擦除。如果要保留这些数据,请使用 XenCenter 或 xe vm-copy CLI 命令将虚拟机复制到池中的共享存储。

当包含本地存储虚拟机的 XenServer 主机从池中弹出时,这些虚拟机将存在于池数据库中。本地存储的虚拟机对其他 XenServer 主机也可见。在与这些虚拟机关联的虚拟磁盘更改为指向池中其他 XenServer 主机可见的共享存储或被移除之前,这些虚拟机不会启动。因此,我们建议您在加入池时将任何本地存储移动到共享存储。移动到共享存储允许单个 XenServer 主机在不丢失数据的情况下被弹出(或物理故障)。

注意:

当主机从其管理接口位于标记 VLAN 网络上的池中移除时,机器将重新启动,其管理接口将在同一网络上可用。

轮换池密钥

池密钥是池中主机之间共享的密钥,它使主机能够证明其是池的成员。

由于具有池管理员角色的用户可以发现此密钥,因此如果其中一名用户离开您的组织或失去其池管理员角色,最好轮换池密钥。

您可以使用 XenCenter 或 xe CLI 轮换池密钥。

XenCenter

要使用 XenCenter 轮换池的池密钥,请完成以下步骤:

  1. 资源窗格中,选择池或池中的任何主机。
  2. 菜单上,选择轮换池密钥

轮换池密钥时,系统还会提示您更改 root 密码。如果您因为认为环境已受到威胁而轮换了池密钥,请确保也更改池协调器的 root 密码。有关详细信息,请参阅更改密码

xe CLI

要使用 xe CLI 轮换池密钥,请在池中的主机上运行以下命令:

xe pool-secret-rotate
<!--NeedCopy-->

如果您因为认为环境已受到威胁而轮换了池密钥,请确保也更改 root 密码。有关详细信息,请参阅更改密码

配置 SSH 访问

默认情况下,您的 XenServer 池已启用 SSH 访问。如果要禁用对 XenServer 池的 SSH 访问,请运行以下命令:

xe pool-disable-ssh pool=<pool_uuid_or_name_label>
<!--NeedCopy-->

此命令禁用 SSH。池将拒绝新的 SSH 连接,但不会断开任何现有会话。

要启用对 XenServer 池的 SSH 访问,请运行以下命令:

xe pool-enable-ssh pool=<pool_uuid_or_name_label>
<!--NeedCopy-->

要设置当前池 SSH 临时启用超时(秒):

xe pool-param-set uuid=<pool-uuid> ssh-enabled-timeout=<seconds>
<!--NeedCopy-->

超时参数决定 SSH 服务持续时间。当设置为 0 时,SSH 无限期保持活动状态。当设置为正整数(秒)时,SSH 会在指定时间段后自动禁用。配置更改会立即对后续的活动 SSH 会话生效,并在用户每次启用 SSH 时生效。

注意:

您可以为 ssh-enabled-timeout 设置的最大值为 172800 秒(大约 2 天)。

要设置当前池的 SSH 控制台空闲超时(秒)

xe pool-param-set uuid=<pool-uuid> console-idle-timeout=<seconds>
<!--NeedCopy-->

使用非负整数值(以秒为单位)配置 VNC 和 SSH 控制台连接的空闲会话超时,其中 0 表示禁用超时(会话永不失效),正值(例如 3600)表示在指定持续时间后自动终止空闲会话,配置后设置将应用于新创建的控制台会话。

要设置当前池 SSH 自动模式

xe poolparam-set uuid=<pool-uuid>  ssh-auto-mode=true
<!--NeedCopy-->

根据 XAPI 服务健康状态配置自动 SSH 管理。启用自动模式时,SSH 激活遵循 XAPI 状态:当 XAPI 正常时 SSH 被禁用,当 XAPI 不正常时 SSH 被启用。

自动模式启用 + ssh_enabled_timeout = 0:通过 pool.enable_ssh 手动激活 SSH 会永久禁用自动模式。

自动模式启用 + ssh_enabled_timeout > 0:手动激活 SSH 会暂时禁用自动模式;当超时到期时,自动模式将恢复到原始设置。(当系统在活动 SSH 超时期间重新启动时,原始自动模式设置会丢失,并在超时/恢复时重置为启用状态。)

对于这些命令中池参数的值,您可以使用池选择器。有关更多信息,请参阅池命令

您可以同时管理 XenServer 池中所有池的 SSH 访问。有关更多信息,请参阅禁用池的 SSH 访问

池加入/弹出行为

  • 加入 – 当服务器加入池时,SSH 设置(SSH 启用超时、空闲控制台超时、自动模式)将继承。

  • 弹出 – 当服务器从池中弹出时,将恢复默认设置。

    • XenServer 8.4:SSH 已启用,自动模式已关闭

新 SSH 管理控制的定义

在池级别设置新的 XAPI API pool.set_ssh_auto_mode 以配置 SSH

set_ssh_auto_mode:配置以启用或禁用 SSH 自动模式。当自动模式启用时,SSH 状态取决于 XAPI 状态:当 XAPI 正常时,SSH 被禁用;当 XAPI 不正常时,SSH 被启用。

当用户将自动模式设置为启用且当前 ssh_enabled_timeout 为 0 时,使用 pool.enable_ssh 启用 SSH 将永久禁用自动模式。

当用户使用 pool.set_auto_mode 将自动模式设置为启用或禁用时,这称为“原始自动模式设置”。如果当前 ssh_enabled_timeout 设置为正数(例如 1800 秒),则使用 pool.enable_ssh 启用 SSH 将暂时禁用自动模式。当超时期限到期时,SSH 将自动禁用,并且自动模式将恢复到其原始设置。

当用户将 ssh_enabled_timeout 设置为正数(例如 3600 秒)并在超时期限到期之前重新启动主机(或重新启动 XAPI)时,一旦超时期限到期,SSH 将自动禁用,并且自动模式将恢复为 true,因为重新启动将导致原始自动模式设置丢失。

当您将 ssh_enabled_timeout 配置为正数(例如 180 秒)且 XAPI 随后失败时,如果在超时期限到期时 XAPI 仍处于失败状态,SSH 将保持启用状态,直到 XAPI 重新启动。XAPI 重新启动后,SSH 将自动禁用,并且自动模式将恢复为 true,因为系统重新启动会导致原始自动模式设置丢失。


This command disables SSH. The hosts refuse new SSH connections, but do not disconnect any existing sessions.

To enable SSH access to all hosts in your pool, run the following command:

xe pool-enable-ssh


Both of these commands attempt to make a change on all hosts in the pool. If the command fails on one or more of the hosts in your pool, the command continues to run for all other hosts in the pool. The command returns a list of any hosts where the command fails.

You can manage the SSH access for an individual host. For more information, see [Disable SSH access for a host](/en-us/xenserver/9/hosts-pools/manage-hosts#configure-ssh-access).-->

## 配置 VNC 控制台会话

默认情况下,XenServer 不限制每个 VM 或主机的并发 VNC 控制台会话数量。您可以在池级别限制访问并强制执行空闲超时。

要将每个 VM 或主机控制台限制为一个并发会话:

xe pool-param-set uuid= limit-console-sessions=true


启用后,额外的连接尝试将被拒绝,并显示一个错误,指示当前连接的用户。要检查当前值:

xe pool-param-get uuid= param-name=limit-console-sessions


要为 VM (domU) 控制台会话设置空闲超时:

xe pool-param-set uuid= vm-console-idle-timeout= ```

设置为 0 以禁用超时(会话永不失效)。正值会在指定秒数后自动断开空闲 VM 控制台会话。

注意:

console-idle-timeout 参数控制控制域 (Dom0) 控制台和 SSH 会话的空闲超时。vm-console-idle-timeout 参数仅适用于 VM 控制台。

在您的 XenServer 池上启用 IGMP 侦听

XenServer 将多播流量发送到所有来宾虚拟机,这会要求主机设备处理它们未请求的数据包,从而导致不必要的负载。启用 IGMP 侦听可防止本地网络上的主机接收它们未明确加入的多播组的流量,并提高多播的性能。IGMP 侦听对于带宽密集型 IP 多播应用程序(如 IPTV)特别有用。

注意:

  • 在池上启用此功能时,可能还需要在其中一个物理交换机上启用 IGMP 查询器。否则,子网络中的多播将回退到广播,并可能降低 XenServer 性能。

  • 在运行 IGMP v3 的池上启用此功能时,虚拟机迁移或网络绑定故障转移会导致 IGMP 版本切换到 v2。

  • 要在 GRE 网络中启用此功能,用户必须在 GRE 网络中设置 IGMP 查询器。或者,您可以将 IGMP 查询消息从物理网络转发到 GRE 网络中。否则,GRE 网络中的多播流量可能会被阻止。

您可以使用 XenCenter 或 xe CLI 在池上启用 IGMP 侦听。

XenCenter

  1. 导航到池属性
  2. 选择网络选项。在此处,您可以启用或禁用 IGMP 侦听。

xe CLI

  1. 获取池 UUID:

    xe pool-list

  2. 启用/禁用池的 IGMP 侦听:

    xe pool-param-set [uuid=pool-uuid] [igmp-snooping-enabled=true|false]

启用 IGMP 侦听后,您可以使用 xe CLI 查看 IGMP 侦听表。

查看 IGMP 侦听表

使用以下命令查看 IGMP 侦听表:

ovs-appctl mdb/show [bridge name]

注意:

您可以使用 xe network-list 获取网桥名称。这些网桥名称可以是 xenbr0xenbr1xenapixapi0

这将输出一个包含四列的表:

  • 端口:交换机 (OVS) 的端口。
  • VLAN:流量的 VLAN ID。
  • 组:端口请求的多播组。
  • 存活时间:此记录的存活时间(秒)。

如果 GROUP 是多播组地址,则表示在关联的交换机端口上收到了 IGMP 报告消息。这意味着多播组的接收方(成员)正在此端口上侦听。

以下示例包含两条记录:

端口 VLAN 时长
14 0 227.0.0.1 15
1 0 查询器 24

第一条记录显示,有一个接收器正在端口 14 上侦听多播组 227.0.0.1。Open vSwitch 将发往 227.0.0.1 多播组的流量转发到仅侦听此组的端口(在此示例中为端口 14),而不是广播到所有端口。链接端口 14 和组 227.0.0.1 的记录是在 15 秒前创建的。默认情况下,超时间隔为 300 秒。这意味着,如果在添加记录后 300 秒内,交换机在端口 14 上没有收到任何进一步的 IGMP 报告消息,则该记录将过期并从表中删除。

在第二条记录中,查询器,这意味着已在关联端口上收到 IGMP 查询消息。查询器会定期发送 IGMP 查询消息,这些消息会广播到所有交换机端口,以确定哪些网络节点正在侦听多播组。收到 IGMP 查询消息后,接收器会回复 IGMP 报告消息,这会导致接收器的多播记录刷新并避免过期。

VLAN 列指示接收器/查询器所在的 VLAN。“0”表示原生 VLAN。如果您想在某些标记的 VLAN 上运行多播,请确保该 VLAN 上有记录。

注意:

对于 VLAN 场景,您必须有一个查询器记录,其 VLAN 列值等于网络的 VLAN ID,否则多播在 VLAN 网络中将无法工作。

在您的 XenServer 池上启用迁移流压缩

在 VM 实时迁移期间,其内存通过网络在两个主机之间作为数据流传输。迁移流压缩功能会压缩此数据流,从而加快慢速网络上的内存传输。此功能默认禁用,但可以通过使用 XenCenter 或 xe CLI 进行更改。有关详细信息,请参阅 池属性 - 高级池参数。或者,您可以在使用命令行迁移 VM 时启用压缩。有关详细信息,请参阅 VM 命令 中的 vm-migrate 命令。

导出资源池数据

导出资源数据选项允许您为池生成资源数据报告,并将报告导出为 .xls 或 .csv 文件。此报告提供有关池中各种资源的详细信息,例如主机、网络、存储、虚拟机、VDI 和 GPU。此功能使管理员能够根据各种工作负载(例如 CPU、存储和网络)跟踪、规划和分配资源。

注意:

导出资源池数据适用于 XenServer 高级版客户。

报告中包含的资源列表和各种类型的资源数据:

服务器:

  • 名称
  • 池协调器
  • UUID
  • 地址
  • CPU 使用率
  • 网络 (平均/最大 KB)
  • 已用内存
  • 存储
  • 运行时间
  • 描述

网络:

  • 名称
  • 链接状态
  • MAC
  • MTU
  • VLAN
  • 类型
  • 位置

VDI:

  • 名称
  • 类型
  • UUID
  • 大小
  • 存储
  • 描述

存储:

  • 名称
  • 类型
  • UUID
  • 大小
  • 位置
  • 描述

虚拟机:

  • 名称
  • 电源状态
  • 运行于
  • 地址
  • MAC
  • 网卡
  • 操作系统
  • 存储
  • 已用内存
  • CPU 使用率
  • UUID
  • 运行时间
  • 模板
  • 描述

GPU:

  • 名称
  • 服务器
  • PCI 总线路径
  • UUID
  • 功耗
  • 温度
  • 已用内存
  • 计算机利用率

注意:

仅当您的 XenServer 主机连接了 GPU 时,才可获取有关 GPU 的信息。

导出资源数据

  1. 在 XenCenter 导航窗格中,选择基础结构,然后选择池。

  2. 选择菜单,然后选择导出资源数据

  3. 浏览到您希望保存报告的位置,然后单击保存