虚拟机的Pause和Suspend状态的差别
首先是理解虚拟机的Pause和Suspend状态的差别,Openstack官方的解释是:
The difference between "pause" and "suspend" is that "Suspend stores the state of VM on disk while pause stores it in memory (RAM)"
所以你如果是以Pause 保存VM状态,然后不巧VM所在的服务器宕机要重启,这时你的VM就无法从内存中恢复原先的状态,即无法 "unpause VM"。这时VM的 Status 是
paused,Power State 是 shutdown。这时只有从磁盘中恢复VM状态了。所以我们可以将 VM的 Status 改为
suspended,这是可以 "resume VM"了。
具体做法
在Openstack中,进入名为nova的数据库,然后找到名为 instances 的表,找到 vm_state 这一列,将目标VM的vm_state 从
paused 改为 suspended。然后在从 dashboard 中 resume VM 或用命令行 nova resume <instance id>。假设目标MV为vm_1,它在 instances 表中属性值的变化如下表
power_state | vm_state | hostname |
4 (表示 shutdown) | paused | vm_1 |
4 | suspended | vm_1 |
1(表示 running) | active | vm_1 |