Citrix Hypervisor

主机和资源池

本部分内容通过一系列示例介绍如何使用 xe 命令行接口 (CLI) 创建资源池。下面将给出一个简单的基于 NFS 的共享存储配置,并讨论多个简单的 VM 管理示例。还将介绍处理物理节点故障的过程。

Citrix Hypervisor 服务器和资源池概述

资源池包括多个 Citrix Hypervisor 服务器安装,这些安装绑定在一起形成可以托管虚拟机的单一托管实体。如果与共享存储结合使用,资源池将允许 VM 在内存充足的任何 Citrix Hypervisor 服务器上启动。然后,在停机时间最少的情况下运行时(实时迁移),VM 可以动态地在 Citrix Hypervisor 服务器之间移动。如果单个 Citrix Hypervisor 服务器发生硬件故障,管理员可以在同一资源池中的另一个 Citrix Hypervisor 服务器上重新启动出现故障的 VM。在资源池上启用了高可用性时,VM 会在其主机发生故障时自动移动。每个资源池最多支持 64 台主机(尽管此限制并不强制执行)。

一个池始终至少包含一个物理节点,称为主节点。只有主节点才会公开管理接口(由 XenCenter 和称为 xe CLI 的 Citrix Hypervisor 命令行接口使用)。主节点会根据需要向各个成员转发命令。

注意:

如果池的主节点发生故障,只有在启用了高可用性的情况下才会重新选择主节点。

创建资源池的要求

资源池是由一个或多个 Citrix Hypervisor 服务器组成的异构(或存在限制的异构)群集,每个池最多包含 64 个服务器。同类主机的定义是:

  • 要加入池的服务器上的 CPU 与池中已有服务器上的 CPU 相同(在供应商、型号和功能方面)。

  • 要加入池的服务器需要与已在池中的服务器一样在相同修补程序级别运行相同版本的 Citrix Hypervisor 软件。

向池中加入服务器时,软件将实施附加限制。特别是,Citrix Hypervisor 会检查要加入池的服务器是否满足以下条件:

  • 服务器不是现有资源池的成员。

  • 服务器未配置任何共享存储。

  • 服务器未托管任何正在运行的或挂起的 VM。

  • 服务器上的 VM 上不存在任何正在进行的活动操作,例如 VM 关闭操作。

  • 服务器上的时钟同步到与池主服务器相同的时间(例如,通过使用 NTP)。

  • 服务器的管理接口未绑定。在服务器成功加入池时可以配置管理接口。

  • 管理 IP 地址是静态的(在服务器自身上配置或者使用 DHCP 服务器上的相应配置)。

资源池中的 Citrix Hypervisor 服务器可能包含不同数量的物理网络接口和不同大小的本地存储库。实际上,由于通常很难实现多个服务器使用完全相同的 CPU,因此微小差异是允许的。如果可以接受具有不同 CPU 的主机加入同一个池,可以通过传递 --force 参数强制执行池加入操作。

池中的所有主机都必须位于同一个站点中,并且通过低延迟网络连接。

注意:

为池提供共享 NFS 或 iSCSI 存储的服务器必须具有静态 IP 地址。

池必须包含共享存储库,以选择在哪个 Citrix Hypervisor 服务器上运行 VM 以及在 Citrix Hypervisor 服务器之间动态移动 VM。如有可能,请在共享存储可用后创建池。我们建议您在添加共享存储后将磁盘位于本地存储中的现有 VM 移动到共享存储。可以使用 xe vm-copy 命令或使用 XenCenter 移动 VM。

创建资源池

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

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

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

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

    • 管理 NIC 的 IP 地址,这类地址通过原始配置保留。

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

    • 专用存储 NIC,必须通过 XenCenter 或 CLI 重新分配给加入的主机,并相应地重新插入 PBD 以路由流量。这是因为加入到池的操作中并不包含分配 IP 地址这一步骤,并且存储 NIC 仅在正确配置了 IP 地址时才能运行。有关如何通过 CLI 指定专用存储 NIC 的详细信息,请参阅管理网络连接

注意:

仅当新主机的管理接口位于与某个资源池相同的已标记 VLAN 上时,才能将该主机加入该资源池。

