虛擬化技術的基本概念

2021-08-04 02:58:15 字數 3287 閱讀 5848

靜態遷移:也叫做常規遷移、離線遷移(offline migration)。就是在虛擬機關機或暫停的情況下從一台物理機遷移到另一台物理機。因為虛擬機器的檔案系統建立在虛擬機器映象上面,所以在虛擬機關機的 情況下,只需要簡單的遷移虛擬機器映象和相應的配置檔案到另外一台物理主機上;如果需要儲存虛擬機器遷移之前的狀態,在遷移之前將虛擬機器暫停,然後拷貝狀態至目的主機,最後在目的主機重建虛擬機器狀態,恢復執行。這種方式的遷移過程需要顯式的停止虛擬機器的執行。從使用者角度看,有明確的一段停機時間,虛擬機器上的服務不可用。這種遷移方式簡單易行,適用於對服務可用性要求不嚴格的場合。

sr-iov是標

準化組織pci-sig提出

的一種共

享pcie裝置

的標準,

sr-iov網絡卡

除了本身

的pcie物理功

能(physical function

,pf)之外,

還會呈現

出多個相

關聯的輕

量級pcie虛擬功

能(virtual function

,vf),其由

pf進行配

置與管理

,每個vf

都能夠直

接分配給

vm使用,

增加了硬

件的復用

性。vm繞

過了vmm的干預

,並且借

助輸入/

輸出記憶體管

理單元(input/output memory management unit

,iommu)

的dma重映

射與中斷重

對映,直

接與所分

配的vf傳

輸資料,

這種方式

雖然提公升

了i/o效能

,但是破

壞了網路

虛擬化的

服務透明

性,給vm

的**遷

移帶來了

困難。hypervisor,又稱虛擬機器監視器(英語:virtual machine monitor

,縮寫為 vmm),它為在系統上「虛擬」執行的系統提供一套虛擬化硬體件。被hypervisor用來執行乙個或多個虛擬機器的電腦稱為主體機器(host machine),這些虛擬機器則稱為客體機器(guest machine)。

passthrough i/o模型是指在客戶機內部能夠直接對硬體進行操作,如下圖所示。

passthrough模型將裝置獨佔式地分配給指定的客戶域,使該域具有最高的i/o訪問效能。

這樣做的優點:

1. 不需模擬裝置進行請求轉換,故訪問速度高;

2. 客戶機能根據最新硬體,載入對應驅動,可充分發揮新硬體的功能;

3. 客戶機可直接操縱硬體裝置,提供了i/o效能。

passthrough技術與基於軟體的虛擬化i/o模型相比的優勢:

1. 可直接對i/o裝置進行操作,降低了cpu的開銷;

2. i/o操作不需要經過乙個有特權的客戶機,不存在i/o瓶頸問題;

3. 不需要修改客戶機驅動;

4. vmm的設計相對簡單,可移植性較好。

當然,passthrough技術也存在不足:

1. passthrough最大程度上提供i/o效能是以犧牲裝置共享能力為代價的;

2. passthrough i/o中的裝置只能被某個客戶機所獨佔,難以充分發揮i/o裝置的利用率。

大部分的現代計算機體系結構都有兩個或兩個以上的特權級別,用來分隔核心和應用軟體。以x86為例,為了得到更高的保護控制,在x86的保護模式下定義了當前特權級別(current previleged level,簡稱cpl),一共有四個特級層次(0 to 3)被定義,我們一般稱之為ring。ring後面的數字越大特權越小,我們的作業系統一般都執行在ring0上,而ring1和2一般用來支援裝置驅動,ring3上面跑的就是應用軟體了。而在現在的x86處理器中,64位架構已經非常普遍,64位cpu因為必須支援頁表模式,所以只有兩個特權級別,我們可以簡單理解為ring0和ring3(實際上另有明確定義),這種模型我們常稱為0/3模型。

系統中有一些關鍵操作指令只能在最高特權級別上執行,它們一般被稱為特權指令,特權指令僅僅在當前的特權級別為零時(cpl=0)才會執行。如果在非特權級別上試圖執行特權指令,將生成乙個一般保護異常(這通常會生成乙個應用程式錯誤),而非特權指令則可以在任何乙個許可權級別執行。

在虛擬化世界的vmm模型中,我們可以看到所有的客戶機作業系統都執行在非特權模式下,即非ring0級。因為guest os已經不處在特權級別,所以存在一部分原本應該在特權級別執行但現在因為層級許可權不夠必須轉交vmm進行處理的指令,這部分指令就叫敏感指令。

而根據popek和goldberg的定義,指令集支援虛擬化的前提是:所有敏感指令都是特權指令。很可惜x86指令集不能滿足這個要求,這是它和risc架構相比的乙個不足。

在ibm之類的risc指令集方面,因為敏感指令全部是特權指令,所以敏感指令的執行都可以被vmm捕獲,而在x86方面,因為有一部分敏感指令不屬於特權指令,變成了非特權指令,而非特權指令在較低的特權級別上是可以直接執行的,也就是說vmm不會處理這些指令。這樣就勢必會帶來問題,試想乙個不受虛擬化軟體層控制的指令卻工作在虛擬化層之上,這是怎樣乙個情景?x86至少有十幾條敏感指令是不會引發異常的非特權指令,在ia-32指令集中,我們稱這些非特權級別的敏感指令為臨界指令。

前面提到x86體系結構中,部分敏感指令不是特權指令,這些指令不能自動產生異常,因此想要系統正常執行就必須要捕獲這些指令。於是xen採用修改guest os核心的方法對這些有缺陷的指令進行替換。在這種模式下,xen位於作業系統和硬體之間,為其上執行的guest os核心提供虛擬化的硬體環境。這時候,xen執行在最高特權級的ring0,作業系統被特權解除,執行在ring1,ring3執行應用程式,構成虛擬機器系統中的「0/1/3模型」。當xen佔據最高特權級時,在xen下執行的guest os核心將無法執行某些特權指令,並將產生一般保護錯誤,xen必須通過超級呼叫向提供執行這些特權指令的介面。下圖是虛擬化前後的特權級的變化。

虛擬記憶體基本概念

傳統儲存管理分為連續分配與非連續分配。連續分配分為單一連續分配 固定分割槽分配 動態分割槽分配 非連續分配包括基本分頁儲存管理 基本分段儲存管理 基本段頁式儲存管理。傳統儲存管理由於暫時用不到的資料也長期占用記憶體所以導致記憶體利用率不高。傳統儲存管理的特點就是一次性與駐留性。時間區域性性 如果執行...

虛擬化技術簡單概念

1 引入虛擬化技術的必要性 2 虛擬化的概念 虛擬化是指通過虛擬化技術將計算機虛擬為多台邏輯計算機。在一台計算機上同時執行多個邏輯計算機,每個邏輯計算機可執行不同的作業系統,並且應用程式都可以相互在獨立的空間內執行而互不影響。從而顯著提高計算機的工作效率。3 簡單虛擬化示意圖 虛擬化前 虛擬化後 4...

網路管理技術的基本概念

網路管理的基本概念 什麼是網路管理?網路管理是指規劃 監督 設計 控制網路資源和網路的各種活動,使網路的效能達到最優。網路管理的層次劃分?網元管理層 網路管理層 服務管理層 事務管理層。網元管理層 各種網路裝置 路由器 交換機 網路管理層 網路拓撲 裝置之間的關係,網路的整體效能。服務管理層 使用者...