管理主机
本文介绍了一些可用于管理单个 XenServer® 主机的操作。
要管理与资源池相关的操作,请参阅管理池。
配置 SSH 访问
默认情况下,对 XenServer 主机的 SSH 访问是启用的。如果要禁用对 XenServer 主机的 SSH 访问,请运行以下命令:
xe host-disable-ssh host=<host_uuid_or_name_label>
<!--NeedCopy-->
此命令禁用 SSH。主机将拒绝新的 SSH 连接,但不会断开任何现有会话。
要启用对 XenServer 主机的 SSH 访问,请运行以下命令:
xe host-enable-ssh host=<host_uuid_or_name_label>
<!--NeedCopy-->
设置当前主机 SSH 临时启用超时(秒):
xe host-param-set uuid=<host-uuid> ssh-enabled-timeout=<seconds>
<!--NeedCopy-->
超时参数决定 SSH 服务持续时间。当设置为 0 时,SSH 无限期保持活动状态。当设置为正整数(秒)时,SSH 会在指定时间段后自动禁用。配置更改会立即对后续的活动 SSH 会话生效,并且每次用户从 CLI/API 启用 SSH 时都会生效。
设置当前主机 SSH 控制台空闲超时(秒)
xe host-param-set uuid=<host-uuid> console-idle-timeout=<seconds>
<!--NeedCopy-->
使用非负整数值(以秒为单位)配置 VNC 和 SSH 控制台连接的空闲会话超时,其中 0 禁用超时(会话永不失效),正值(例如 3600)在指定持续时间后自动终止空闲会话,配置后设置将应用于新创建的控制台会话。
设置当前主机 SSH 自动模式
xe host-param-set uuid=<host-uuid> ssh-auto-mode=true
<!--NeedCopy-->
注意:
默认情况下,新安装的 SSH 服务处于禁用状态,以减少攻击面。
根据 XAPI 服务运行状况配置自动 SSH 管理。启用自动模式后,SSH 激活遵循 XAPI 状态:当 XAPI 运行状况良好时,SSH 禁用;当 XAPI 运行状况不佳时,SSH 启用。
自动模式已启用 + ssh_enabled_timeout = 0:通过 host.enable_ssh 手动激活 SSH 会永久禁用自动模式。
自动模式已启用 + ssh_enabled_timeout > 0:手动激活 SSH 会暂时禁用自动模式;当超时到期时,自动模式将恢复到原始设置。(当系统在活动的 SSH 超时期间重启时,原始自动模式设置会丢失,并在超时/恢复时重置为启用。)
对于这些命令中的任一个的 host 参数值,您可以使用主机选择器。有关详细信息,请参阅主机选择器。
您可以同时管理 XenServer 池中所有主机的 SSH 访问。有关详细信息,请参阅禁用池的 SSH 访问。
带有应答文件的 SSH 自动模式
添加新的应答文件配置 <ssh-mode>on|off|auto</ssh-mode> 以控制默认的 SSH 和自动模式设置。
- 当设置为“auto”时,自动模式已启用,并且一旦 XAPI 启动,将自动停止 SSH 服务。
- 当设置为“on”或“off”时,自动模式默认禁用,并且 SSH 服务会相应地启用或禁用。
新 SSH 管理控制的定义
在主机级别设置新的 XAPI API host.set_ssh_auto_mode 以配置 SSH
set_ssh_auto_mode:配置以启用或禁用 SSH 自动模式。当自动模式启用时,SSH 状态取决于 XAPI 状态:当 XAPI 正常时,SSH 被禁用;当 XAPI 不正常时,SSH 被启用。
当用户将自动模式配置为启用且当前的 ssh_enabled_timeout 为 0 时,使用 host.enable_ssh 启用 SSH 将永久禁用自动模式。
当用户使用 host.set_auto_mode 将自动模式配置为启用或禁用时,这称为“原始自动模式设置”。如果当前的 ssh_enabled_timeout 设置为正数(例如,1800 秒),使用 host.enable_ssh 启用 SSH 将暂时禁用自动模式。当超时期限到期时,SSH 将自动禁用,并且自动模式将恢复到其原始设置。
当用户将 ssh_enabled_timeout 设置为正数(例如,3600 秒)并在超时期限到期之前重启主机(或重启 XAPI)时,一旦超时期限到期,SSH 将自动禁用,并且自动模式将恢复为 true,因为重启将导致原始自动模式设置丢失。
当您将 ssh_enabled_timeout 配置为正数(例如,180 秒)并且 XAPI 随后失败时,如果 XAPI 在超时期限到期时仍处于失败状态,SSH 将保持启用直到 XAPI 重启。在 XAPI 重启后,SSH 将自动禁用,并且自动模式将恢复为 true,因为系统重启会导致原始自动模式设置丢失。
在主机上安装 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-256 或 SHA-512。
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--> -
按照提示提供生成证书签名请求所需的信息。
- 国家名称。输入您所在国家/地区的 TLS 证书国家/地区代码。例如,加拿大的 CA 或牙买加的 JM。您可以在网上找到 TLS 证书国家/地区代码列表。
- 州或省名称(全称)。输入池所在的州或省。例如,马萨诸塞州或艾伯塔省。
- 地区名称。池所在的城市名称。
- 组织名称。您的公司或组织名称。
- 组织单位名称。输入部门名称。此字段是可选的。
- 通用名称。输入您的 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. 将证书签名请求发送到证书颁发机构
生成证书签名请求后,您可以将请求提交给您组织首选的证书颁发机构。
证书颁发机构 (CA) 是一种提供数字证书的服务,您可能在组织内部拥有可用的 CA,或者,您可以使用受信任的第三方。某些证书颁发机构要求证书托管在可从互联网访问的系统上。我们建议不要使用具有此要求的证书颁发机构。
证书颁发机构响应您的签名请求并提供以下文件:
- 签名的证书
- 如果适用,中间证书
现在,您可以将所有这些文件安装到您的 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-->
注意:
确保在命令前加上一个空格,以避免在命令历史记录中存储明文密码。
更改管理员密码后,轮换池密钥。有关详细信息,请参阅轮换池密钥。
XenServer 控制台
要使用 xsconsole 更改池或独立主机的管理员密码,请完成以下步骤:
- 在池协调器上,进入控制台。
- 以
root身份登录。 - 键入
xsconsole。按 Enter。将显示 xsconsole。 - 在 xsconsole 中,使用箭头键导航到 Authentication 选项。按 Enter。
- 导航到 Change Password。按 Enter。
- 使用管理员密码进行身份验证。
- 在 Change Password 对话框中:
- 输入当前密码。
- 输入新密码。
- 再次输入新密码以确认。
将显示 Password Change Successful 屏幕。按 Enter 关闭。
如果主机是池协调器,则此更新的密码现在会传播到池中的其他主机。
更改管理员密码后,轮换池密钥。有关详细信息,请参阅轮换池密钥。
重置丢失的 root 密码
如果您丢失了 XenServer 主机的管理员 (root) 密码,您可以通过直接访问主机来重置密码。
-
重启 XenServer 主机。
-
当 GRUB 菜单显示时,按 e 编辑启动菜单条目。
-
将
init=/sysroot/bin/sh添加到以module2开头的行。 -
按 Ctrl-X 启动到 root shell。
-
在命令行 shell 中,运行以下命令:
chroot /sysroot passwd (type the new password twice) sync /sbin/reboot -f <!--NeedCopy-->
如果主机是池协调器,则此更新后的密码现在会传播到池中的其他主机。
更改管理员密码后,轮换池密钥。有关更多信息,请参阅轮换池密钥
更改服务器上的 NTP 配置
您可以从 xsconsole 更新服务器的 NTP 配置。
- 在主机控制台中,键入
xsconsole。 - 在 xsconsole 中,转到 网络和管理接口 > 网络时间 (NTP)。
- 输入您的密码以继续。
- 从 Configure Network Time 菜单中,选择您要配置的选项。
您也可以使用 XenAPI 配置 NTP。
这允许您自动化 NTP 配置,而无需通过 SSH 直接访问 dom0。
使用 Python SDK 的示例:
session.xenapi.host.set_ntp_mode(host_ref, 'Factory')
NTP 模式:
- 出厂设置 - 使用内置的 XenServer NTP 池服务器
- DHCP - 使用 DHCP 分配的 NTP 服务器
- 自定义 - 使用用户配置的 NTP 服务器
- 禁用 - 禁用 NTP(不推荐)
要检查 NTP 同步状态:
session.xenapi.host.get_ntp_synchronized(host_ref)session.xenapi.host.get_ntp_servers_status(host_ref)
注意:
如果 NTP 直接在 dom0 上配置而不是通过 XenAPI 配置,则值可能与 XenAPI 字段不一致。
要将值与 XAPI 重新同步,请重新启动 toolstack:
xe-toolstack-restart
更改服务器上的时区
您可以使用 XenAPI 为主机配置时区。
使用 Python SDK 的示例:
session.xenapi.host.set_timezone(host_ref, 'UTC')
时区值必须使用 IANA 时区名称,例如:
- UTC
- Europe/Paris
- Asia/Kolkata
要读取当前时区:
session.xenapi.host.get_timezone(host_ref)
要列出支持的时区:
session.xenapi.host.list_timezones(host_ref)
注意:
如果时区直接在 dom0 上配置而不是通过 XenAPI 配置,则值可能与 XenAPI 字段不一致。
要将值与 XAPI 重新同步,请重新启动 toolstack:
xe-toolstack-restart
更改服务器上的 max-cstate
max-cstate 设置控制允许的最深 CPU 空闲电源状态。
支持的值:
- ”” - 无限制 (默认)
- 0 - 限制为 C0
- 1 - 限制为 C1
使用 Python SDK 的示例:
session.xenapi.host.set_max_cstate(host_ref, '1')
要读取当前值:
session.xenapi.host.get_max_cstate(host_ref)
注意:
如果 max-cstate 直接在 dom0 上配置而不是通过 XenAPI 配置,则值可能与 XenAPI 字段不一致。
要将值与 XAPI 重新同步,请重新启动工具栈:
xe-toolstack-restart
准备 XenServer 主机池以进行维护
在对属于资源池的主机执行维护操作之前,必须禁用它。禁用主机可防止在其上启动任何虚拟机。然后,您必须将其虚拟机迁移到池中的另一个 XenServer 主机。您可以通过使用 XenCenter 将 XenServer 主机置于维护模式来完成此操作。有关详细信息,请参阅 XenCenter 文档中的在维护模式下运行。
备份同步每 24 小时进行一次。将池协调器置于维护模式会导致离线虚拟机的最后 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。
关闭或重新启动 XenServer 主机
我们建议始终使用 xe CLI 或 XenCenter 关闭或重新启动 XenServer 主机。在正常运行期间,请勿使用其他方法(例如基于硬件的重置或操作系统命令)关闭或重新启动主机。这样做可能会导致主机和池出现意外行为。
要使用 xe CLI 关闭或重新启动主机,请使用以下命令:
-
阻止任何新 VM 在指定主机上启动或迁移到指定主机:
xe host-disable host=<host name> <!--NeedCopy--> -
如果需要,将所有正在运行的 VM 从主机迁移出去:
xe host-evacuate uuid=<host uuid> <!--NeedCopy--> -
使用以下 xe CLI 命令之一关闭或重新启动主机。
-
要干净地关闭主机:
``` xe host-shutdown host=
-
要干净地重新启动主机:
xe host-reboot host=<host name>
-
有关如何使用 XenCenter 关闭服务器的信息,请参阅 XenCenter 文档。
配置主机开机
远程启动主机
您可以使用 XenServer 主机开机功能,无论是通过 XenCenter 还是使用 CLI,远程开启和关闭主机。
要启用主机开机功能,主机必须具备以下电源控制解决方案之一:
-
支持 Wake on LAN 的网卡。
-
智能平台管理接口 (IPMI)。
-
基于管理 API 的自定义脚本,使您能够通过 XenServer 开启和关闭电源。有关详细信息,请参阅下一节中的为主机开机功能配置自定义脚本。
使用主机开机功能需要执行两项任务:
-
确保池中的主机支持远程控制电源。例如,它们具有 Wake on LAN 功能或支持 IPMI,或者您已创建自定义脚本。
-
使用 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", "IPMI","custom") \
power-on-config=key:value
使用 CLI 远程开启主机
运行以下命令:
xe host-power-on host=<host uuid>
```