使用 CLI 将 Citrix Hypervisor 服务器 host1 和 host2 加入到资源池

  1. 在 Citrix Hypervisor 服务器 host2 上打开控制台。

  2. 通过运行以下命令,命令 Citrix Hypervisor 服务器 host2 加入 Citrix Hypervisor 服务器 host1 上的池:

    xe pool-join master-address=host1 master-username=administrators_username master-password=password
    <!--NeedCopy-->
    

    必须将 master-address 设置为 Citrix Hypervisor 服务器 host1 的完全限定域名。安装 Citrix Hypervisor 服务器 host1 时,password 必须为设置的管理员密码。

注意:

将服务器加入池时,将自动更改用于加入服务器的管理员密码,使其与池主服务器的管理员密码相匹配。

默认情况下,Citrix Hypervisor 服务器属于未命名的池。要创建您的第一个资源池,请重命名现有的无名称的池。使用 tab-complete 查找 pool_uuid

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

创建异构资源池

Citrix Hypervisor 允许将完全不同的主机硬件加入资源池(称为异构资源池),从而随着时间简化扩展部署。异构资源池使用提供 CPU“屏蔽”或“调配”的 Intel (FlexMigration) 和 AMD (Extended Migration) CPU 中的技术来实现。通过 CPU 屏蔽和调配功能,可以将 CPU 配置为看起来提供与实际不同的样式、型号或功能。此功能允许您创建主机池,尽管这些池具有完全不同的 CPU,但仍能安全地支持实时迁移。

注意:

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

Citrix Hypervisor 简化了对异构池提供的支持。现在,不论主机的底层 CPU 属于何种类型,都可以将其加入到现有资源池(只要 CPU 来自同一个供应商系列)。在以下情况下,每次都会对池功能集进行动态计算:

  • 新主机加入池

  • 池成员离开池

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

池功能集发生任何变化都不会影响当前在池中运行的 VM。正在运行的 VM 将继续使用启动时所应用的功能集。此功能集在启动时确定,而且在历经迁移、挂起和恢复操作后一直保持不变。如果功能有所欠缺的主机加入池,导致池的功能水平下降,正在运行的 VM 可以迁移到池中除新添加的主机以外的任何主机。在池中或跨池将 VM 移动或迁移到另一台主机时,Citrix Hypervisor 会将 VM 的功能集与目标主机的功能集进行比较。如果发现两者的功能集兼容,则允许迁移 VM。如此便可在池中和跨池自由移动 VM,而不论 VM 正在使用何种 CPU 功能。如果使用 Workload Balancing 为要迁移的 VM 选择最佳目标主机,则不建议将功能集不兼容的主机作为目标主机。

添加共享存储

有关支持的共享存储类型的完整列表,请参阅存储库格式。本部分内容介绍了如何在现有 NFS 服务器中创建共享存储(表示为存储库)。

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

  1. 在池中的任何 Citrix Hypervisor 服务器上打开控制台。

  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,共享存储将自动连接到池中的每个 Citrix Hypervisor 服务器。以后加入的任何 Citrix Hypervisor 服务器也将连接到该存储。存储库的全局唯一标识符 (UUID) 将显示在屏幕上。

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

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

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

    由于共享存储已设置为池范围内的默认共享存储,因此默认情况下,将来的所有 VM 都会在共享存储上创建自己的磁盘。有关创建其他类型的共享存储的信息,请参阅存储库格式

从资源池中移除 Citrix Hypervisor 服务器

注意:

在从池中移除任意 Citrix Hypervisor 服务器之前,请确保关闭该主机上正在运行的所有 VM。否则,您会看到一条警告消息,指示无法删除该主机。

从池中删除(弹出)主机时,计算机将重新引导、重新初始化,最终达到的状态等效于全新安装的状态。如果本地磁盘中存有重要数据,请勿从池中弹出 Citrix Hypervisor 服务器。

使用 CLI 从资源池移除主机

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

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

    xe host-list
    <!--NeedCopy-->
    
  3. 从池中删除所需的主机:

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

    Citrix Hypervisor 服务器将弹出并处于全新安装状态。

    警告:

    如果主机中包含存储在本地磁盘中的重要数据,请不要从资源池删除该主机。从池中弹出主机时,将擦除所有数据。如果要保留此数据,请先使用 XenCenter 或 xe vm-copy CLI 命令将 VM 复制到池中的共享存储。

