1、openstack虚拟机task_state状态异常处理
问题描述:
正常状态:
异常状态:
任务状态应为 无,但该虚拟机为None。无法执行开机、关机等操作。
当前异常状态下通过命令行关闭虚拟机会报错,报错信息如下:
[root@controller1 ~]# openstack server stop 9aeec572-9543-41ef-9386-d87825f09877
Cannot 'stop' instance 9aeec572-9543-41ef-9386-d87825f09877 while it is in task_state None (HTTP 409) (Request-ID: req-9f57f908-377e-439a-a542-9125d0335c22)
原因分析:
这个错误表明你尝试停止(stop)一个 OpenStack 实例(VM),但操作被拒绝,原因是实例当前的 task_state 为 None,而 OpenStack 不允许在这种状态下执行停止操作。
- task_state: None 表示实例当前没有正在进行的任务(如启动、停止、迁移等),但 OpenStack 可能由于某些原因拒绝停止操作。
- HTTP 409 Conflict 表示服务器状态与请求冲突,通常是因为:
- 实例已经处于停止状态(但 API 未正确识别)。
- 实例被锁定(locked=True)。
- 计算节点(nova-compute)或 OpenStack 控制平面(如 nova-api)存在状态不一致。
通过openstack管理控制台查看正常虚拟机任务状态(task_state)为无,但是zabbix-2该虚拟机任务状态为None(异常状态)无法对zabbix-2虚拟机执行操作(开机、关机、重启)。
登录openstack control节点,运行命令查看异常虚拟机状态,执行
nova reset-state
命令后虚拟机状态变为error,可以对该虚拟机执行关机操作
处理过程:
在 OpenStack 中,nova reset-state 命令用于 手动修正虚拟机(实例)的状态,通常用于解决 OpenStack 数据库中的实例状态与实际 Hypervisor(如 KVM、Xen)状态不一致的问题。
nova reset-state 9aeec572-9543-41ef-9386-d87825f09877
上面显示虚拟机状态恢复正常,可正常启动虚拟机
启动虚拟机:
[root@controller1 ~]# nova start 9aeec572-9543-41ef-9386-d87825f09877
Request to start server 9aeec572-9543-41ef-9386-d87825f09877 has been accepted.
可正常启动。