本节通过日志详细分析 Nova Pause/Resume 操作。
有时需要短时间暂停 instance,可以通过 Pause 操作将 instance 的状态保存到宿主机的内存中。当需要恢复的时候,执行 Resume 操作,从内存中读回 instance 的状态,然后继续运行 instance。
下面是 pause instance 的流程图
-
向 nova-api 发送请求
-
nova-api 发送消息
-
nova-compute 执行操作
下面我们详细讨论每一个步骤。
向nova-api发送请求
客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:“帮我暂停这个 Instance”
查看日志 /opt/stack/logs/n-api.log
注:对于 Pause 操作,日志没有前面 Start 记录得那么详细。
例如这里就没有记录 nova.api.openstack.compute.servers 和 nova.compute.api 代码模块的日志,这可能是因为这个操作逻辑比较简单,开发人员在编码时没有加入日志。
nova-api 发送消息
nova-api 向 Messaging(RabbitMQ)发送了一条消息:“暂停这个 Instance” 查看源代码 /opt/stack/nova/nova/compute/api.py,方法是 pause。
nova-compute 执行操作
查看日志 /opt/stack/logs/n-cpu.log
暂停操作成功执行后,instance 的状态变为 Paused
Resume 操作的日志分析留给大家练习。 提示:这里的 Resume 操作实际上是 Unpause 操作,可以通过关键字“unpause”定位日志。 以上就是 Pause/Resume 的详细分析,下一节我们继续分析 Suspend/Resume 操作。