从池中弹出包含本地存储的 VM 的 Citrix Hypervisor 服务器时,这些 VM 仍将显示在池数据库中。本地存储的 VM 也对其他 Citrix Hypervisor 服务器可见。这些 VM 将不启动,除非将与其关联的虚拟磁盘更改为指向能被池中其他 Citrix Hypervisor 服务器看到的共享存储或直接删除。因此,我们建议您在加入池时将任何本地存储移动到共享存储。移动到共享存储允许各个 Citrix Hypervisor 服务器弹出(或出现物理故障),而不会导致数据丢失。

注意:

从在带标记的 VLAN 网络中具有管理接口的池中删除主机时,计算机将重新启动,并且其管理接口将在相同的网络中可用。

准备 Citrix Hypervisor 服务器的池以执行维护操作

在资源池中的主机上执行维护操作之前,必须将其禁用。禁用该主机可防止在其上启动任何 VM。然后,必须将其 VM 迁移到池中的另一个 Citrix Hypervisor 服务器。可以通过使用 XenCenter 将 Citrix Hypervisor 服务器置于维护模式来实现此目的。有关详细信息,请参阅 XenCenter 文档中的在维护模式下运行

备份同步每 24 小时进行一次。将主服务器主机置于维护模式会导致脱机 VM 的过去 24 小时的 RRD 更新丢失。

警告:

我们强烈建议您先重新启动所有 Citrix Hypervisor 服务器,再安装更新,然后验证其配置。某些配置更改只有在重新启动 Citrix Hypervisor 服务器后才会生效,因此,重新启动可以发现可能导致更新失败的配置问题。

使用 CLI 准备池中的主机以执行维护操作

  1. 请运行以下命令:

    xe host-disable uuid=Citrix Hypervisor_host_uuid
    xe host-evacuate uuid=Citrix Hypervisor_host_uuid
    <!--NeedCopy-->
    

    此命令将禁用 Citrix Hypervisor 服务器,然后将任何正在运行的 VM 迁移到池中的其他 Citrix Hypervisor 服务器。

  2. 执行所需的维护操作。

  3. 维护操作完成后启用 Citrix Hypervisor 服务器:

    xe host-enable
    <!--NeedCopy-->
    
  4. 重新启动所有已停止的 VM 并恢复所有挂起的 VM。

导出资源池数据

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

注意:

“导出资源数据”适用于 Citrix Hypervisor Premium Edition 客户或者可以通过 Citrix Virtual Apps and Desktops 授权或 Citrix DaaS 授权访问 Citrix Hypervisor 的客户。

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

服务器:

  • 名称
  • 池主服务器
  • UUID
  • 地址
  • CPU 使用率
  • 网络(平均/最大 KB/秒)
  • 已用内存
  • 存储
  • 运行时间
  • 说明

网络:

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

VDI:

  • 名称
  • 类型
  • UUID
  • 大小
  • 存储
  • 说明

存储:

  • 名称
  • 类型
  • UUID
  • 大小
  • 位置
  • 说明

VM:

  • 名称
  • 电源状态
  • 运行平台
  • 地址
  • MAC
  • NIC
  • 操作系统
  • 存储
  • 已用内存
  • CPU 使用率
  • UUID
  • 运行时间
  • 模板
  • 说明

GPU:

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

注意:

仅当 GPU 连接到 Citrix Hypervisor 服务器时,有关 GPU 的信息才可用。

导出资源数据

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

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

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

主机启动

远程启动主机

可以使用 Citrix Hypervisor 服务器开启功能,从 XenCenter 或使用 CLI 远程打开和关闭服务器。

要启用主机电源,主机必须具有以下电源控制解决方案之一:

  • 启用了“局域网唤醒”的网卡

  • Dell Remote Access Card (DRAC)。要将 Citrix Hypervisor 与 DRAC 结合使用,必须安装 Dell 补充包以获取 DRAC 支持。DRAC 支持需要在带有远程访问控制器的服务器上安装 RACADM 命令行实用程序,并启用 DRAC 及其接口。RACADM 通常包含在 DRAC 管理软件中。有关详细信息,请参阅 Dell 的 DRAC 文档。

  • 基于管理 API 且使您能够通过 Citrix Hypervisor 打开和关闭电源的自定义开机脚本。有关详细信息,请参阅下面部分中的配置主机开启功能的自定义脚本

