排查工作负载平衡故障
虽然工作负载平衡通常运行顺畅,但本系列章节提供了在您遇到问题时的指导。
注意:
- XenServer® 高级版客户可以使用工作负载平衡。有关 XenServer 许可的更多信息,请参阅许可。要升级或获取 XenServer 许可, 请访问XenServer 网站。
- 工作负载平衡 8.4.1 与 XenServer 8.4 和 XenServer 9 兼容。
确定工作负载平衡虚拟设备的状态
运行 systemctl status workloadbalancing 命令。有关详细信息,请参阅
工作负载平衡命令。
常规故障排除提示
-
通过查看工作负载平衡日志文件 (
LogFile.log和wlb_install_log.log) 开始故障排除。您 可以在工作负载平衡虚拟设备中的以下位置(默认情况下)找到这些日志:/var/log/wlb这些日志文件的详细程度可以通过使用
wlb.conf文件进行配置。有关详细信息,请参阅 增加工作负载平衡日志中的详细信息。 -
在 XenCenter® 的通知 > 事件视图中检查日志以获取更多信息。
-
要检查工作负载平衡虚拟设备的内部版本号,请在虚拟设备监视的池中的主机上运行以下 命令:
xe pool-retrieve-wlb-diagnostics | more <!--NeedCopy-->工作负载平衡版本号显示在输出的顶部。
-
工作负载平衡虚拟设备基于 CentOS 操作系统。如果您在虚拟设备中遇到 CPU、内存或 磁盘相关问题,可以使用
/var/log/*中的标准 Linux 日志来分析 问题。 -
使用标准的 Linux 调试和性能调优命令来了解虚拟设备的运行情况。例如,
top、ps、free、sar和netstat。
错误消息
Workload Balancing 在屏幕上以对话框形式显示错误,并在 XenCenter 的 通知 > 事件 视图中显示错误消息。
如果出现错误消息,请查看 XenCenter 事件日志以获取更多信息。有关更多信息,请参阅 XenCenter 产品文档。
输入 Workload Balancing 凭据时遇到的问题
如果在配置 连接到 WLB 服务器 对话框时无法成功输入虚拟设备用户帐户和密码,请尝试以下操作:
-
确保 Workload Balancing 虚拟设备已正确导入和配置,并且其所有 服务都在运行。
-
检查以确保您输入了正确的凭据。连接到 WLB 服务器 对话框要求输入两种 不同的凭据:
-
WLB 服务器凭据:XenServer 使用此帐户与 Workload Balancing 通信。您在
Workload Balancing 配置期间在 Workload Balancing 虚拟设备上创建了此帐户。默认情况下,
此帐户的用户名为
wlbuser。 -
XenServer 凭据:此帐户由 Workload Balancing 虚拟设备用于连接到
XenServer 池。此帐户在 XenServer 池协调器上创建,并具有
pool-admin或pool-operator角色。
-
WLB 服务器凭据:XenServer 使用此帐户与 Workload Balancing 通信。您在
Workload Balancing 配置期间在 Workload Balancing 虚拟设备上创建了此帐户。默认情况下,
此帐户的用户名为
-
您可以在 地址 框中输入 Workload Balancing 虚拟设备的主机名或 FQDN,但此 地址必须是运行 XenCenter 的 Windows 系统可以解析和访问的地址。不要输入托管设备的物理服务器的主机名。 如果您的 FQDN 没有 DNS 条目,则必须改用 Workload Balancing 设备的 IP 地址进行连接。
-
验证主机是否正在使用正确的 DNS 服务器,并且 XenServer 主机可以使用其 FQDN 联系 Workload Balancing 服务器。要执行此检查,请从 XenServer 主机使用 Workload Balancing 设备的 FQDN ping 该设备。例如,在 XenServer 主机控制台中输入以下内容:
ping wlb-vpx-1.mydomain.net <!--NeedCopy-->
证书问题
XenServer 8.4 及更高版本默认启用证书验证。要将 Workload Balancing 虚拟 设备与 XenServer 连接,您必须将 Workload Balancing 证书导入到 XenServer 池中。
如果您的池无法连接到 Workload Balancing,请通过 禁用 Workload Balancing 的证书检查来验证您的证书配置是否是原因:
-
获取池 UUID:
xe pool-list <!--NeedCopy--> -
禁用证书验证:
xe pool-param-set wlb-verify-cert=false uuid=<uuid_of_pool> <!--NeedCopy-->
如果您的池在禁用证书验证的情况下可以连接到 Workload Balancing,则问题出在您的 证书配置。如果无法连接,则问题出在您的 Workload Balancing 凭据或您的 网络连接。请联系支持人员或参阅 Workload Balancing 故障排除 以获取更多信息。
解决问题后,请务必再次启用证书检查:
-
获取池 UUID:
xe pool-list <!--NeedCopy--> -
启用证书验证:
xe pool-param-set wlb-verify-cert=true uuid=<uuid_of_pool> <!--NeedCopy-->
防火墙问题
如果 Workload Balancing 虚拟设备位于硬件防火墙之后,并且您未 配置相应的防火墙设置,则会出现以下错误: “连接到 Workload Balancing 服务器时出错: <池 名称>。单击 Initialize WLB 以重新初始化连接设置。” 如果 Workload Balancing 设备无法访问,也可能会出现此错误。
如果 Workload Balancing 虚拟设备位于防火墙之后,请打开端口 8012。
同样,XenServer 用于联系 Workload Balancing 的端口(默认为 8012),必须与您运行 Workload Balancing 配置向导时 指定的端口号匹配。
Workload Balancing 连接错误
如果在配置并连接到 Workload Balancing 后收到连接错误,则凭据可能不 再有效。要隔离此问题,请执行以下操作:
-
验证您在 Connect to WLB Server 对话框中输入的凭据是否正确。有关 详细信息,请参阅方案 1 和 2。
-
验证您在 Connect to WLB Server 对话框中输入的 Workload Balancing 虚拟设备的 IP 地址或 FQDN 是否正确。
-
验证您在 Workload Balancing 配置期间创建的用户名是否与您在 Connect to WLB Server 对话框中 输入的凭据匹配。
-
如果在 WLB 选项卡上的“工作负载平衡状态”行中收到连接错误,则可能需要 重新配置该池上的工作负载平衡。单击 WLB 选项卡上的 连接 按钮,然后重新输入主机 凭据。
尝试从 XenCenter 建立与 工作负载平衡虚拟设备的连接时,可能会遇到以下情况之一。
场景 1

这意味着在“连接到 WLB 服务器”对话框的“XenServer 凭据”字段中输入的凭据 不正确。要解决此问题,请仔细检查凭据或选中“使用当前 XenCenter 凭据” 复选框。
场景 2

这意味着在尝试连接到工作负载平衡虚拟设备时,“连接到 WLB 服务器”对话框的 “WLB 服务器凭据”字段中输入的凭据存在问题(用户名或密码不正确)。 但是,这还可能意味着工作负载平衡服务未运行,或者 数据库配置文件存在问题。
要解决凭据问题,请确保您使用的是正确的用户名和密码。WLB 服务器凭据 字段的默认用户名是
wlbuser(不是 root)。Root 是默认的管理员用户名。请注意,
wlbuser 不是设备中具有登录权限的实际用户(它不存在于 /etc/passwd 下),
因此这些凭据仅用于连接到工作负载平衡本身。因此,可以通过
运行 wlbconfig 命令轻松重置它们。要更改您的凭据,请参阅
更改工作负载平衡凭据。
要运行 wlbconfig 命令,您必须能够以 root 身份登录设备。如果 root 密码未知,
可以使用常规的 CentOS/RHEL 密码恢复过程进行重置。
如果您已重置凭据但错误仍然存在:
- 使用
systemctl status workloadbalancing命令检查工作负载平衡进程是否正在运行。 - 通过运行此命令,确保
wlb.conf文件存在且位于正确的目录中:cat /opt/vpx/wlb/wlb.conf
场景 3

这表示从 XenCenter 连接到工作负载平衡时,连接到“服务器地址”选项下指定的端口存在问题 (输入的端口不正确或端口未侦听)。 要解决此问题:
- 确保目标设备已启动并正在运行。
- 仔细检查在工作负载平衡连接详细信息窗口中输入的端口(默认为 8012)。
- 确保此端口在设备中已启用并正在侦听。使用
telnet <host> <port>或iptables -L等命令来帮助确定端口是否正在侦听,或者此端口上的流量是否被拒绝。
场景 4

当 stunnel 出现问题(未运行或证书/密钥对 不正确)时,会发生此错误。要解决此问题,请首先验证证书和密钥:
-
运行以下命令确认证书未过期:
openssl x509 -dates -in $(grep cert\ = /etc/stunnel/stunnel.conf |cut -d '=' -f2) -noout <!--NeedCopy--> -
比较以下 2 个命令输出中的十六进制值。如果输出不匹配,则表示使用了错误的密钥 。
openssl x509 -modulus -in $(grep cert\ = /etc/stunnel/stunnel.conf |cut -d '=' -f2) -noout | openssl md5 <!--NeedCopy-->和
openssl rsa -modulus -in $(grep key\ = /etc/stunnel/stunnel.conf | cut -d '=' -f2) -noout | openssl md5 <!--NeedCopy-->
如果证书和密钥没有问题,请确保 stunnel 正在运行并绑定到端口 8012(或 配置的端口):
-
在 WLB 设备 CLI 中运行以下命令:
netstat -tulpn <!--NeedCopy-->在输出中,8012(或自定义端口)应显示
status: LISTEN。 -
如果设备空间不足,stunnel 将无法运行。使用
df -h或du -hs /*等命令查看您 的设备上是否有足够的可用空间。要增加磁盘空间,请参阅 扩展虚拟设备磁盘。
场景 5

此错误可能因为 stunnel 进程已终止而发生。如果重新启动该进程仍出现相同结果, 请重新启动 Workload Balancing 虚拟设备。
任何其他错误
如果在尝试连接到 Workload Balancing 时遇到任何其他错误,或者在执行上述步骤时需要进一步帮助,
请收集 Workload Balancing 日志,这些日志可在 Workload Balancing 设备中的 /var/log/wlb 目录下
找到。
请联系支持人员以获得进一步帮助。
Workload Balancing 停止工作
如果 Workload Balancing 不工作(例如,不允许您保存设置更改),请检查 Workload Balancing 日志文件以查找以下错误消息:
dwmdatacolsvc.exe: Don't have a valid pool. Trying again in 10 minutes.
<!--NeedCopy-->
此错误通常发生在带有一个或多个问题 VM 的池中。当 VM 出现问题时,您可能会看到 以下行为:
- Windows。Windows VM 因停止错误(“蓝屏”)而崩溃。
- Linux。Linux VM 在控制台中可能无响应,并且通常不会关机。
要解决此问题:
-
强制关闭 VM。为此,您可以在具有问题 VM 的主机上执行以下操作之一:
- 在 XenCenter 中,选择 VM,然后从 VM 菜单中单击强制关机。
-
运行
vm-shutdownxe 命令,并将 force 参数设置为true。例如:xe vm-shutdown force=true uuid=vm_uuid <!--NeedCopy-->您可以在该主机的常规选项卡(在 XenCenter 中)或通过运行
host-listxe 命令找到主机 UUID。您可以在 VM 的常规选项卡或通过运行vm-listxe 命令找到 VM UUID。 有关详细信息,请参阅命令行界面。
-
在为崩溃的 VM 提供服务的 XenServer 的
xsconsole中或在 XenCenter 中,将所有 VM 迁移到另一个主机,然后 运行xe-toolstack-restart命令。(在启用 HA 时不要重新启动工具堆栈。如果可能, 请在重新启动工具堆栈之前暂时禁用 HA。)
更改工作负载平衡服务器时出现的问题
如果您在未从工作负载平衡断开连接的情况下将池连接到不同的工作负载平衡服务器,则旧的 和新的工作负载平衡服务器都会监视该池。
要解决此问题,您可以采取以下措施之一:
- 关闭并删除旧的工作负载平衡虚拟设备。
- 手动停止工作负载平衡服务。这些服务包括分析、数据收集器和 Web 服务。
注意:
请勿使用
pool-deconfigure-wlbxe 命令将池从工作负载平衡虚拟设备断开连接, 或使用pool-initialize-wlbxe 命令指定不同的设备。