Suspend / Resume
有時候須要長時間暫停 instance , 能夠經過 Suspend 操做將instance 的狀態保存到宿主機的磁盤上。須要恢復的時候,執行 Resume操做從磁盤讀回 instance 的狀態,而後繼續運行。
這裏對 Suspend 和 Pause 作個對比:
相同點:都是暫停 instance 的運行,保存狀態,須要恢復的時候執行 resume 恢復以前狀態。
不一樣點:
一、Suspend 將 instance 狀態保存在磁盤上;Pause 是保存在內存中,因此 Pause 恢復的要快
二、instance 被 Suspend 後,狀態爲 shutdown ,而 Pause 的 instance 狀態是 Paused
三、雖然都是經過 Resume 操做恢復,Pause 對應的Resume 在 OpenStack 內部叫作 Unpause ; Suspend 對應的Resume 纔是真正的 Resume,這個在日誌中能體現出來。
操做流程和前面的練習是同樣的,這裏就不詳細分析了
Rescue / Unrescue
這節開始咱們將討論幾種 instance 故障恢復的方法,不一樣方法適用於不一樣的場景。首先咱們考慮操做系統故障。
有時候因爲誤操做或者忽然斷電,操做系統重啓後起不來了。爲了更大限度挽救數據,咱們一般會使用一張系統盤將系統引導起來,而後再嘗試恢復。問題若是不太嚴重,徹底能夠經過這種方式讓系統從新運行起來,好比某個系統文件被意外刪除,root密碼遺忘等。Nova也提供這種故障恢復機制,叫Rescue。咱們來看下Rescue的說明:
stack@DevStack-Controller:~$ nova help rescue
usage: nova rescue [--password <password>] [--image <image>] <server>
Reboots a server into rescue mode, which starts the machine from either the
initial image or a specified image, attaching the current boot disk as
secondary.
# 重啓系統從啓動盤的初始狀態或者是一個指定的啓動盤文件啓動,進入救援模式,並添加故障的啓動盤位第二硬盤。
Positional arguments:
<server> Name or ID of server.
Optional arguments:
--password <password> The admin password to be set in the rescue environment. # 設置救援模式中admin的密碼
--image <image> The image to rescue with. # 指定一個其餘的啓動盤文件
目前 Rescue 操做只能在命令行中執行,當系統修復完畢後,使用 Unrescue 將 instance恢復至正常狀態。
stack@DevStack-Controller:~$ nova help unrescue
usage: nova unrescue <server>
Restart the server from normal boot disk again.
Positional arguments:
<server> Name or ID of server.
該操做的實現流程與以前的練習同樣,這裏再也不作詳細分析