云主机无法从回收站删除解决办法
问题描述
云主机软删除后被放入回收站,在回收站中再次执行删除操作后,回收站页面该云主机仍然存在。
解决方法
1.查看云主机的资源占用信息(控制节点执行)
openstack resource provider allocation show your-vm-id
**注意: **
如果命令执行不成功, 需要查看包osc-placement是否安装
pip show osc-placement # 查看osc-placement信息
pip install osc-placement # 安装osc-placement
2.如果第一步执行有输出, 则说明云主机占用的资源没有被释放, 则需要查看日志, 进一步定位问题.
如果没有任何输出, 则说明该虚机占用的资源已经被释放.
3.如果资源已经被释放, 则修改nova数据库中虚机的deleted记录
查询nova数据库的用户名和密码:
在控制节点执行:
grep 'connection = mysql+pymysql://nova:' /etc/kolla/nova-api/nova.conf
例如:
[root@cube-dev nova-api]# grep 'connection = mysql+pymysql://nova:' /etc/kolla/nova-api/nova.conf
connection = mysql+pymysql://nova:sHm8Co83BB1PJDqtzAyKh43VzYHZfwx0tTkVW77P@10.20.8.253:3306/nova
用户名是nova, 密码是sHm8Co83BB1PJDqtzAyKh43VzYHZfwx0tTkVW77P
进入mariadb容器:
docker exec -u root -it mariadb bash
进入nova数据库: -p后接nova用户的密码
mysql -u nova -psHm8Co83BB1PJDqtzAyKh43VzYHZfwx0tTkVW77P nova
查询虚机的信息: uuid换成实际的云主机id
MariaDB [nova]> select uuid, hostname, deleted, cleaned from instances where uuid="c7d81cbc-99e1-4f5a-8e86-81fc551f3ae2";
+--------------------------------------+----------+---------+---------+
| uuid | hostname | deleted | cleaned |
+--------------------------------------+----------+---------+---------+
| c7d81cbc-99e1-4f5a-8e86-81fc551f3ae2 | vm-img-2 | 0 | 0 |
+--------------------------------------+----------+---------+---------+
1 row in set (0.001 sec)
修改云主机deleted信息: uuid换成实际的云主机id, 修改deleted=1, cleaned=1
MariaDB [nova]> update instances set deleted=1, cleaned=1 where uuid="c7d81cbc-99e1-4f5a-8e86-81fc551f3ae2";
Query OK, 1 row affected (0.029 sec)
Rows matched: 1 Changed: 1 Warnings: 0
退出数据库: exit
MariaDB [nova]> exit
Bye
(mariadb)[root@cube-dev /]#
退出mariadb容器:exit
(mariadb)[root@cube-dev /]# exit
exit
[root@cube-dev ~]#