使用主机开机功能时需要执行以下两项任务:

  1. 请确保池中的主机支持远程控制电源。例如,主机具有局域网唤醒功能或 DRAC 卡,或者您创建了自定义脚本)。

  2. 使用 CLI 或 XenCenter 启用主机开启功能。

使用 CLI 管理主机启动功能

可以使用 CLI 或 XenCenter 管理主机开启功能。本部分内容介绍与使用 CLI 管理主机启动功能有关的信息。

主机开启功能将在主机级别启用(即,在每台 Citrix Hypervisor 上)。

启用主机开启功能后,可以使用 CLI 或 XenCenter 打开主机。

使用 CLI 启用主机启动功能

请运行以下命令:

xe host-set-power-on-mode host=<host uuid> \
    power-on-mode=("" , "wake-on-lan", "DRAC","custom") \
    power-on-config=key:value
<!--NeedCopy-->

对于 DRAC,如果您使用的密钥功能,密钥为 power_on_ip 以指定密码。有关详细信息,请参阅机密

使用 CLI 远程打开主机

请运行以下命令:

xe host-power-on host=<host uuid>
<!--NeedCopy-->

配置主机开启功能的自定义脚本

如果服务器的远程电源解决方案使用默认情况下不受支持的协议(例如,响铃唤醒或 Intel 主动管理技术),可以创建自定义 Linux Python 脚本,以远程打开 Citrix Hypervisor 计算机。但是,您还可以为 DRAC 和局域网唤醒远程电源解决方案创建自定义脚本。

本节介绍与以下内容有关的信息:使用与 Citrix Hypervisor API 调用 host.power_on 相关联的键/值对为主机开启功能配置自定义脚本。

创建自定义脚本时,请在每次在 Citrix Hypervisor 服务器上远程控制电源时从命令行运行该脚本。或者,可以在 XenCenter 中指定该脚本,并使用 XenCenter UI 功能与之交互。

文档“Citrix Hypervisor 管理 API”中介绍了 Citrix Hypervisor API,该文档可从开发人员文档 Web 站点获取。

警告:

请勿更改 /etc/xapi.d/plugins/ 目录中提供的默认脚本。您可以在此目录中加入新脚本,但安装后不得更改该目录中包含的脚本。

键/值对

要使用主机开启功能,请配置host.power_on_modehost.power_on_config键。有关值的信息,请参阅以下部分。

还有一个 API 调用使您能够同时设置以下字段:

void host.set_host_power_on_mode(string mode, Dictionary<string,string> config)
<!--NeedCopy-->
host.power_on_mode
  • 定义: 包含用于指定远程电源解决方案类型(例如 Dell DRAC)的键/值对。

  • 可能的值

    • 空字符串,表示电源控制处于禁用状态。

    • DRAC:允许您指定 Dell DRAC。要使用 DRAC,您必须已安装 Dell 增补包。

    • wake-on-lan:允许您指定“局域网唤醒”。

    • 任何其他名称(用于指定自定义启动脚本)。此选项用于指定电源管理的自定义脚本。

  • 类型:字符串

host.power_on_config
  • 定义: 包含用于模式配置的键/值对。为 DRAC 提供其他信息。

  • 可能的值:

    • 如果您配置 DRAC 作为远程电源解决方案的类型,还必须指定下面的某个键:

      • power_on_ip:指定用来与电源控制卡通信的 IP 地址。或者,可以键入配置 DRAC 的网络接口的域名。

      • power_on_user:与管理处理器相关联的 DRAC 用户名,您可能已更改其出厂时的默认设置。

      • power_on_password_secret:指定使用加密功能来保护密码的安全。

    • 要使用加密功能存储密码,请指定键 power_on_password_secret。有关详细信息,请参阅机密

  • 类型:Map (string, string)

示例脚本

此示例脚本会导入 Citrix Hypervisor API,将自身定义为自定义脚本,然后传递特定于要远程控制的主机的参数。必须在所有自定义脚本中定义参数 session

结果在脚本不成功时显示。

import XenAPI
def custom(session,remote_host,
power_on_config):
result="Power On Not Successful"
for key in power_on_config.keys():
result=result+''
key=''+key+''
value=''+power_on_config[key]
return result
<!--NeedCopy-->

注意:

创建脚本后,使用 .py 扩展名将其保存在 /etc/xapi.d/plugins 中。

