附录 A. 对自托管引擎部署进行故障排除
若要确认自托管引擎是否已部署,请运行 hosted-engine --check-deployed
。只有尚未部署自托管引擎,才会显示错误。
A.1. Manager 虚拟机故障排除
运行 hosted-engine --vm-status
,检查管理器虚拟机的状态。
对 Manager 虚拟机所做的任何更改都将花费大约 20 秒时间才能反映到 status 命令输出中。
根据输出中的引擎状态
,请查看以下建议来查找或修复问题。
引擎状态:"health": "good", "vm": "up" "detail": "up"
如果 Manager 虚拟机已启动并正常运行,您会看到以下输出:
--== Host 1 status ==-- Status up-to-date : True Hostname : hypervisor.example.com Host ID : 1 Engine status : {"health": "good", "vm": "up", "detail": "up"} Score : 3400 stopped : False Local maintenance : False crc32 : 99e57eba Host timestamp : 248542
- 如果输出为正常但无法连接到 Manager,请检查网络连接。
引擎状态:"reason": "failed liveliness check", "health": "bad", "vm": "up", "detail": "up"
如果
健康状况
为bad
,vm
为up
,HA 服务将尝试重新启动 Manager 虚拟机,以使管理器返回。如果几分钟内不成功,请从命令行启用全局维护模式,以便主机不再由 HA 服务管理。# hosted-engine --set-maintenance --mode=global
连接到控制台。出现提示时,输入操作系统的 root 密码。如需了解更多控制台选项,请参阅 如何从 RHEV-H 主机访问托管引擎虚拟机控制台?
# hosted-engine --console
- 登录,确保管理器虚拟机的操作系统正在运行。
检查
ovirt-engine
服务的状态:# systemctl status -l ovirt-engine # journalctl -u ovirt-engine
- 检查以下日志:/var/log/messages、/var/log/ovirt-engine/engine.log, 和 /var/log/ovirt-engine/server.log。
修复这个问题后,从其中一个自托管引擎节点手动重启 Manager 虚拟机:
# hosted-engine --vm-shutdown # hosted-engine --vm-start
注意当自托管引擎节点处于全局维护模式时,必须手动重启管理器虚拟机。如果您尝试通过从命令行发送
reboot
命令重新启动 Manager 虚拟机,则 Manager 虚拟机将保持关闭状态。这是设计中的。在 Manager 虚拟机上,验证
ovirt-engine
服务是否已启动并在运行:# systemctl status ovirt-engine.service
确保 Manager 虚拟机启动并运行后,关闭控制台会话并禁用维护模式以再次启用 HA 服务:
# hosted-engine --set-maintenance --mode=none
引擎状态:"vm": "down", "health": "bad", "detail": "unknown", "reason": "vm not running on this host"
此消息预期在当前没有运行 Manager 虚拟机的主机上。
- 如果您的环境中有多个主机,请确保另一个主机当前没有尝试重启 Manager 虚拟机。
- 确保您不在全局维护模式。
- 检查 /var/log/ovirt-hosted-engine-ha/agent.log 中的 ovirt-ha-agent 日志。
尝试从其中一个自托管引擎节点手动重启 Manager 虚拟机:
# hosted-engine --vm-shutdown # hosted-engine --vm-start
引擎状态:"vm": "unknown", "health": "unknown", "detail": "unknown", "reason": "failed to getVmStats"
此状态表示 ovirt-ha-agent
无法从 VDSM 获取虚拟机的详细信息。
- 检查 /var/log/vdsm/vdsm.log 中的 VDSM 日志。
- 检查 /var/log/ovirt-hosted-engine-ha/agent.log 中的 ovirt-ha-agent 日志。
引擎状态:自托管引擎的配置尚未从共享存储中检索
如果您的状态为 The hosted engine configuration has not been retrieved from shared storage.Please ensure that ovirt-ha-agent is running and the storage server is reachable
,这代表 ovirt-ha-agent
服务或存储有问题,或两者都有问题。
检查主机上的
ovirt-ha-agent
状态:# systemctl status -l ovirt-ha-agent # journalctl -u ovirt-ha-agent
如果
ovirt-ha-agent
停机,重启它:# systemctl start ovirt-ha-agent
-
在 /var/log/ovirt-hosted-engine-ha/agent.log 中检查
ovirt-ha-agent
日志。 - 检查您可以 ping 共享存储。
- 检查是否挂载了共享存储。
其他故障排除命令
如果您认为需要运行任何这些命令对自托管引擎环境进行故障排除,请联系红帽支持团队。
-
hosted-engine --reinitialize-lockspace
:当 sanlock 锁定空间出现问题时,将使用此命令。确保已启用全局维护模式,并在重新初始化 sanlock 锁定空间前停止 Manager 虚拟机。 -
hosted-engine --clean-metadata
:从全局状态数据库中删除主机的代理元数据。这可以使得所有其他主机忘记这个主机。确保目标主机已停机,并且启用了全局维护模式。 -
hosted-engine --check-liveliness
:该命令检查 ovirt-engine 服务的存活度页面。您还可以在 Web 浏览器中连接到https://engine-fqdn/ovirt-engine/services/health/
来检查。 -
hosted-engine --connect-storage
:该命令指示 VDSM 准备主机和管理器虚拟机所需的所有存储连接。这通常在自托管引擎部署期间在后端运行。如果您需要运行此命令来排除存储问题,请确保已启用全局维护模式。