根据您提供的参考信息,openstack-nova-compute.service 不能正常启动的问题可能有多种原因。下面我将根据这些信息提供一个详细的解决方案:

  1. 检查日志文件
  • 首先,查看/var/log/nova-compute.log文件,这通常会提供服务启动失败的具体信息。比如,它可能指出无法连接到Controller节点的AMQP服务。
  1. 检查AMQP服务
  • 如果日志中提到AMQP服务,您需要在Controller节点上检查rabbitmq-server服务的状态。确保它正在运行,并且5672端口已打开。
  1. 开放防火墙端口
  • 如果rabbitmq-server服务正常,但问题仍然存在,请检查防火墙设置。您可能需要开放5672端口,以便Compute节点可以与Controller节点进行通信。
  1. 重启相关服务
  • 在确保AMQP服务和防火墙设置没有问题后,尝试重启libvirtd.serviceopenstack-nova-compute.service服务。有时候,简单地重启这些服务可以解决暂时性的问题。
  1. 检查OpenStack配置
  • 确认/etc/nova/nova.conf/etc/nova/nova-compute.conf配置文件没有错误。特别是与身份验证、网络和AMQP相关的配置项。
  1. 检查计算节点状态
  • 使用nova-manage service list命令检查计算节点的状态。如果节点状态显示为“down”,可能需要执行nova-manage service list-down来解决问题。
  1. 代码级别的分析
  • 如果问题依旧没有解决,可能需要进行更深入的代码级别分析。检查/usr/local/bin/nova-compute脚本的执行流程,以及它如何处理配置和启动过程。
  1. 用户权限
  • 参考[3]中提到的解决方案,修改Controller节点上的guest账号密码可能有助于解决问题。
  1. 关闭和重新启动防火墙
  • 根据[4]中的信息,尝试关闭并重新启动防火墙,看看是否能够解决问题。

在执行上述任何步骤之前,请确保备份当前的配置和数据,以防需要回滚更改。此外,始终在安全的环境中测试任何更改,以确保系统的稳定性和安全性。如果您在尝试这些步骤后仍然遇到问题,可能需要考虑寻求专业的技术支持。