背景
在使用Openstack Dashboard操作的时候突然发现很多东西都打不开了,主要表现为:
- 点击主机列表,显示为空,同时提示”错误:无法获取主机列表”。
- 查看卷、镜像、网络拓扑等,全部显示类似错误,都无法查看相应的信息,列表中都没有数据。
- 有时候出现错误界面(已开启debug模式),部分错误如:Neutron server returns request_ids:[XXXXXX]。
在排查过程中,发现之前存在误操作,将项目中的services删除了。
问题解决
第一时间ssh进入keystone服务器,打开数据库,查询数据库日志。结果发现由于没开启log-bin,没有数据库相关日志,故无法通过日志来恢复数据。
由于services的tenant被删除了导致的错误,故猜想通过重新创建services来解决问题。但在dashboard操作时发生错误(跟查看主机列表的错误类似),无法完成services的创建。 故通过命令来重新创建services tenant,并为相关的service user关联上role及tenant。
以下是操作的部分命令: