Workload Balancing 故障排除
尽管通常情况下 Workload Balancing 都会顺畅地运行,但本系列部分仍提供了一些有用信息,可以在您遇到问题时为您提供指导。
备注:
- Workload Balancing 适用于 XenServer Premium Edition 客户。有关 XenServer 许可的详细信息,请参阅许可。要升级或购买 XenServer 许可证,请访问 XenServer Web 站点。
- Workload Balancing 8.3.0 及更高版本与 XenServer 8 和 Citrix Hypervisor 8.2 累积更新 1 兼容。
确定 Workload Balancing 虚拟设备的状态
运行 systemctl status workloadbalancing
命令。有关详细信息,请参阅 Workload Balancing 命令。
常规故障排除提示
-
执行故障排除时,首先应查看 Workload Balancing 日志文件(
LogFile.log
和wlb_install_log.log
)。这些日志位于 Workload Balancing 虚拟设备上的以下位置(默认位置):/var/log/wlb
可以使用
wlb.conf
文件配置这些日志文件中的详细级别。有关详细信息,请参阅提高 Workload Balancing 日志的详细级别。 -
请查看 XenCenter 的日志选项卡中的日志以了解更多信息。
-
要查看 Workload Balancing 虚拟设备的内部版本号,请在虚拟设备监视的池中的主机上运行以下命令:
xe pool-retrieve-wlb-diagnostics | more <!--NeedCopy-->
Workload Balancing 版本号显示在输出内容的最上方。
-
Workload Balancing 虚拟设备基于 CentOS 操作系统。如果您在虚拟设备中遇到 CPU、内存或磁盘相关问题,可以使用标准 Linux 登录
/var/log/*
解决该问题。 -
使用标准 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
。 -
Citrix Hypervisor 凭据:Workload Balancing 虚拟设备将使用此帐户连接到 XenServer 池。此帐户是在 XenServer 池协调器上创建的,具有
pool-admin
或pool-operator
角色。
-
WLB 服务器凭据:XenServer 将使用此帐户与 Workload Balancing 进行通信。此帐户是您在 Workload Balancing 配置期间在 Workload Balancing 虚拟设备上创建的帐户。默认情况下,此帐户的用户名为
-
可以在地址框中输入主机名,但该名称必须是 Workload Balancing 虚拟设备的完全限定的域名 (FQDN)。请勿输入托管设备的物理服务器的主机名。如果在输入计算机名称时遇到问题,请尝试改用 Workload Balancing 设备的 IP 地址。
-
确认主机正在使用正确的 DNS 服务器,并且 XenServer 主机可以使用 FQDN 与 Workload Balancing 服务器联系。要执行此检查,请从 XenServer 主机使用其 FQDN 对 Workload Balancing 设备执行 ping 操作。例如,在 XenServer 主机控制台中输入以下命令:
ping wlb-vpx-1.mydomain.net <!--NeedCopy-->
防火墙问题
如果 Workload Balancing 虚拟设备位于硬件防火墙后面,但您没有配置相应的防火墙设置,则会出现以下错误:“There was an error connecting to the Workload Balancing server: <pool name> Click Initialize WLB to reinitialize the connection settings.”(连接到 Workload Balancing 服务器: <池名称> 时出错。请单击“初始化 WLB”以重新初始化连接设置。)如果因其他原因无法访问 Workload Balancing 设备,也可能会显示此错误。池名称>
如果 Workload Balancing 虚拟设备处于防火墙保护下,请打开端口 8012。
同样,XenServer 用来联系 Workload Balancing 的端口(默认为 8012)必须与运行 Workload Balancing 配置向导时所指定的端口号匹配。
Workload Balancing 连接错误
如果在配置并连接到 Workload Balancing 后收到连接错误,则凭据可能不再有效。要找出此问题,请执行以下操作:
-
验证您在连接 WLB 服务器对话框中输入的凭据是否正确。有关详细信息,请参阅场景 1 和 2。
-
确认您在连接 WLB 服务器对话框中输入的 Workload Balancing 虚拟设备的 IP 地址或 FQDN 正确无误。
-
确认您在 Workload Balancing 配置期间创建的用户名与在连接 WLB 服务器对话框中输入的凭据一致。
-
如果在 WLB 选项卡上的“Workload Balancing 状态”行中收到连接错误消息,可能需要为该池重新配置 Workload Balancing。单击 WLB 选项卡上的连接按钮,然后重新输入主机凭据。
尝试建立从 XenCenter 到 Workload Balancing 虚拟设备的连接时,您可能会遇到以下情况之一。
场景 1
这意味着在连接 WLB 服务器对话框的 Citrix Hypervisor 凭据字段中输入的凭据不正确。要修复此问题,请仔细检查凭据或者选中使用当前 XenCenter 凭据复选框。
场景 2
这意味着尝试连接到 Workload Balancing 虚拟设备时,在连接 WLB 服务器对话框的 WLB 服务器凭据字段中输入的凭据存在问题(用户名或密码不正确)。但是,这也可能意味着 Workload Balancing 服务未运行或者数据库配置文件有问题。
要修复凭据问题,请确保使用正确的用户名和密码。WLB 服务器凭据字段的默认用户名为 wlbuser
(而非 root)。root 是默认的管理员用户名。请注意,wlbuser
不是在设备中拥有登录权限的实际用户(在 /etc/passwd
下不存在),因此这些凭据仅用于连接到 Workload Balancing 本身。因此,可以通过运行 wlbconfig
命令轻松重置这些凭据。要更改您的证书,请参阅更改 Workload Balancing 凭据。要运行 wlbconfig
命令,您必须能够以 root 用户身份登录设备。如果 root 用户密码未知,则可以使用常规的 CentOS/RHEL 密码恢复过程进行重置。
如果您已重置凭据,但错误仍然存在:
- 使用
systemctl status workloadbalancing
命令检查 Workload Balancing 进程是否正在运行。 - 运行以下命令确保
wlb.conf
文件存在且位于正确的目录中:cat /opt/vpx/wlb/wlb.conf
场景 3
这表示从 XenCenter 连接到 Workload Balancing 时,连接到“服务器地址”选项下指定的端口时出现问题(可能是输入了错误的端口,或者该端口未在侦听)。要解决此问题,请执行以下操作:
- 确保目标设备已启动并且正在运行。
- 仔细检查在 Workload Balancing 连接详细信息窗口中输入的端口(默认值为 8012)。
- 确保在设备中启用了此端口并且正在侦听。使用
telnet <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-shutdown
xe 命令,force 参数设置为true
。例如:xe vm-shutdown force=true uuid=vm_uuid <!--NeedCopy-->
可以在该主机的常规选项卡上(在 XenCenter 中)或者通过运行
host-list
命令,找到主机 UUID。可以在 VM 的常规选项卡中或者通过运行vm-list
xe 命令,找到 VM UUID。有关详细信息,请参阅命令行接口。
-
在向崩溃的 VM 提供服务的 XenServer 的
xsconsole
中或者在 XenCenter 中,将所有 VM 迁移到另一个主机上,然后运行xe-toolstack-restart
命令。(启用了高可用性时请勿重新启动 Toolstack。如果可能,请在重新启动 Toolstack 之前暂时禁用高可用性。)
Workload Balancing 服务器的更改问题
如果在将池连接到其他 Workload Balancing 服务器时,没有先断开该池与 Workload Balancing 的连接,则原来的和新的 Workload Balancing 服务器都会监视该池。
要解决此问题,可以执行以下操作之一:
- 关闭并删除原来的 Workload Balancing 虚拟设备。
- 手动停止 Workload Balancing 服务。这些服务为分析、数据收集器和 Web 服务。
注意:
请勿使用
pool-deconfigure-wlb
xe 命令断开池与 Workload Balancing 虚拟设备的连接,或者使用pool-initialize-wlb
xe 命令指定其他设备。