项目场景:
安装openstack的nova-compute部分
问题描述
启动nova-conductor时报错,查看nova-conductor.log,发现如下错误:Current Nova version does not support computes older than Wallaby but the minimum compute service level in your system is 51
Unhandled error: nova.exception.TooOldComputeService:
原因分析:
根据此问题的描述,大概意思为检测到Nova-compute的版本过低,需要更新版本。导致此问题的原因有方面来源,其一是之前在配置环境时,控制节点执行了apt install nova-compute命令安装了compute服务
,但控制节点不需要此服务,需要将其删除
;其二是计算节点安装的nova-compute服务版本过低
,可能是没有添加xena源导致的。
解决方案:
此问题需要通过两方来解决。
控制节点:
(如果控制节点没有安装nova-compute服务可跳过)
- 通过apt-get remove 命令卸载nova-compute服务:apt-get --purge remove nova-compute
- 删除/bin下的nove-compute目录
- 执行apt-get autoremove
计算节点:
-
使用nova-compute –version查看版本,发现为21,版本过低。
-
为防止是库的问题,执行add-apt-repository cloud-archive:xena
-
使用apt-get update命令更新源
-
更新nova-compute,执行:apt-get upgrade nova-compute
-
重新查看nova-compute版本,显示为24,代表更新成功
-
重新启动nova-compute:service nova-compute restart
-
控制节点查看nova-conductor日志,发现仍提示nova.exception.TooOldComputeService
此时我采用了重建数据库的方法解决:
12. 进入DBserver控制台
13. 查看所有数据库:show databases;
- 发现三个与nova相关的数据库,将它们清空或删除:
truncate table nova; truncate table nova_api; truncate table nova_cell0;
- 使用su命令重新初始化nova相关数据库
- 重启nova-api、nova-compute等相关服务
- 重启后,查看日志发现错误消失,问题解决。