与 Citrix Hypervisor 服务器和资源池通信

TLS

Citrix Hypervisor 使用 TLS 1.2 协议加密管理 API 流量。Citrix Hypervisor 与管理 API 客户端(或设备)之间的任何通信都使用 TLS 1.2 协议。

重要提示:

我们不支持客户修改产品的加密功能。

Citrix Hypervisor 将使用以下密码套件:

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

此外,还支持以下密码套件,用于向后兼容某些版本的 Citrix Virtual Apps and Desktops:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_CBC_SHA256

注意:

这些额外的密码套件将使用 CBC 模式。尽管部分组织首选 GCM 模式,但 Windows Server 2012 R2 不支持使用 GCM 模式的 RSA 密码套件。在连接到 Citrix Hypervisor 服务器或池的 Windows Server 2012 R2 上运行的客户端可能需要使用这些 CBC 模式的密码套件。

SSH

使用 SSH 客户端直接连接到 Citrix Hypervisor 服务器时,可以使用以下算法:

密码:

  • aes128-ctr
  • aes256-ctr
  • aes128-gcm@openssh.com
  • aes256-gcm@openssh.com
  • aes128-cbc
  • aes256-cbc

MAC:

  • hmac-sha2-256
  • hmac-sha2-512
  • hmac-sha1

KexAlgorithms:

  • curve25519-sha256
  • ecdh-sha2-nistp256
  • ecdh-sha2-nistp384
  • ecdh-sha2-nistp521
  • diffie-hellman-group14-sha1

HostKeyAlgorithms:

  • ecdsa-sha2-nistp256
  • ecdsa-sha2-nistp384
  • ecdsa-sha2-nistp521
  • ssh-ed25519
  • ssh-rsa

注意:

要限制只能使用上述列表中的密码套件,请确保安装修补程序 XS82E015 - 适用于 Citrix Hypervisor 8.2

如果要禁用对 Citrix Hypervisor 服务器的 SSH 访问,可以在 xsconsole 中执行此操作。

  1. 从 XenCenter 中,打开服务器控制台并以 root 身份登录。
  2. 键入 xsconsole
  3. xsconsole 中,转到远程服务配置 > 启用/禁用远程 Shell

    控制台将显示是否启用了远程 shell。

  4. 要更改是启用还是禁用远程 shell,请按 Enter 键。

重要提示:

我们不支持客户修改产品的加密功能。

在服务器上安装 TLS 证书

Citrix Hypervisor 服务器附带安装了一个默认 TLS 证书。但是,要使用 HTTPS 保护 Citrix Hypervisor 与 Citrix Virtual Apps and Desktops 之间的通信安全,请安装受信任的证书颁发机构提供的证书。

本部分内容介绍了如何使用 xe CLI 安装证书。有关通过 XenCenter 使用证书的信息,请参阅 XenCenter 文档

确保您的 TLS 证书及其密钥满足以下要求:

  • 证书和密钥对是 RSA 密钥。
  • 密钥与证书匹配。
  • 密钥在单独的文件中提供给证书。
  • 该证书在单独的文件中提供给任意中间证书。
  • 密钥文件必须是以下类型之一:.pem.key
  • 任意证书文件必须是以下类型之一:.pem.cer.crt
  • 密钥大于或等于 2048 位,长度小于或等于 4096 位。
  • 密钥是未加密的 PKCS #8 密钥,没有专属密钥。
  • 密钥和证书采用 base-64 编码的 PEM 格式。
  • 证书有效且尚未过期。
  • 签名算法为 SHA-2 (SHA256)。

当您选择的证书和密钥不满足这些要求时,xe CLI 会发出警告。

我从何处获取 TLS 证书?

1. 生成证书签名请求

