Rebuild 可以恢复损坏的 instance。
那如果是宿主机坏了怎么办呢?
比如硬件故障或者断电造成整台计算节点无法工作,该节点上运行的 instance 如何恢复呢?
用 Shelve 或者 Migrate 可不可以?
很不幸,这两个操作都要求 instance 所在计算节点的 nova-compute 服务正常运行。
幸运的是,还有 Evacuate 操作。
Evacuate 可在 nova-compute 无法工作的情况下将节点上的 instance 迁移到其他计算节点上。但有个前提:
Instance 的镜像文件必须放在共享存储上。
下面是 Evacuate instance 的流程图
- 向 nova-api 发送请求
- nova-api 发送消息
- nova-scheduler 执行调度
- nova-scheduler 发送消息
- nova-compute 执行操作
下面我们详细讨论每一个步骤。
向 nova-api 发送请求
我们的实验场景如下:
Instance c2 运行在 devstack-compute1 上。