Nova熱遷移原始碼解析

2021-08-17 19:24:03 字數 1705 閱讀 5573

一 介紹

熱遷移是指虛擬機器正常工作的情況下從乙個計算節點遷移到另外的節點上,如下圖所示:

host1與host2共享儲存storage,虛擬機器vm1從host1主機遷移到host2主機,在業務不中斷的條件下將虛擬機器記憶體複製到host2主機中,映象的儲存路徑並沒有發生改變。

二 熱遷移特點

虛擬機器的熱遷移在生產環境中有著極大的用處,在各個廠商的產品中,熱遷移已經成為乙個重要指標。熱遷移有很多的特點。

1 動態調整每個計算節點的負載,使資源得到最大程度的使用。例如通過檢測虛擬機器cpu使用的情況,把空閒的虛擬機器遷移到一些節點上,這樣可以關閉一些節點,在這個資源匱乏的時代,節能就是利潤。

三 熱遷移制約因素

由於熱遷移要求虛擬機器業務不中斷,所以一般都是在共享儲存的條件下,這時影響熱遷移的關鍵因素有兩個:一是虛擬機器記憶體髒頁的速度,迭代複製是以頁為單位;二是網路頻寬。

兩個計算節點之間的虛擬機器是否可以自由遷移,還有其他因素的制約:

1 cpu相容性:不同廠家,不同系列的cpu相容性需要保證,一般生產環境的乙個集群都是使用同一廠家的cpu,即使都是intel的cpu,不同型號之間的cpu也有不同的特性,一般情況下,如果源計算節點cpu特性是目標節點cpu特性的子集,即可遷移。

2 是否具有pci,網絡卡直通的情況:如果虛擬機器通過pci和網絡卡直通技術直接使用物理的裝置,遷移過程不能保證業務不中斷,也無法滿足熱遷移的要求。

四 熱遷移效能指標

其實熱遷移並不是業務不中斷,只是在遷移的最後時刻,虛擬機會有有短暫掛起,快速完成最後一次記憶體複製。hypervisor中掛起虛擬機器本質就是改變vcpu的排程,暫時不給虛擬機器可用的物理cpu時間片。給使用者的感覺是虛擬機器瞬間無響應。

虛擬機器熱遷移的效能指標包括以下三個方面:

3 對應用程式的效能影響:遷移對於被遷移主機上執行服務效能的影響程度,資料複製會衝高主機cpu和網路流量。

五 熱遷移工作流程

熱遷移和冷遷移的工作流程類似,只是熱遷移過程中相容性判斷比較多,二冷遷移其實就是使用原來所需資源在目標節點上重新建立乙個虛擬機器,這樣很多相容性問題是不需要考慮的。熱遷移工作流程如下圖:

六 流程解析

1 與建立虛擬機器、冷遷移、resize一樣,熱遷移也屬於taskapi任務,nova-api將虛擬機器的狀態設為migrating後,通過nova.conductor.rpcapi.computetaskapi提供的rpc介面migrate_server()呼叫nova-conductor。

2 nova-conductor首先檢查虛擬機器的狀態(必須是正常執行running),如果沒有指定目標主機,和冷遷移一樣呼叫nova-scheduler選擇乙個可用的主機,然後呼叫nova-compute完成遷移。

3 在完成遷移之前,nova-compute還有很多任務作,比如在源主機執行動作之前還需要到目標主機上驗證是否滿足遷移的條件,判斷磁碟是否共享、是否是block遷移等,目標主機會將驗證結果返回給主機。然後源主機virt driver比如libvirt的介面完成最終遷移動作。

Fabric 原始碼解析 原始碼目錄解析

這裡對重要的一些目錄進行說明 bccsp 與密碼學 加密 簽名 證書等等 相關的加密服務 將fabric中用到的密碼學相關的函式抽象成了一組介面,便於拓展。bddtests 一種新型的軟體開發模式 行為驅動開 需求 開發 common 一些公共庫 錯誤處理 日誌處理 賬本儲存 策略以及各種工具等等 ...

Spring原始碼解析之 Aop原始碼解析(2)

spring aop 更多的是oop開發模式的乙個補充,幫助oop以更好的方式來解決對於需要解決業務功能模組之上統一管理 的功能 以一副圖來做為aop功能的說明更直觀些。對於類似系統的安全檢查,系統日誌,事務管理等相關功能,物件導向的開發方法並沒有更好的解決方法 aop引入了一些概念。更多的是spr...

Integer原始碼解析

public class test else integer i3 200 integer i4 200 if i3 i4 else 結果為 原因integer 類會快取 128 到 127 之間的整數 但是如果new interger的話就是不同的物件了 源 分析 如果是在 128到正的127之間...