XenServer

工作负载平衡故障排除

尽管工作负载平衡通常运行顺畅,但本系列章节提供了在您遇到问题时的指导。

注意:

  • 工作负载平衡适用于 XenServer® 高级版客户。有关 XenServer 许可的更多信息,请参阅许可。要升级或获取 XenServer 许可证,请 访问 Citrix 网站
  • 工作负载平衡 8.4.1 兼容 XenServer 8.4 和 XenServer 9。

确定工作负载平衡虚拟设备的状态

运行 systemctl status workloadbalancing 命令。有关更多信息,请参阅 工作负载平衡命令

一般故障排除提示

  • 通过查看工作负载平衡日志文件(LogFile.logwlb_install_log.log)开始故障排除。您 可以在工作负载平衡虚拟设备中的此位置(默认情况下)找到这些日志:

    /var/log/wlb

    这些日志文件中的详细程度可以通过使用 wlb.conf 文件进行配置。有关更多信息,请参阅 增加工作负载平衡日志中的详细程度

  • 在 XenCenter® 的“通知 > 事件”视图中检查日志以获取更多信息。

  • 要检查工作负载平衡虚拟设备的内部版本号,请在虚拟设备监视的池中的主机上运行以下命令,该池 由虚拟设备监视:

     xe pool-retrieve-wlb-diagnostics | more
     <!--NeedCopy-->
    

    工作负载平衡版本号显示在输出的顶部。

  • 工作负载平衡虚拟设备基于 CentOS 操作系统。如果您在虚拟设备中遇到 CPU、内存或 磁盘相关问题,您可以使用 /var/log/* 中的标准 Linux 日志来分析 问题。

  • 使用标准的 Linux 调试和性能调优命令来了解虚拟设备的运行情况。例如, toppsfreesarnetstat

错误消息

工作负载平衡在屏幕上以对话框形式显示错误,并在 XenCenter 的 通知 > 事件 视图中显示错误消息。

如果出现错误消息,请查看 XenCenter 事件日志以获取更多信息。有关更多信息,请参阅 XenCenter 产品文档

输入工作负载平衡凭据时出现问题

如果在配置 连接到 WLB 服务器 对话框时无法成功输入虚拟设备用户帐户和密码,请尝试以下操作:

  • 确保工作负载平衡虚拟设备已正确导入和配置,并且其所有 服务都在运行。

  • 检查以确保您输入了正确的凭据。连接到 WLB Server 对话框要求输入两种 不同的凭据:

    • WLB 服务器凭据:XenServer 使用此帐户与工作负载平衡进行通信。您在 工作负载平衡配置期间在工作负载平衡虚拟设备上创建了此帐户。默认情况下, 此帐户的用户名为 wlbuser
    • XenServer 凭据:此帐户由工作负载平衡虚拟设备用于连接 XenServer 池。此帐户在 XenServer 池协调器上创建,并具有 pool-adminpool-operator 角色。
  • 您可以在 地址 框中输入工作负载平衡虚拟设备的主机名或 FQDN,但此 地址必须是运行 XenCenter 的 Windows 系统可以解析和访问的地址。不要输入主机名 托管设备的物理服务器。如果您没有 FQDN 的 DNS 条目,则必须改用 工作负载平衡设备的 IP 地址进行连接。

  • 验证主机是否正在使用正确的 DNS 服务器,并且 XenServer 主机可以使用其 FQDN 联系工作负载平衡 服务器。要执行此检查,请从 XenServer 主机使用其 FQDN ping 工作负载平衡设备。 例如,在 XenServer 主机控制台中输入以下内容:

     ping wlb-vpx-1.mydomain.net
     <!--NeedCopy-->
    

证书问题

XenServer 8.4 及更高版本默认启用证书验证。要将工作负载平衡虚拟 设备与 XenServer 连接,您必须将工作负载平衡证书导入到 XenServer 池中。

如果您的池无法连接到工作负载平衡,请通过禁用工作负载平衡的证书检查来验证您的证书配置是否是 原因:

  1. 获取池 UUID:

    xe pool-list
    <!--NeedCopy-->
    
  2. 禁用证书验证:

    xe pool-param-set wlb-verify-cert=false uuid=<uuid_of_pool>
    <!--NeedCopy-->
    

如果您的池在禁用证书验证的情况下可以连接到 Workload Balancing,则问题出在您的 证书配置。如果无法连接,则问题出在您的 Workload Balancing 凭据或您的 网络连接。请联系支持人员或参阅 Troubleshoot Workload Balancing 以获取更多信息。

解决问题后,请务必再次启用证书检查:

  1. 获取池 UUID:

    xe pool-list
    <!--NeedCopy-->
    
  2. 启用证书验证:

    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 后收到连接错误,则凭据可能不 再有效。要隔离此问题:

  1. 验证您在 Connect to WLB Server 对话框中输入的凭据是否正确。有关 更多信息,请参阅方案 1 和 2。

  2. 验证您在 Connect to WLB Server 对话框中输入的 Workload Balancing 虚拟设备的 IP 地址或 FQDN 是否正确。

  3. 验证您在 Workload Balancing 配置期间创建的用户名是否与您在 Connect to WLB Server 对话框中输入的凭据匹配。

  4. 如果在 WLB 选项卡上的“工作负载平衡状态”行中收到连接错误,则可能需要 重新配置该池上的工作负载平衡。单击 WLB 选项卡上的“连接”按钮并重新输入主机 凭据。

尝试从 XenCenter 连接到 工作负载平衡虚拟设备时,可能会遇到以下情况之一。

场景 1

场景 1 - 错误:WLB 无法登录 XenServer。这可能是由于凭据无效。请检查您的设置并重试。

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

场景 2

场景 2 - 错误:WLB 拒绝了我们配置的身份验证详细信息。请检查您的设置并重试。

这意味着在尝试连接到工作负载平衡虚拟设备时,在 “连接到 WLB 服务器”对话框的“WLB 服务器凭据”字段中输入的凭据存在问题( 用户名或密码不正确)。但是,这还可能意味着工作负载平衡服务未 运行,或者数据库配置文件存在问题。

要解决凭据问题,请确保您使用的是正确的用户名和密码。“WLB 服务器凭据”字段的默认用户名是 wlbuser(不是 root)。Root 是默认的管理员用户名。请注意, wlbuser 不是设备中具有登录权限的实际用户(它不存在于 /etc/passwd 下), 因此这些凭据仅用于连接到工作负载平衡本身。因此,可以通过 运行 wlbconfig 命令轻松重置它们。要更改您的凭据,请参阅 更改工作负载平衡凭据。 要运行 wlbconfig 命令,您必须能够以 root 身份登录设备。如果 root 密码未知, 可以使用常规的 CentOS/RHEL 密码恢复过程进行重置。

如果您已重置凭据但错误仍然存在:

  1. 使用 systemctl status workloadbalancing 命令检查工作负载平衡进程是否正在运行。
  2. 通过运行以下命令,确保 wlb.conf 文件存在且位于正确的目录中: cat /opt/vpx/wlb/wlb.conf

场景 3

场景 3 - 错误:配置的 WLB 服务器名称无法在 DNS 中解析。请检查您的设置并重试。

这表示从 XenCenter 连接到工作负载平衡时,连接到“服务器地址”选项下指定的端口时出现问题 (输入的端口不正确或端口未侦听)。 要解决此问题:

  1. 确保目标设备已启动并正在运行。
  2. 仔细检查在工作负载平衡连接详细信息窗口中输入的端口(默认为 8012)。
  3. 确保此端口在设备中已启用并正在侦听。使用 telnet <host> <port>iptables -L 等命令来帮助确定端口是否正在侦听或流量是否在此端口上被拒绝。

场景 4

场景 4 - 错误:WLB 拒绝了与服务器的连接。请检查您的设置并重试。

当 stunnel 出现问题(未运行或证书/密钥对不正确)时,会发生此错误。 要解决此问题,请首先验证证书和密钥:

  1. 通过运行以下命令确认证书未过期:

    openssl x509 -dates -in $(grep cert\ = /etc/stunnel/stunnel.conf |cut -d '=' -f2) -noout
    <!--NeedCopy-->
    
  2. 比较以下 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(或 配置的端口):

  1. 在 WLB 设备 CLI 中运行以下命令:

    netstat -tulpn
    <!--NeedCopy-->
    

    在输出中,8012(或自定义端口)应显示 status: LISTEN

  2. 如果设备空间不足,stunnel 将无法运行。使用 df -hdu -hs /* 等命令查看您 的设备上是否有足够的可用空间。要增加磁盘空间,请参阅 扩展虚拟设备磁盘

场景 5

场景 5 - 错误:与 WLB 服务器的连接已重置。请检查您的设置并重试。

此错误可能因为 stunnel 进程已终止而发生。如果重新启动该进程仍出现相同结果, 请重新启动 Workload Balancing 虚拟设备。

任何其他错误

如果在尝试连接到 Workload Balancing 时遇到任何其他错误,或者在执行上述步骤时需要进一步帮助, 请收集 Workload Balancing 日志,这些日志可以在 /var/log/wlb 目录下找到 在 Workload Balancing 设备中。

请联系支持部门以获得进一步帮助。

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 在控制台中可能无响应,并且通常不会关机。

要解决此问题:

  1. 强制关闭 VM。为此,您可以在具有问题 VM 的主机上执行以下操作之一:

    • 在 XenCenter 中,选择 VM,然后从 VM 菜单中单击 强制关机
    • 运行 vm-shutdown xe 命令,并将 force 参数设置为 true。例如:

       xe vm-shutdown  force=true  uuid=vm_uuid
       <!--NeedCopy-->
      

      您可以在该主机的常规选项卡(在 XenCenter 中)中找到主机 UUID,或者通过运行 host-list xe 命令找到。您可以在 VM 的常规选项卡中找到 VM UUID,或者通过运行 vm-list xe 命令。 有关更多信息,请参阅命令行界面

  2. 在为崩溃的 VM 提供服务的 XenServer 的 xsconsole 中或在 XenCenter 中,将所有 VM 迁移到另一个主机,然后 运行 xe-toolstack-restart 命令。(在启用 HA 时不要重新启动工具栈。如果可能, 请在重新启动工具栈之前暂时禁用 HA。)

更改工作负载平衡服务器时遇到的问题

如果您在未从工作负载平衡断开连接的情况下将池连接到不同的工作负载平衡服务器,则旧的 和新的工作负载平衡服务器都会监视该池。

要解决此问题,您可以执行以下操作之一:

  • 关闭并删除旧的工作负载平衡虚拟设备。
  • 手动停止工作负载平衡服务。这些服务包括分析、数据收集器和 Web 服务。

注意:

请勿使用 pool-deconfigure-wlb xe 命令将池从工作负载平衡虚拟设备断开连接 或使用 pool-initialize-wlb xe 命令指定其他设备。