openstack instance migraiton status

openstack instance migraiton status

openstack 虛擬機遷移總共有4種類型:

  • resize (調(diào)整虛擬機配置大小)
  • migraiton (冷遷移, 與resize動作基本一樣)
  • live-migration (熱遷移)
  • evacuation (疏散,用于將出問題的物理機上的虛機遷移到新的物理機上)

其中migration底層調(diào)用的就是resize的代碼,在新舊的物理機和都會保留虛機的數(shù)據(jù),用于等待確認或取消操作。

openstack 涉及到三種狀態(tài),vm_state,task_state和power_state。我們主要將一下在做遷移操作時涉及的task_state.

1. resize/migration

在虛擬機active和stopped狀態(tài)下可以進行migrate/resize,migration和resize的代碼一樣,resize與migrate的區(qū)別是在遷移的同時,改變虛擬機的flavor,所以他們的task_state都是一樣的。他們的狀態(tài)分為過渡狀態(tài)和穩(wěn)定狀態(tài)。

遷移之后,會在數(shù)據(jù)庫中新增migration表記錄,同時會增加instance_system_metadata表記錄,記錄老的flavor和新的flavor,如果是resize,也會更新instances表中虛擬機的flavor信息。

對于resize,還有兩個相關操作:confirm_resize和revert_resize,兩個操作都是在虛擬機狀態(tài)為resized下的操作。前者是resize的確認,后者是回退。也就是說,在做完migrate/resize操作后,給用戶提供了后悔的機會,比如用戶可能對新規(guī)格的虛擬機性能不滿意,不愿意花冤枉錢,于是可以調(diào)用revert_resize,是虛擬機回退到之前的狀態(tài)(包括虛擬機所在的主機和虛擬機的規(guī)格)。還需要注意,會有這樣的情況,用戶做完了resize/migrate,然后沒有確認也沒有回退(因為可能resize操作并不收費,所以用戶想著能體驗多長時間就用多長時間)。此時,OpenStack提供了循環(huán)任務的機制處理這種情況,當系統(tǒng)中配置項resize_confirm_window大于0時,計算節(jié)點會自動將在本機中狀態(tài)為resized,時間超過resize_confirm_window的虛擬機進行確認。

注意:resize/migration操作錯誤之后不會在migration數(shù)據(jù)表中出現(xiàn)error狀態(tài),任務卡死了(目前發(fā)現(xiàn)是這樣的),所以當動作的過度狀態(tài)長時間在數(shù)據(jù)庫中,說明操作出錯?。?!

狀態(tài)轉(zhuǎn)換圖如下:

st=>start: 開始
e=>end: 結束
op1=>operation: pre-migrating
op2=>operation: migrating
op3=>operation: post-migrating
op4=>operation: finished
op5=>operation: confirming
op6=>operation: confirmed
op7=>operation: reverting
op8=>operation: reverted
c1=>condition: confirm?

st->op1->op2->op3->op4->c1
c1(yes,right)->op5->op6->e
c1(no)->op7->op8->e

pre-migrating --> migrating --> post-migrating --> fininshed --> confirm or revert

配置項allow_resize_to_same_host表示是否允許遷移到本機,默認是False。
在做migrate/resize前還應注意,計算節(jié)點間是需要配置nova用戶無密碼訪問的;同時,migrate/resize操作支持共享存儲。

2. live-migration

migrate操作會先將虛擬機停掉,也就是所謂的“冷遷移”,而os-migrateLive是“熱遷移”,虛擬機不會停機。
live-migration是在虛擬機active狀態(tài)下的操作,且不允許熱遷移到本機。

live-migration允許用戶指定block_migration參數(shù),表示是否進行塊遷移。有幾種情況:

  1. block_migration=True,但系統(tǒng)使用了共享存儲,拋異常;
  2. block_migration=False,但系統(tǒng)沒有使用共享存儲且虛擬機沒有使用后端系統(tǒng)卷,拋異常;

live-migration 的task_state如下:

st=>start: 開始
e=>end: 結束
op1=>operation: running
op2=>operation: completed
op3=>operation: error/failed
c1=>condition: 正確?

st->op1->c1
c1(yes, right)->op2->e
c1(no)->op3->e

參考資料:

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 第一章 OpenStack基礎 OpenStack管理的資源及提供的服務OpenStack做為一個操作系統(tǒng),...
    sgt_tiger閱讀 13,238評論 4 72
  • OpenStack創(chuàng)建一個虛擬機,涉及到三種狀態(tài),vm_state,task_state和power_state。...
    嘉加家佳七閱讀 2,009評論 0 1
  • Openstack.DockerDevOps 1、Nova nova flavor-list ...
    燕京博士閱讀 655評論 0 2
  • Nova架構 Nova計算服務是Openstack的核心服務,Nova的架構如下: Nova的服務架構比較復雜,眾...
    drfung閱讀 563評論 0 0
  • 我喜歡 我喜歡媽媽抱著我入睡 我喜歡爸爸抱著我做飛翔的動作 我喜歡哥哥瞇著眼睛叫小寶貝貝 我喜歡姨媽邊唱圣經(jīng)歌邊逗...
    想寫詩的媽媽閱讀 418評論 8 8

友情鏈接更多精彩內(nèi)容