首先,生成私钥和证书签名请求。在 Citrix Hypervisor 服务器上,完成以下步骤:

  1. 要创建私钥文件,请运行以下命令:

    openssl genrsa -des3 -out privatekey.pem 2048
    <!--NeedCopy-->
    
  2. 从密钥中删除密码:

    openssl rsa -in privatekey.pem -out privatekey.nop.pem
    <!--NeedCopy-->
    
  3. 使用私钥创建证书签名请求:

    openssl req -new -key privatekey.nop.pem -out csr
    <!--NeedCopy-->
    
  4. 按提示提供生成证书签名请求所需的信息:

    • Country Name(国家/地区名称)。输入所在国家/地区的 TLS 证书国家/地区代码。例如,CA 代表加拿大,JM 代表牙买加。可以在 Web 上查找 TLS 证书国家/地区代码的列表。
    • State or Province Name (full name)(州名或省名(全称))。输入资源池所在的州或省。例如,马萨诸塞或艾伯塔。
    • Locality Name(地点名称)。资源池所在城市的名称。
    • 组织名称。公司或组织的名称。
    • Organizational Unit Name(组织单位名称)。输入部门名称。此字段为可选字段。
    • 常用名称。输入 Citrix Hypervisor 服务器的 FQDN。 Citrix 建议指定未过期的 FQDN 或 IP 地址。
    • 电子邮件地址。生成证书时,此电子邮件地址将包括在证书中。

    证书签名请求保存在当前目录中并命名为 csr

  5. 通过运行以下命令在控制台窗口中显示证书签名请求:

    cat csr
    <!--NeedCopy-->
    
  6. 复制整个证书签名请求并使用此信息向证书颁发机构请求证书。

    证书签名请求示例:

    -----BEGIN CERTIFICATE REQUEST-----
    MIIDBDCCAewCAQAwgYsxCzAJBgNVBAYTAlVLMRcwFQYDVQQIDA5DYW1icmlkZ2Vz
    aGlyZTESMBAGA1UEBwwJQ2FtYnJpZGdlMRIwEAYDVQQKDAlYZW5TZXJ2ZXIxFTAT
    ...
    SdYCkFdo+85z8hBULFzSH6jgSP0UGQU0PcfIy7KPKyI4jnFQqeCDvLdWyhtAx9gq
    Fu40qMSm1dNCFfnACRwYQkQgqCt/RHeUtl8srxyZC+odbunnV+ZyQdmLwLuQySUk
    ZL8naumG3yU=
    -----END CERTIFICATE REQUEST-----
    <!--NeedCopy-->
    

2. 向证书颁发机构发送证书签名请求

现在您已经生成了证书签名请求,您可以向贵组织的首选证书颁发机构发送请求。

证书颁发机构是提供数字证书的可信第三方。某些证书颁发机构要求证书托管在可从 Internet 访问的系统中。我们建议不要使用具有此要求的证书颁发机构。

证书颁发机构响应您的签名请求并提供以下文件:

  • 已签名的证书
  • 根证书
  • 中间证书(如果适用)

现在,您可以在 Citrix Hypervisor 服务器上安装所有这些文件。

3. 在您的 Citrix Hypervisor 服务器上安装已签名的证书

证书颁发机构响应证书签名请求后,请完成以下步骤以在 Citrix Hypervisor 服务器上安装证书:

  1. 从证书颁发机构获取已签名的证书、根证书和中间证书(如果证书颁发机构有中间证书)。
  2. 将密钥和证书复制到 Citrix Hypervisor 服务器。
  3. 在服务器上运行以下命令:

    xe host-server-certificate-install certificate=<path_to_certificate_file> private-key=<path_to_private_key> certificate-chain=<path_to_chain_file>
    

    certificate-chain 参数为可选参数。

为了提高安全性,您可以在安装证书后删除私钥文件。

管理管理员密码

首次安装 Citrix Hypervisor 服务器时,需要设置管理员密码或 root 用户密码。您使用此密码将 XenCenter 连接到您的服务器或者(使用应用户名 root)登录 xsconsole(系统配置控制台)。

如果您将服务器加入池,则会自动更改服务器的管理员密码,使其与池主服务器的管理员密码相匹配。

注意:

Citrix Hypervisor 管理员密码必须仅包含 ASCII 字符。

更改密码

可以使用 XenCenter、xe CLI 或 xsconsole 来更改管理员密码。

XenCenter

要使用 XenCenter 更改池或独立服务器的管理员密码,请完成以下步骤:

  1. 资源窗格中,选择池或池中的任何服务器。
  2. 菜单或服务器菜单中,选择更改服务器密码

要更改独立服务器的 root 用户密码,请在资源窗格中选择服务器,从服务器菜单中单击密码,然后单击更改

如果将 XenCenter 配置为在会话之间保存服务器登录凭据,则系统将记住新密码。有关详细信息,请参阅存储服务器连接状态

