Instance 被 Suspend 後雖然處於 Shut Down 狀態,但 Hypervisor 依然在宿主機上爲其預留了資源,以便在之後可以成功 Resume。web
若是但願釋放這些預留資源,能夠使用 Shelve 操做。 Shelve 會將 instance 做爲 image 保存到 Glance 中,而後在宿主機上刪除該 instance。 下面是 shelve instance 的流程圖 api
向 nova-api 發送請求 spa
nova-api 發送消息 3d
nova-compute 執行操做 日誌
下面咱們詳細討論每個步驟。 orm
客戶(能夠是 OpenStack 最終用戶,也能夠是其餘程序)向API(nova-api)發送請求:「幫我 shelve 這個 Instance」 blog
查看日誌 /opt/stack/logs/n-api.log 資源
nova-api 向 Messaging(RabbitMQ)發送了一條消息:「shelve 這個 Instance」 查看源代碼 /opt/stack/nova/nova/compute/api.py,方法是 shelve。 it
查看日誌 /opt/stack/logs/n-cpu.log class
首先,關閉 instance
而後對 instance 執行 snapshot 操做
成功後,snapshot 生成的 image 會保存在 Glance 上,命名爲 <instance name>-shelved
最後刪除 instance 在宿主機上的資源
暫停操做成功執行後,instance 的狀態變爲 Shelved Offloaded,電源狀態是 Shut Down
以上就是 Shelve 操做的分析,下一節咱們討論 Unshelve 操做。