前面咱們討論了 Instance 的若干操做,有的操做功能比較相似,也有各自的適用場景,如今是時候系統地總結一下了。服務器
如上圖所示,咱們把對 Instance 的管理按運維工做的場景分爲兩類:常規操做和故障處理。架構
常規操做中,Launch、Start、Reboot、Shut Off 和 Terminate 都很好理解。 下面幾個操做重點回顧一下:運維
Resize
經過應用不一樣的 flavor 調整分配給 instance 的資源。學習
Lock/Unlock
能夠防止對 instance 的誤操做。ui
Pause/Suspend/Resume
暫停當前 instance,並在之後恢復。 Pause 和 Suspend 的區別在於 Pause 將 instance 的運行狀態保存在計算節點的內存中,而 Suspend 保存在磁盤上。 Pause 的優勢是 Resume 的速度比 Suspend 快;缺點是若是計算節點重啓,內存數據丟失,就沒法 Resume 了,而 Suspend 則沒有這個問題。spa
Snapshot
備份 instance 到 Glance。產生的 image 可用於故障恢復,或者以此爲模板部署新的 instance。操作系統
故障處理有兩種場景:計劃內和計劃外。內存
計劃內是指提早安排時間窗口作的維護工做,好比服務器按期的微碼升級,添加更換硬件等。 計劃外是指發生了沒有預料到的突發故障,好比強行關機形成 OS 系統文件損壞,服務器掉電,硬件故障等。資源
對於計劃內的故障處理,能夠在維護窗口中將 instance 遷移到其餘計算節點。 涉及以下操做:部署
Migrate
將 instance 遷移到其餘計算節點。 遷移以前,instance 會被 Shut Off,支持共享存儲和非共享存儲。
Live Migrate
與 Migrate 不一樣,Live Migrate 能不停機在線地遷移 instance,保證了業務的連續性。也支持共享存儲和非共享存儲(Block Migration)
Shelve/Unshelve Shelve 將 instance 保存到 Glance 上,以後可經過 Unshelve 從新部署。 Shelve 操做成功後,instance 會從原來的計算節點上刪除。 Unshelve 會從新選擇節點部署,可能不是原節點。
計劃外的故障按照影響的範圍又分爲兩類:Instance 故障和計算節點故障
Instance 故障只限於某一個 instance 的操做系統層面,系統沒法正常啓動。 可使用以下操做修復 instance:
Rescue/Unrescue
用指定的啓動盤啓動,進入 Rescue 模式,修復受損的系統盤。成功修復後,經過 Unrescue 正常啓動 instance。
Rebuild
若是 Rescue 沒法修復,則只能經過 Rebuild 從已有的備份恢復。Instance 的備份是經過 snapshot 建立的,因此須要有備份策略按期備份。
Instance 故障的影響範圍侷限在特定的 instance,計算節點自己是正常工做的。若是計算節點發生故障,OpenStack 則沒法與節點的 nova-compute 通訊,其上運行的全部 instance 都會受到影響。這個時候,只能經過 Evacuate 操做在其餘正常節點上重建 Instance。
Evacuate
利用共享存儲上 Instance 的鏡像文件在其餘計算節點上重建 Instance。 因此提早規劃共享存儲是關鍵。
到這裏,咱們已經學習了 OpenStack Nova 的架構,討論了 Nova API,Scheduler,Compute 等重要組件,並經過案例詳盡的剖析了 Nova 各個操做,最後用一張圖總結了這些操做的用途和使用場景。
Nova 是 OpenStack 最重要的項目,處於 OpenStack 的中心。 其餘 Keystone,Glance,Cinder 和 Neutron 項目都是爲 Nova 其服務的,必定要好好理解。
下一節咱們將學習 OpenStack 塊存儲服務 - Cinder。