主机和资源池
本部分内容通过一系列示例介绍如何使用 xe 命令行接口 (CLI) 创建资源池。下面将给出一个简单的基于 NFS 的共享存储配置,并讨论多个简单的 VM 管理示例。还将介绍处理物理节点故障的过程。
XenServer 主机和资源池概述
资源池包括多个 XenServer 主机安装,这些主机安装绑定在一起形成可以托管虚拟机的单一托管实体。如果与共享存储结合使用,资源池将允许 VM 在该池中内存充足的任何 XenServer 主机上启动。然后,在停机时间最少的情况下运行时(实时迁移),VM 可以动态地在 XenServer 主机之间移动。如果单个 XenServer 主机发生硬件故障,管理员可以在同一资源池中的另一个 XenServer 主机上重新启动出现故障的 VM。在资源池上启用了高可用性时,VM 会在其主机发生故障时自动移动。每个资源池最多支持 64 台主机(尽管此限制并不强制执行)。
池始终至少有一个物理节点,称为池协调器(以前称为“池主服务器”)。协调器节点公开了一个管理接口(由 XenCenter 和 XenServer 命令行界面使用,称为 xe CLI)。协调器会根据需要向各个成员转发命令。
注意:
如果池协调器发生故障,只有在启用了高可用性的情况下才会重新选择协调器。
创建资源池的要求
资源池是一台或多台同类 XenServer 主机(或具有限制的异构池)的聚合,每个池最多包含 64 个主机。同类主机的定义是:
-
要加入池的主机上的 CPU 与池中已有主机上的 CPU 相同(在供应商、型号和功能方面)。
-
要加入池的主机与池中已有的主机在相同的修补程序级别运行同一版本的 XenServer 软件。
向池中加入主机时,软件将实施附加限制。特别是,XenServer 会检查加入池的主机是否满足以下条件:
-
主机不是现有资源池的成员。
-
主机未配置共享存储。
-
主机未托管任何正在运行或挂起的 VM。
-
主机上的 VM 上不存在任何正在进行的活动操作,例如 VM 关闭操作。
-
主机上的时钟已同步为与池协调器的时间相同(例如,通过使用 NTP)。
-
主机的管理接口未绑定。在主机成功加入池时可以配置管理接口。
-
管理 IP 地址是静态的(在主机自身上配置或者使用 DHCP 服务器上的相应配置)。
资源池中的 XenServer 主机可以包括不同数量的物理网络接口和不同大小的本地存储库。实际上,由于通常很难实现多个主机使用完全相同的 CPU,因此微小差异是允许的。如果可以接受具有不同 CPU 的主机加入同一个池,可以通过传递 --force
参数强制执行池加入操作。
池中的所有主机都必须位于同一个站点中,并且通过低延迟网络连接。
注意:
为池提供共享 NFS 或 iSCSI 存储的服务器必须具有静态 IP 地址。
池必须包含共享存储库,以选择在哪个 XenServer 主机上运行 VM 以及在 XenServer 主机之间动态移动 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 上时,才能将该主机加入该资源池。
使用 xe CLI 向池中添加主机
注意:
我们建议在尝试加入之前,将您的池和加入的主机更新到相同级别。
-
在要加入池的 XenServer 主机上打开控制台。
-
请通过发出以下命令将 XenServer 主机加入池中:
xe pool-join master-address=<address of pool coordinator> master-username=<administrator username> master-password=<password> <!--NeedCopy-->
master-address
必须设置为池协调器的完全限定的域名。安装池协调器时,password
必须为设置的管理员密码。
注意:
将主机加入池时,系统将自动更改用于加入主机的管理员密码,使其与池协调器的管理员密码相匹配。
默认情况下,XenServer 主机属于未命名的池。要创建您的第一个资源池,请重命名现有的无名称的池。使用 tab-complete 查找 pool_uuid
:
xe pool-param-set name-label="New Pool" uuid=pool_uuid
<!--NeedCopy-->
创建异构资源池
XenServer 允许将完全不同的主机硬件加入资源池(称为异构资源池),从而简化了不断扩展部署的过程。异构资源池使用提供 CPU“屏蔽”或“调配”的 Intel (FlexMigration) 和 AMD (Extended Migration) CPU 中的技术来实现。通过 CPU 屏蔽和调配功能,可以将 CPU 配置为看起来提供与实际不同的样式、型号或功能。此功能允许您创建主机池,尽管这些池具有完全不同的 CPU,但仍能安全地支持实时迁移。
注意:
加入异构池的 XenServer 主机的 CPU 必须与已在池中的主机的 CPU 属于同一供应商(即 AMD、Intel)。但是,在系列、型号或步进数级别上,主机的类型不必相同。
XenServer 简化了对异构池的支持。现在,不论主机的底层 CPU 属于何种类型,都可以将其加入到现有资源池(只要 CPU 来自同一个供应商系列)。在以下情况下,每次都会对池功能集进行动态计算:
-
新主机加入池
-
池成员离开池
-
池成员在重新启动之后重新连接
池功能集发生任何变化都不会影响当前在池中运行的 VM。正在运行的 VM 将继续使用启动时所应用的功能集。此功能集在启动时确定,而且在历经迁移、挂起和恢复操作后一直保持不变。如果功能有所欠缺的主机加入池,导致池的功能水平下降,正在运行的 VM 可以迁移到池中除新添加的主机以外的任何主机。在池中或跨池将 VM 移动或迁移到另一个主机时,XenServer 会将 VM 的功能集与目标主机的功能集进行比较。如果发现两者的功能集兼容,则允许迁移 VM。如此便可在池中和跨池自由移动 VM,而不论 VM 正在使用何种 CPU 功能。如果使用 Workload Balancing 为要迁移的 VM 选择最佳目标主机,则不建议将功能集不兼容的主机作为目标主机。
添加共享存储
有关支持的共享存储类型的完整列表,请参阅存储库格式。本部分内容介绍了如何在现有 NFS 服务器中创建共享存储(表示为存储库)。
使用 CLI 将 NFS 共享存储添加到资源池
-
在池中的任意 XenServer 主机上打开控制台。
-
通过发出以下命令在 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) 将显示在屏幕上。 -
通过运行以下命令查找池的 UUID:
xe pool-list <!--NeedCopy-->
-
使用以下命令将共享存储设置为池范围内的默认值:
xe pool-param-set uuid=pool_uuid default-SR=sr_uuid <!--NeedCopy-->
由于共享存储已设置为池范围内的默认共享存储,因此默认情况下,将来的所有 VM 都会在共享存储上创建自己的磁盘。有关创建其他类型的共享存储的信息,请参阅存储库格式。
从资源池中移除 XenServer 主机
注意:
在从池中移除任意 XenServer 主机之前,请确保关闭该主机上正在运行的所有 VM。否则,您会看到一条警告消息,指示无法删除该主机。
从池中删除(弹出)主机时,计算机将重新引导、重新初始化,最终达到的状态等效于全新安装的状态。如果本地磁盘中存在重要数据,请勿从池中弹出 XenServer 主机。
使用 CLI 从资源池移除主机
-
在池中的任意主机上打开控制台。
-
通过运行以下命令查找主机的 UUID:
xe host-list <!--NeedCopy-->
-
从池中删除所需的主机:
xe pool-eject host-uuid=host_uuid <!--NeedCopy-->
XenServer 主机将弹出并最终达到全新安装状态。
警告:
如果主机中包含存储在本地磁盘中的重要数据,请不要从资源池删除该主机。从池中弹出主机时,将擦除所有数据。如果要保留此数据,请先使用 XenCenter 或
xe vm-copy
CLI 命令将 VM 复制到池中的共享存储。
从池中弹出包含本地存储的 VM 的 XenServer 主机时,这些 VM 仍将在池数据库中显示。本地存储的 VM 也对其他 XenServer 主机可见。这些 VM 将不启动,除非将与其关联的虚拟磁盘更改为指向能被池中其他 XenServer 主机看到的共享存储或直接删除。因此,我们建议您在加入池时将任何本地存储移动到共享存储。移动到共享存储允许弹出单个 XenServer 主机(或出现物理故障),而不会导致数据丢失。
注意:
从在带标记的 VLAN 网络中具有管理接口的池中删除主机时,计算机将重新启动,并且其管理接口将在相同的网络中可用。
准备 XenServer 主机的池以执行维护操作
在资源池中的主机上执行维护操作之前,必须将其禁用。禁用该主机可防止在其上启动任何 VM。然后,必须将其 VM 迁移到池中的另一个 XenServer 主机。可以通过使用 XenCenter 将 XenServer 主机置于维护模式来实现此目的。有关详细信息,请参阅 XenCenter 文档中的在维护模式下运行。
备份同步每 24 小时进行一次。将池协调器置于维护模式会导致脱机 VM 的过去 24 小时的 RRD 更新丢失。
警告:
强烈建议您先重新启动所有 XenServer 主机,再安装更新,然后验证其配置。某些配置更改只有在重新启动 XenServer 主机后才会生效,因此,重新启动可以发现可能导致更新失败的配置问题。
使用 CLI 准备池中的主机以执行维护操作
-
运行以下命令:
xe host-disable uuid=XenServer_host_uuid xe host-evacuate uuid=XenServer_host_uuid <!--NeedCopy-->
此命令将禁用 XenServer 主机,然后将任何正在运行的 VM 迁移到池中的其他 XenServer 主机。
-
执行所需的维护操作。
-
维护操作完成后启用 XenServer 主机:
xe host-enable <!--NeedCopy-->
-
重新启动所有已停止的 VM 并恢复所有挂起的 VM。
导出资源池数据
使用导出资源数据选项可为您的池生成一份资源数据报告,并可将该报告导出为 .xls 或 .csv 文件。此报告提供有关池内各种资源(例如主机、网络、存储、虚拟机、VDI 和 GPU)的详细信息。该功能允许管理员根据各种工作负载(例如 CPU、存储和网络)跟踪、计划和分配资源。
注意:
导出资源池数据适用于 XenServer Premium Edition 客户。
报告中包含的资源和各种类型的资源数据列表:
服务器:
- 名称
- 池协调器
- UUID
- 地址
- CPU 使用率
- 网络(平均/最大 KB/秒)
- 已用内存
- 存储
- 运行时间
- 说明
网络:
- 名称
- 链接状态
- MAC
- MTU
- VLAN
- 类型
- 位置
VDI:
- 名称
- 类型
- UUID
- 大小
- 存储
- 说明
存储:
- 名称
- 类型
- UUID
- 大小
- 位置
- 说明
VM:
- 名称
- 电源状态
- 运行平台
- 地址
- MAC
- NIC
- 操作系统
- 存储
- 已用内存
- CPU 使用率
- UUID
- 运行时间
- 模板
- 说明
GPU:
- 名称
- 服务器
- PCI 总线路径
- UUID
- 电源使用
- 温度
- 已用内存
- 计算机利用率
注意:
仅当有 GPU 与您的 XenServer 主机连接时才提供关于 GPU 的信息。
导出资源数据
-
在 XenCenter 的“导航”窗格中,选择基础结构,然后选择相应的池。
-
选择池菜单,然后选择导出资源数据。
-
浏览到您希望保存报告的位置,然后单击保存。
主机启动
远程启动主机
可以使用 XenServer 主机开启功能,从 XenCenter 中或使用 CLI 远程打开和关闭主机。
要启用主机电源,主机必须具有以下电源控制解决方案之一:
-
启用了“局域网唤醒”的网卡。
-
Dell Remote Access Card (DRAC)。要将 XenServer 与 DRAC 结合使用,必须安装 Dell 补充包以获取 DRAC 支持。DRAC 支持要求在带有远程访问控制器的主机上安装 RACADM 命令行实用程序,并启用 DRAC 及其接口。RACADM 通常包含在 DRAC 管理软件中。有关详细信息,请参阅 Dell 的 DRAC 文档。
-
基于管理 API 且使您能够通过 XenServer 开启和关闭电源的自定义脚本。有关详细信息,请参阅下面部分中的配置主机开启功能的自定义脚本。
使用主机开机功能时需要执行以下两项任务:
-
请确保池中的主机支持远程控制电源。例如,主机具有局域网唤醒功能或 DRAC 卡,或者您创建了自定义脚本。
-
使用 CLI 或 XenCenter 启用主机开启功能。
使用 CLI 管理主机启动功能
可以使用 CLI 或 XenCenter 管理主机开启功能。本部分内容介绍与使用 CLI 管理主机启动功能有关的信息。
主机开启功能将在主机级别(即在每个 XenServer 上)启用。
启用主机开启功能后,可以使用 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 脚本,以远程打开 XenServer 计算机。但是,您还可以为 DRAC 和局域网唤醒远程电源解决方案创建自定义脚本。
本部分内容介绍与以下内容有关的信息:使用与 XenServer API 调用 host.power_on
相关联的键/值对为主机启动功能配置自定义脚本。
创建自定义脚本时,请在每次在 XenServer 主机上远程控制电源时从命令行运行该脚本。或者,可以在 XenCenter 中指定该脚本,并使用 XenCenter UI 功能与之交互。
XenServer API 记录在 XenServer 管理 API 中。
警告:
请勿更改
/etc/xapi.d/plugins/
目录中提供的默认脚本。您可以在此目录中加入新脚本,但安装后不得更改该目录中包含的脚本。
键/值对
要使用主机开启功能,请配置host.power_on_mode
和host.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)
示例脚本
此示例脚本会导入 XenServer 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 中。
与 XenServer 主机和资源池进行通信
TLS
XenServer 使用 TLS 1.2 协议加密管理 API 流量。XenServer 与管理 API 客户端(或设备)之间的任何通信都使用 TLS 1.2 协议。
重要:
我们不支持客户修改产品的加密功能。
XenServer 使用以下密码套件:
- 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
SSH
使用 SSH 客户端直接连接到 XenServer 主机时,可以使用以下算法:
密码:
- aes128-ctr
- aes256-ctr
- aes128-gcm@openssh.com
- aes256-gcm@openssh.com
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
如果要禁用对 XenServer 主机的 SSH 访问,可以在 xsconsole
中执行此操作。
- 从 XenCenter 中,打开主机控制台并以
root
身份登录。 - 键入
xsconsole
。 -
在
xsconsole
中,转到远程服务配置 > 启用/禁用远程 Shell。控制台将显示是否启用了远程 shell。
- 要更改是启用还是禁用远程 shell,请按 Enter 键。
重要:
我们不支持客户修改产品的加密功能。
在主机上安装 TLS 证书
XenServer 主机附带安装了一个默认的 TLS 证书。但是,要使用 HTTPS 保护 XenServer 与 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 证书?
- 您可能已经拥有要在 XenServer 主机上安装的可信证书。
-
另外,您也可以在服务器上创建证书,并将其发送到首选证书颁发机构进行签名。此方法更加安全,因为私钥可以保留在 XenServer 主机上,而不能在系统之间复制。
创建 TLS 证书需要执行以下步骤:
1. 生成证书签名请求
首先,生成私钥和证书签名请求。在 XenServer 主机上,完成以下步骤:
-
要创建私钥文件,请运行以下命令:
openssl genrsa -des3 -out privatekey.pem 2048 <!--NeedCopy-->
系统会提示您输入密码。此密码在后续步骤中会被删除。
-
从密钥中删除密码:
openssl rsa -in privatekey.pem -out privatekey.nop.pem <!--NeedCopy-->
-
使用私钥创建证书签名请求:
openssl req -new -key privatekey.nop.pem -out csr <!--NeedCopy-->
-
按提示提供生成证书签名请求所需的信息。
- Country Name(国家/地区名称)。输入所在国家/地区的 TLS 证书国家/地区代码。例如,CA 代表加拿大,JM 代表牙买加。可以在 Web 上查找 TLS 证书国家/地区代码的列表。
- State or Province Name (full name)(州名或省名(全称))。输入资源池所在的州或省。例如,马萨诸塞或艾伯塔。
- Locality Name(地点名称)。资源池所在城市的名称。
- 组织名称。公司或组织的名称。
- Organizational Unit Name(组织单位名称)。输入部门名称。此字段为可选字段。
- 常用名称。输入 XenServer 主机的 FQDN。建议指定未过期的 FQDN 或 IP 地址。
- 电子邮件地址。生成证书时,此电子邮件地址将包括在证书中。
证书签名请求保存在当前目录中并命名为
csr
。 -
通过运行以下命令在控制台窗口中显示证书签名请求:
cat csr <!--NeedCopy-->
-
复制整个证书签名请求并使用此信息向证书颁发机构请求证书。
证书签名请求示例:
-----BEGIN CERTIFICATE REQUEST----- MIIDBDCCAewCAQAwgYsxCzAJBgNVBAYTAlVLMRcwFQYDVQQIDA5DYW1icmlkZ2Vz aGlyZTESMBAGA1UEBwwJQ2FtYnJpZGdlMRIwEAYDVQQKDAlYZW5TZXJ2ZXIxFTAT ... SdYCkFdo+85z8hBULFzSH6jgSP0UGQU0PcfIy7KPKyI4jnFQqeCDvLdWyhtAx9gq Fu40qMSm1dNCFfnACRwYQkQgqCt/RHeUtl8srxyZC+odbunnV+ZyQdmLwLuQySUk ZL8naumG3yU= -----END CERTIFICATE REQUEST----- <!--NeedCopy-->
2. 向证书颁发机构发送证书签名请求
现在您已经生成了证书签名请求,您可以向贵组织的首选证书颁发机构发送请求。
证书颁发机构是提供数字证书的可信第三方。某些证书颁发机构要求证书托管在可从 Internet 访问的系统中。我们建议不要使用具有此要求的证书颁发机构。
证书颁发机构响应您的签名请求并提供以下文件:
- 已签名的证书
- 根证书
- 中间证书(如果适用)
现在,您可以在 XenServer 主机上安装所有这些文件。
3. 在您的 XenServer 主机上安装已签名的证书
证书颁发机构响应证书签名请求后,请完成以下步骤以在 XenServer 主机上安装证书:
- 从证书颁发机构获取已签名的证书、根证书和中间证书(如果证书颁发机构有中间证书)。
- 将密钥和证书复制到 XenServer 主机。
-
请在主机上运行以下命令:
xe host-server-certificate-install certificate=<path_to_certificate_file> private-key=<path_to_private_key> certificate-chain=<path_to_chain_file>
certificate-chain
参数为可选参数。
为了提高安全性,您可以在安装证书后删除私钥文件。
管理管理员密码
首次安装 XenServer 主机时,需要设置管理员密码或 root 用户密码。您使用此密码将 XenCenter 连接到您的主机或者(使用用户名 root
)登录 xsconsole(系统配置控制台)。
如果将主机加入池,系统将自动更改主机的管理员密码,使其与池协调器的管理员密码相匹配。
注意:
XenServer 管理员密码必须仅包含 ASCII 字符。
更改密码
可以使用 XenCenter、xe CLI 或 xsconsole 来更改管理员密码。
XenCenter
要使用 XenCenter 更改池或独立主机的管理员密码,请完成以下步骤:
- 在资源窗格中,选择池或池中的任何主机。
- 在池菜单或服务器菜单中,选择更改服务器密码。
要更改独立主机的 root 用户密码,请在资源窗格中选择该主机,从服务器菜单中单击密码,然后单击更改。
如果将 XenCenter 配置为在会话之间保存主机登录凭据,系统将记住新密码。有关详细信息,请参阅存储主机连接状态。
更改管理员密码后,轮换池密码。有关详细信息,请参阅轮换池密码。
xe CLI
要使用 xe CLI 更改管理员密码,请在池中的主机上运行以下命令:
xe user-password-change new=<new_password>
<!--NeedCopy-->
注意:
请务必在命令前面加一个空格,以避免在命令历史记录中存储明文密码。
更改管理员密码后,轮换池密码。有关详细信息,请参阅轮换池密码。
xsconsole
要使用 xsconsole 更改池或独立主机的管理员密码,请完成以下步骤:
- 在池协调器上,转到控制台。
- 以
root
身份登录。 - 键入
xsconsole
。按 Enter 键。此时将显示 xsconsole。 - 在 xsconsole 中,使用箭头键导航到 Authentication(身份验证)选项。按 Enter 键。
- 导航到 Change Password(更改密码)。 按 Enter 键。
- 使用管理员密码进行身份验证。
- 在 Change Password(更改密码)对话框中:
- 输入您的当前密码。
- 输入新密码。
- 再次输入新密码进行确认。
此时将显示 Password Change Successful(密码更改成功)屏幕。按 Enter 键消除。
如果主机是池协调器,这一更新后的密码现在会传播到池中的其他主机。
更改管理员密码后,轮换池密码。有关详细信息,请参阅轮换池密码。
重置丢失的引导密码
如果您丢失了 XenServer 主机的管理员(root 用户)密码,则可以通过直接访问主机来重置密码。
-
重新启动 XenServer 主机。
-
当 GRUB 菜单显示时,请按 e 编辑引导菜单项。
-
将
init=/sysroot/bin/sh
添加到以module2
开头的行中。 -
按 Ctrl-X 启动到 root shell。
-
在命令外壳中,运行以下命令:
chroot /sysroot passwd (type the new password twice) sync /sbin/reboot -f <!--NeedCopy-->
如果主机是池协调器,这一更新后的密码现在会传播到池中的其他主机。
更改管理员密码后,轮换池密码。
轮换池密码
池密码是在池中的主机之间共享的密码,让相应主机能够证明其池成员资格。
由于拥有池管理员角色的用户可以发现此密钥,因此最好在其中一个用户离开贵组织或失去池管理员角色时轮换池密钥。
可以使用 XenCenter 或 xe CLI 轮换池密码。
XenCenter
要使用 XenCenter 轮换池的池密码,请完成以下步骤:
- 在资源窗格中,选择池或池中的任何主机。
- 在池菜单上,选择轮换池密码。
轮换池密码时,系统还会提示您更改 root 用户密码。如果您因为认为自己的环境遭到破坏而轮换了池密码,请务必同时更改 root 用户密码。有关详细信息,请参阅更改密码。
xe CLI
要使用 xe CLI 轮换池密码,请在池中的主机上运行以下命令:
xe pool-secret-rotate
<!--NeedCopy-->
如果您因为认为自己的环境遭到破坏而轮换了池密码,请务必同时更改 root 用户密码。有关详细信息,请参阅更改密码。
对 XenServer 池启用 IGMP 监听
XenServer 将向所有来宾 VM 发送多播流量,要求其处理未请求的数据包,从而导致主机设备上出现不必要的负载。启用 IGMP 监听将阻止本地网络中的主机接收未明确加入的多播组的流量,增强了多播的性能。IGMP 监听功能对带宽密集型 IP 多播应用程序(例如 IPTV)特别有用。
备注:
IGMP 监听仅在网络后端使用 Open vSwitch 时可用。
在池中启用了此功能时,可能还有必要在其中一个物理交换机上启用 IGMP 查询器。否则,子网中的多播将回退到广播,并且可能会降低 XenServer 的性能。
在运行 IGMP v3 的池中启用了此功能时,VM 迁移或网络绑定故障转移将导致 IGMP 版本切换到 v2。
要在 GRE 网络中启用此功能,用户必须在 GRE 网络中的设置一个 IGMP 查询器。或者,可以将 IGMP 查询消息从物理网络转发到 GRE 网络。否则,GRE 网络中的多播流量会被阻止。
可以使用 XenCenter 或 xe CLI 在池上启用 IGMP 监听。
XenCenter
- 导航到池属性。
- 选择网络选项。您可以在此处启用或禁用 IGMP 监听。
xe CLI
-
获取池 UUID:
xe pool-list
-
为池启用/禁用 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
来获取桥接名称。这些桥接名称可以是xenbr0
、xenbr1
、xenapi
或xapi0
。
这将输出一个包含四列的表:
- 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 报告消息,该记录将过期并从表中删除。
在第二条记录中,GROUP 为 querier,这意味着已在关联端口上接收到了 IGMP 查询消息。查询者定期发送 IGMP 查询消息,将这些消息广播到所有交换机端口,以确定哪些网络节点正在侦听多播组。收到 IGMP 查询消息后,接收方以 IGMP 报告消息进行响应,这会使接收方的多播记录刷新并避免过期。
VLAN 列向 VLAN 指示接收方/查询者存在。0 表示本地 VLAN。如果要在某个已标记的 VLAN 上运行多播,请确保 VLAN 上有记录。
注意:
对于 VLAN 场景,您应该有一条查询者记录,其 VLAN 列值等于网络的 VLAN ID,否则多播将无法在 VLAN 网络中运行。
在 XenServer 池上启用迁移流压缩
在 VM 的实时迁移过程中,其内存将作为数据流通过网络在两台主机之间传输。迁移流压缩功能可压缩此数据流,从而加快较慢网络上的内存传输速度。默认情况下,此功能处于禁用状态,但可以使用 XenCenter 或 xe CLI 进行更改。有关详细信息,请参阅池属性 - 高级和池参数。或者,您可以在使用命令行迁移 VM 时启用压缩。有关详细信息,请参阅 VM 命令中的 vm-migrate
命令。