注:instances 是 nova数据库中核心的数据库表,存放着创建实例到中止实例的大部份数据参数和记录。如果没有此表,那在登录Horizon后,查看不到任何创建的虚拟机实例。
故障描述如下:
故障一
在成都icloud部门在调用openstack api过程中,用中文云主机类型创建虚拟机,导致各个租户登录后查找不到创建的实例,提示“无法获取云主机”如图1
针对此问题,在不懈努力下,将问题定位到nova数据库中的instances数据库表。查询故障租户:如图2
Select * from instances where project=5872c3c824504fe896b408323772e251;
这里显示的乱码,就是icloud 云研发创建中文云主机类型的实例。我们只需要将其几条数据删除,那问题就解决了。
故障二
在排查故障一过程中,犯了一个低级错误,可能当时太过于兴奋。将其整个表(nova.instances)数据全部删除,之前的问题是解决了,但所有实例也不见了。当时还用了mysql没有回收机制的truncate命令,类似于硬盘格式化。(注:慎用truncate命令)