我在控制器和计算节点上完成 nova 安装后,按照产品文档“https://docs.openstack.org/nova/2023.1/install/verify.html”操作,在验证安装并执行命令“nova-status upgrade check”时看到“没有这样的表:cell_mappings”。
~# nova-status upgrade check
Modules with known eventlet monkey patching issues were imported prior to eventlet monkey patching: urllib3. This warning can usually be ignored if the caller is only importing and not executing nova code.
Error:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
self.dialect.do_execute(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 732, in do_execute
cursor.execute(statement, parameters)
sqlite3.OperationalError: no such table: cell_mappings
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/nova/cmd/status.py", line 341, in main
ret = fn(*fn_args, **fn_kwargs)
File "/usr/lib/python3/dist-packages/oslo_upgradecheck/upgradecheck.py", line 105, in check
result = func(self)
File "/usr/lib/python3/dist-packages/nova/cmd/status.py", line 113, in _check_cellsv2
cell_mappings = self._get_cell_mappings()
File "/usr/lib/python3/dist-packages/nova/cmd/status.py", line 220, in _get_cell_mappings
cell_mappings = cell_mapping_obj.CellMappingList.get_all(ctxt)
File "/usr/lib/python3/dist-packages/oslo_versionedobjects/base.py", line 184, in wrapper
result = fn(cls, context, *args, **kwargs)
File "/usr/lib/python3/dist-packages/nova/objects/cell_mapping.py", line 256, in get_all
db_mappings = cls._get_all_from_db(context)
File "/usr/lib/python3/dist-packages/oslo_db/sqlalchemy/enginefacade.py", line 1010, in wrapper
return fn(*args, **kwargs)
File "/usr/lib/python3/dist-packages/nova/objects/cell_mapping.py", line 252, in _get_all_from_db
expression.asc(api_db_models.CellMapping.id)).all()
File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2759, in all
return self._iter().all()
File "/usr/lib/python3/dist-packages/sqlalchemy/orm/query.py", line 2894, in _iter
result = self.session.execute(
File "/usr/lib/python3/dist-packages/sqlalchemy/orm/session.py", line 1692, in execute
result = conn._execute_20(statement, params or {}, execution_options)
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1614, in _execute_20
return meth(self, args_10style, kwargs_10style, execution_options)
File "/usr/lib/python3/dist-packages/sqlalchemy/sql/elements.py", line 325, in _execute_on_connection
return connection._execute_clauseelement(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1481, in _execute_clauseelement
ret = self._execute_context(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1845, in _execute_context
self._handle_dbapi_exception(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2024, in _handle_dbapi_exception
util.raise_(newraise, with_traceback=exc_info[2], from_=e)
File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 207, in raise_
raise exception
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1802, in _execute_context
self.dialect.do_execute(
File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 732, in do_execute
cursor.execute(statement, parameters)
oslo_db.exception.DBNonExistentTable: (sqlite3.OperationalError) no such table: cell_mappings
[SQL: SELECT cell_mappings.created_at AS cell_mappings_created_at, cell_mappings.updated_at AS cell_mappings_updated_at, cell_mappings.id AS cell_mappings_id, cell_mappings.uuid AS cell_mappings_uuid, cell_mappings.name AS cell_mappings_name, cell_mappings.transport_url AS cell_mappings_transport_url, cell_mappings.database_connection AS cell_mappings_database_connection, cell_mappings.disabled AS cell_mappings_disabled
FROM cell_mappings ORDER BY cell_mappings.id ASC]
(Background on this error at: https://sqlalche.me/e/14/e3q8)
但是当我使用 su 命令执行时,它起作用了。
:~# su -s /bin/sh -c "nova-status upgrade check" nova
Modules with known eventlet monkey patching issues were imported prior to eventlet monkey patching: urllib3. This warning can usually be ignored if the caller is only importing and not executing nova code.
+-------------------------------------------+
| Upgrade Check Results |
+-------------------------------------------+
| Check: Cells v2 |
| Result: Success |
| Details: None |
+-------------------------------------------+
| Check: Placement API |
| Result: Success |
| Details: None |
+-------------------------------------------+
| Check: Cinder API |
| Result: Success |
| Details: None |
+-------------------------------------------+
| Check: Policy File JSON to YAML Migration |
| Result: Success |
| Details: None |
+-------------------------------------------+
| Check: Older than N-1 computes |
| Result: Success |
| Details: None |
+-------------------------------------------+
| Check: hw_machine_type unset |
| Result: Success |
| Details: None |
+-------------------------------------------+
| Check: Service User Token Configuration |
| Result: Success |
| Details: None |
+-------------------------------------------+
不确定这是否真的是个问题。我正在 Ubuntu 22.04 jammy 上安装 OpenStack zed。
我提到了 bughttps://bugs.launchpad.net/nova/+bug/1781573但这个问题在 zed 版本中得到了解决。不确定它是否相同或不同