上一节我们讨论了 snapshot,snapshot 的一个重要作用是对 instance 做备份。
如果 instance 损坏了,可以通过 snapshot 恢复,这个恢复的操作就是 Rebuild。
Rebuild 会用 snapshot 替换 instance 当前的镜像文件,同时保持 instance 的其他诸如网络,资源分配属性不变。
下面是 rebuild instance 的流程图
-
向 nova-api 发送请求
-
nova-api 发送消息
-
nova-compute 执行操作
下面我们详细讨论每一个步骤。
向 nova-api 发送请求
客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“Rebuild 这个 Instance”
选择用于恢复的 image
查看日志/opt/stack/logs/n-api.log
nova-api 发送消息
nova-api 向 Messaging(RabbitMQ)发送了一条消息:“Rebuild 这个 Instance” 源代码在 /opt/stack/nova/nova/compute/api.py,方法是 rebuild。
nova-compute 执行操作
查看日志 /opt/stack/logs/n-cpu.log
关闭 instance
下载新的 image,并准备 instance 的镜像文件
启动 instance
Rebuild 后,GUI 显示 instance 已经使用新的 image
以上就是 Rebuild 操作的分析,下一节我们讨论 Shelve 操作。