本节通过日志详细分析 Nova Pause/Resume 操作。

有时需要短时间暂停 instance,可以通过 Pause 操作将 instance 的状态保存到宿主机的内存中。当需要恢复的时候,执行 Resume 操作,从内存中读回 instance 的状态,然后继续运行 instance。

下面是 pause instance 的流程图

  1. 向 nova-api 发送请求

  2. nova-api 发送消息

  3. 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 操作。