记一次Openstack Tenant误删除小事故恢复


背景

在使用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。
以下是操作的部分命令:

1
2
3
4
5
6
7
# source keystone_admin
# keystone create-tenant --name=services --description "Services Tenant(don`t delete)"
# keystone user-role-add --user nova --tenant admin --role admin
# keystone user-role-add --user cinder --tenant admin --role admin
# keystone user-role-add --user glance --tenant admin --role admin
# keystone user-role-add --user ceilometer --tenant admin --role admin
# keystone user-role-add --user neutron --tenant admin --role admin


本文地址:http://blog.app1905.com/2016/openstack-services-lost/

著作权归本站所有。商业转载请联系获取授权,非商业转载请注明出处。

@却道天凉好个秋