Ubuntu 22.04 下 OpenStack 安装部署后 Nova 服务启动失败怎么办

2025-07-23 0 797 百度已收录

好不容易在 Ubuntu 22.04 上把 OpenStack 部署完了,兴致勃勃想启动 Nova 服务,结果咔嚓一下失败了,是不是特闹心?Nova 可是 OpenStack 的核心计算组件,它起不来,虚拟机啥的都没法用。别慌,今天小编就带你一步步排查,多数问题都能搞定。

一、先看日志!错误线索都在里面

你可能会问,日志在哪儿看啊?Ubuntu 里的 Nova 服务日志主要在这两个地方:

  • /var/log/nova/nova-api.log:API 服务的日志,启动失败一般先看这个
  • /var/log/nova/nova-compute.log:计算节点的日志,计算服务起不来就查这个

看日志有个小技巧,用grep -i "error" 日志文件快速定位错误信息,比如搜 “Failed to connect” 或者 “Permission denied”,一下子就能抓住重点。

二、常见失败原因及解决办法(附操作步骤)

1. 数据库连接失败 —— 最容易踩的坑

为啥会这样?

Nova 启动时要连 MySQL/MariaDB 数据库,要是地址、用户名、密码错了,肯定连不上。Ubuntu 22.04 里 OpenStack 的配置文件一般在/etc/nova/nova.conf,打开看看这几行对不对:
plaintext

[database]
connection = mysql+pymysql://nova:你的密码@控制节点IP/nova?charset=utf8

怎么解决?

① 先手动测试数据库连接:mysql -u nova -p -h 控制节点IP,输密码能进去就说明账号密码对了
② 要是连不上,可能是数据库没授权,在数据库里执行:
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY '你的密码';
③ 改完配置文件别忘了重启数据库:systemctl restart mysql,再重启 Nova:systemctl restart nova-api


2. 消息队列(RabbitMQ)配置错误

Ubuntu 22.04 下 OpenStack 安装部署后 Nova 服务启动失败怎么办

核心问题在哪?

Nova 各组件靠 RabbitMQ 通信,配置里的用户名、密码或端口错了就会失败。配置文件里这段得检查:
plaintext

[DEFAULT]
transport_url = rabbit://openstack: Rabbit密码@控制节点IP:5672/

排查步骤:

  • rabbitmqctl list_users看看有没有 openstack 用户,没有的话新建一个
  • 检查 RabbitMQ 状态:systemctl status rabbitmq-server,没启动就start
  • 防火墙是不是挡了 5672 端口?Ubuntu 22.04 用的是 ufw,执行ufw allow 5672/tcp放行


3. 权限不足 ——Ubuntu 系统常犯的错

哪些文件容易有权限问题?

  • Nova 的日志目录:/var/log/nova,要是属主不是 nova 用户,会报 “Permission denied”
  • 配置文件/etc/nova/nova.conf,权限太松或太紧都不行

修复命令:

plaintext

chown -R nova:nova /var/log/nova
chmod 640 /etc/nova/nova.conf  # 640权限比较合适,既安全又能让nova用户读取


4. 依赖包不兼容 ——Ubuntu 22.04 的 “新系统烦恼”

Ubuntu 22.04 自带的 Python 版本是 3.10,有些 OpenStack 版本可能对这个版本支持不好。比如你装的是较老的 OpenStack 版本,可能会报 “ModuleNotFoundError”。

怎么办?

① 换个兼容的 OpenStack 版本,比如 Yoga 或 Zed,这两个对 Ubuntu 22.04 支持更好
② 要是必须用旧版本,就得手动装低版本依赖,比如用pip3 install 'sqlalchemy<2.0'(有些老版本 OpenStack 不支持 sqlalchemy 2.0+)

三、进阶排查:用 systemctl 和 journalctl 找线索

有时候systemctl start nova-api只告诉你 “失败”,没具体信息,这时候用journalctl -u nova-api -f实时看启动日志,能抓到更详细的错误。比如看到 “Failed to bind port 8774”,那就是端口被占用了,用netstat -tulpn | grep 8774看看谁占了,kill 掉就行。

四、表格总结:快速定位问题的 “cheat sheet”

错误提示关键词 可能原因 优先检查项
Connection refused 数据库 / 消息队列没启动 服务状态(systemctl status)
Access denied 账号密码错误 配置文件里的认证信息
Permission denied 文件权限不对 日志目录和配置文件的属主
ModuleNotFoundError 依赖包缺失或版本不对 pip list 检查安装的包版本

其实 Nova 服务启动失败,看着吓人,多数时候都是配置或权限的小问题。小编建议大家部署时,每步都记一下配置的参数,比如数据库密码、RabbitMQ 地址,免得后面忘了。另外,Ubuntu 22.04 虽然新,但和有些 OpenStack 版本兼容性还在完善,选版本时尽量挑官方推荐的组合(比如 OpenStack Zed + Ubuntu 22.04),能少走很多弯路。遇到解决不了的,多看看 OpenStack 的官方 bug 列表,说不定别人也遇到过,有现成的解决方案呢!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

兔格号 SEO运维 Ubuntu 22.04 下 OpenStack 安装部署后 Nova 服务启动失败怎么办 https://www.tglzm.com/seo/wei-seo/4098.html

一个独行者,独揽万古

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务