更改管理员密码后,轮换池密码。有关详细信息,请参阅轮换池密码

xe CLI

要使用 xe CLI 更改管理员密码,请在池中的服务器上运行以下命令:

  xe user-password-change new=<new_password>
<!--NeedCopy-->

注意:

请务必在命令前面加一个空格,以避免在命令历史记录中存储明文密码。

更改管理员密码后,轮换池密码。有关详细信息,请参阅轮换池密码

xsconsole

要使用 xsconsole 更改池或独立服务器的管理员密码,请完成以下步骤:

  1. 在池主服务器上,转到控制台。
  2. root 身份登录。
  3. 键入 xsconsole。按 Enter 键。此时将显示 xsconsole
  4. xsconsole 中,使用箭头键导航到 Authentication(身份验证)选项。按 Enter 键。
  5. 导航到 Change Password(更改密码)。 按 Enter 键。
  6. 使用管理员密码进行身份验证。
  7. Change Password(更改密码)对话框中:
    1. 输入您的当前密码。
    2. 输入新密码。
    3. 再次输入新密码进行确认。

    此时将显示 Password Change Successful(密码更改成功)屏幕。按 Enter 键消除。

如果服务器是池主服务器,这一更新后的密码现在会传播到池中的其他服务器。

更改管理员密码后,轮换池密码。有关详细信息,请参阅轮换池密码

重置丢失的引导密码

如果您丢失了 Citrix Hypervisor 服务器的管理员(root 用户)密码,则可以通过直接访问服务器来重置密码。

  1. 重新启动 Citrix Hypervisor 服务器。

  2. 当 GRUB 菜单显示时,请按 e 编辑引导菜单项。

  3. init=/sysroot/bin/sh 添加到以 module2 开头的行中。

  4. Ctrl-X 启动到 root shell。

  5. 在命令外壳中,运行以下命令:

    chroot /sysroot
    passwd
    
    (type the new password twice)
    
    sync
    /sbin/reboot -f
    <!--NeedCopy-->
    

如果服务器是池主服务器,这一更新后的密码现在会传播到池中的其他服务器。

更改管理员密码后,轮换池密码。

轮换池密码

池密码是在池中的服务器之间共享的密码,使服务器能够证明其对池的成员资格。

由于拥有池管理员角色的用户可以发现此密钥,因此最好在其中一个用户离开贵组织或失去池管理员角色时轮换池密钥。

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

XenCenter

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

  1. 资源窗格中,选择池或池中的任何服务器。
  2. 菜单上,选择轮换池密码

轮换池密码时,系统还会提示您更改 root 用户密码。如果您因为认为自己的环境遭到破坏而轮换了池密码,请务必同时更改 root 用户密码。有关详细信息,请参阅更改密码

xe CLI

要使用 xe CLI 轮换池密码,请在池中的服务器上运行以下命令:

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

如果您因为认为自己的环境遭到破坏而轮换了池密码,请务必同时更改 root 用户密码。有关详细信息,请参阅更改密码

对 Citrix Hypervisor 池启用 IGMP 监听

Citrix Hypervisor 将向所有来宾 VM 发送多播流量,要求其处理未请求的数据包,从而导致主机设备上出现不必要的负载。启用 IGMP 监听将阻止本地网络中的主机接收未明确加入的多播组的流量,增强了多播的性能。IGMP 监听功能对带宽密集型 IP 多播应用程序(例如 IPTV)特别有用。

备注:

  • IGMP 监听仅在网络后端使用 Open vSwitch 时可用。

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

  • 在运行 IGMP v3 的池中启用了此功能时,VM 迁移或网络绑定故障转移将导致 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

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

  • port:交换机的端口 (OVS)。
  • VLAN:流量的 VLAN ID。
  • GROUP:端口请求的多播组。
  • Age:此记录的存在时间(以秒为单位)。

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

以下面的示例为例,其中包含两条记录:

port VLAN GROUP Age
14 0 227.0.0.1 15
1 0 querier 24

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

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

VLAN 列向 VLAN 指示接收方/查询者存在。0 表示本地 VLAN。如果要在某个已标记的 VLAN 上运行多播,请确保 VLAN 上有记录。

注意:

对于 VLAN 场景,您应该有一条查询者记录,其 VLAN 列值等于网络的 VLAN ID,否则多播将无法在 VLAN 网络中运行。