记一次安装OpenStack(Stein)-nova报错问题解决
记一次安装OpenStack(Stein)-nova报错问题解决
1 报错信息
[root@controller ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
An error has occurred:
Traceback (most recent call last):File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 2419, in mainret = fn(*fn_args, **fn_kwargs)File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 897, in syncresult = migration.db_sync(version2, database='placement')File "/usr/lib/python2.7/site-packages/nova/db/migration.py", line 26, in db_syncreturn IMPL.db_sync(version=version, database=database, context=context)File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 57, in db_synccurrent_version = db_version(database, context=context)File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 88, in db_version_("Upgrade DB using Essex release first."))
NovaException: Upgrade DB using Essex release first.
ChatGPT搜索:这个错误表明您的OpenStack Nova数据库版本太旧,无法直接升级到当前版本。
2 解决方法:
考虑升级nova软件版本,尝试使用train版本
2.1 更新软件源,注释掉老版本安装源,启用新版本安装源。
[root@controller ~]# cat /etc/yum.repos.d/openstack.repo
#...
[cloud]
name=CentOS-$releasever - Cloud
#baseurl=https://mirrors.aliyun.com/centos/7.9.2009/cloud/x86_64/openstack-stein/
baseurl=https://mirrors.aliyun.com/centos/7.9.2009/cloud/x86_64/openstack-train/
gpgcheck=0
2.2 清除旧缓存,更新新版本软件安装源
[root@controller ~]# yum clean all && yum makecache
2.3 卸载旧版本nova,重新安装新版本
[root@controller ~]# yum remove openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler -y[root@controller ~]# yum install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler -y
2.4 重新执行命令
[root@controller ~]# su -s /bin/sh -c "nova-manage api_db sync" nova
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova
[root@controller ~]# su -s /bin/sh -c "nova-manage cell_v2 create_cell --name cell1 --verbose" nova
9c5e3b8f-59af-4e84-a24f-3c4e9c630d65
#以下命令报错可忽略
[root@controller ~]# su -s /bin/sh -c "nova-manage db sync" nova
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u'Duplicate index `block_device_mapping_instance_uuid_virtual_name_device_name_idx`. This is deprecated and will be disallowed in a future release')result = self._query(query)
/usr/lib/python2.7/site-packages/pymysql/cursors.py:170: Warning: (1831, u'Duplicate index `uniq_instances0uuid`. This is deprecated and will be disallowed in a future release')result = self._query(query)
3 启动服务并设置开机自启
[root@controller ~]# systemctl enable --now openstack-nova-api.service
[root@controller ~]# systemctl enable --now openstack-nova-conductor.service
[root@controller ~]# systemctl enable --now openstack-nova-novncproxy.service
[root@controller ~]# systemctl enable --now openstack-nova-scheduler.service
至此继续安装其余组件。