本文内容基于这篇博文整理
虚拟机状态
openstack中虚拟机的状态涉及三种
- vm_state 反映基于API调用的
- task_state API调用过程中的过渡状态
- power_state hypervisor中的状态
power_state
来源于hypervisor,数据库中只是做了缓存,会被周期性的刷新。
vm_state
描述了虚拟机的稳定状态
与task_state的区别在于,stask_state描述的是过度状态,如上图中的deleting
与power_state的区别在于,两者描述的内容不一样,比如,当你去修复一个虚拟机,虚拟机从一个rescue镜像启动
此时power_state状态为RUNNING,但是vm_state状态只能是RESCUED。单单靠power_state是不能确定vm_state是ACTIVE还是RESCUED
两者可能存在不兼容的情况,会存在强制更新虚拟机状态的情况,详细见本人虚拟机热迁移的博文。
虚拟机任务失败,但是无法回滚,会呈现error,如上图
task_state
描述了一种过度状态,直观显示的当前正在执行那个任务。