这是 OpenStack 实施经验分享系列的第 9 篇。
OpenStack 用多了,经常会遇到这种情况:对 instance 执行某个操作如果失败了就会处于 “error” 状态:
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488622600777013199.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488624219320056142.jpg)
而且这时我们除了删除 instance 外,几乎做不了其他操作。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488622600360013545.png 10.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488624219416037283.png)
本节就教大家如何恢复 "error" 的 instance。以上面的情况为例,error 之后,可以点击 instance 的链接,到详情页中看看 error 的具体原因。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488622600908009546.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488624219509066026.jpg)
可以看到当时执行 resize 操作时发生了异常情况,导致操作出错。 其实这不是致命错误,instance 没有受损,还能正常运行。现在我们要做到是想办法将 instance 恢复到正常的状态。
Web GUI 是没有相应的操作,只能通过 nova reset-state 命令行操作。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488622601115083174.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488624219659075646.jpg)
reset-state 的使用方法还是很直接的,上面因为 instance 不属于默认的 admin project,所以需要通过 --os-project-id 指定。执行成功后,instance 的状态被重置为 “active”,我们又可以对其进行各种常规操作了。
![http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488622601586069659.png](http://7xo6kd.com1.z0.glb.clouddn.com/upload-ueditor-image-20170304-1488624219753084754.jpg)
下一节分享一个故障排查的实际案例。