本節通過日志詳細分析 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 操作。