文章目錄
- 虛擬化技術簡介
- 數據中心虛擬化
- 服務器虛擬化
- 服務器虛擬化層次
- 寄居虛擬化
- 裸機虛擬化
- VMM無法直接捕獲特權指令解決方案
- 服務器虛擬化底層實現
- CPU虛擬化
- 內存虛擬化
- I/O設備虛擬化
- 虛擬機遷移
- 虛擬機動態遷移
- 遷移內容:內存遷移
- 遷移內容:網絡資源遷移
- 遷移內容:存儲設備遷移
- 隔離技術
- 內存隔離
- 網絡隔離
虛擬化技術簡介
- 虛擬化技術伴隨著計算機的出現而產生和發展起來,虛擬化技術可以用來對數據中心的各種資源進行虛擬化和管理,可以實現服務器虛擬化、存儲虛擬化、網絡虛擬化和桌面虛擬化。虛擬化技術已經成為構建云計算環境的一項關鍵技術。
- 虛擬化技術將數據中心的物理資源進行抽象整合。數據中心虛擬化可以實現資源的動態分配和調度,提高現有資源的利用率和服務可靠性;提供自動化的服務開通能力,降低運維成本;具有有效的安全機制和可靠性機制,滿足公眾客戶和企業客戶的安全需求;同時也可以方便系統升級、遷移和改造。
數據中心虛擬化
- 服務器虛擬化:將一個或多個物理服務器虛擬成多個邏輯上的服務器
- 存儲虛擬化:把分布的異構存儲設備統一為一個或幾個大的存儲池
- 網路虛擬化:在底層物理網絡和網絡用戶之間增加一個抽象層
服務器虛擬化
服務器虛擬化層次
寄居虛擬化
- 寄居虛擬化的虛擬化層一般稱為虛擬機監控器(VMM)。
- 系統損耗比較大
- 操作系統層的虛擬化,沒有獨立的Hypervisor層
- 使用操作系統層虛擬化,所有虛擬服務器必須運行同一操作系統
裸機虛擬化
- 架構中的VMM也可以認為是一個操作系統,一般稱為Hypervisor
- Hypervisor實現從虛擬資源到物理資源的映射
- Hypervisor實現不同虛擬機的運行上下文保護與切換,保證了各個客戶虛擬系統的有效隔離
VMM無法直接捕獲特權指令解決方案
- 完全虛擬化具有較好兼容性,在服務器虛擬化中應用廣泛
- 半虛擬化技術降低由于虛擬化而引入的系統性能損失
服務器虛擬化底層實現
CPU虛擬化
- 虛擬CPU的正確運行要保證虛擬機指令正確運行,現有的實現技術包括模擬執行和監控執行
- 調度問題是指VMM決定當前哪個虛擬CPU在物理CPU上運行,要保證隔離性、公平性和性能。
內存虛擬化
- 內存虛擬化技術:物理內存統一管理,包裝成多個虛擬的物理內存提供給若干虛擬機使用,每個虛擬機擁有各自獨立的內存空間。
- 虛擬內存的管理包括3種地址:機器地址、物理地址、虛擬地址
-
虛擬地址(Virtual Address):
- 由應用程序生成的地址。虛擬地址空間獨立于物理內存,因此每個進程認為自己擁有一個連續且獨立的地址空間。
- 虛擬地址通過內存管理單元(MMU)進行映射,轉換為物理地址。
-
物理地址(Physical Address):
- 實際存在于內存中的地址。物理內存是真實硬件提供的存儲空間。
- 操作系統和硬件聯合負責將虛擬地址翻譯成物理地址,以便進行實際的存儲操作。
-
機器地址(Machine Address):
- 機器地址有時也指物理地址,兩者在大多數上下文中是同義的。
- 在某些特定的硬件架構或文檔中,機器地址可能特指硬件層面的一些特殊地址,然而普遍理解是物理地址。
I/O設備虛擬化
- I/O設備虛擬化技術把真實的設備統一管理起來,包裝成多個虛擬設備給若干個虛擬機使用,響應每個虛擬機的設備訪問請求和I/O請求
- I/O設備虛擬化同樣是由VMM進行管理,主要有全虛擬化、半虛擬化和軟件模擬三種思路。
-
全虛擬化(Full Virtualization):
- 在全虛擬化中,VMM模擬真實的硬件設備,使得虛擬機中的操作系統和應用程序可以完全不知道自己運行在虛擬化環境中。
- 優點是兼容性好,不需要修改客戶操作系統。然而,由于需要模擬硬件,可能會導致性能下降。
-
半虛擬化(Paravirtualization):
- 半虛擬化通過修改客戶操作系統,使其意識到自己運行在虛擬化環境中,并提供特殊的API來優化I/O操作。
- 這種方法可以顯著提高I/O性能,但需要對客戶操作系統進行修改,這可能會限制其應用范圍。
-
軟件模擬(Software Emulation):
- 軟件模擬是通過軟件完全模擬硬件設備的行為。這種方法可以在任何硬件上運行任何操作系統,但通常性能較低。
- 軟件模擬常用于測試和開發環境,或者在需要支持多種不同操作系統的場景中。
虛擬機遷移
- 虛擬機遷移:將虛擬機實例從源宿主機遷移到目標宿主機,并且在目標宿主機上能夠將虛擬機運行狀態恢復到其在遷移之前相同的狀態,以便能夠繼續完成應用程序的任務。
虛擬機動態遷移
- 實時遷移(LiveMigration):保持虛擬機運行的同時,把它從一個計算機遷移到另一個計算機,并在目的計算機恢復運行的技術。
- 當云計算中心的物理服務器負載過大時,管理員可以將其上面的虛擬機遷移到其他服務器,達到負載平衡
- 云計算中心的物理服務器需要定期進行升級維護,當升級維護服務器時,管理員可以將其上面的虛擬機遷移到其他服務器,等升級維護完成之后,再把虛擬機遷移回來
- 預遷移(Pre-Migration):主機A打算遷移其上的一個虛擬機VM,首先選擇一個目的計算機。
- 預定資源(Reservation):主機A向主機B發起遷移請求,先確認B是否有必需的資源,若有,則預定這些資源;若沒有,VM仍在主機A中運行,可以繼續選擇其他計算機作為目的計算機。
- 預復制(InterativePre-Copy):在這一階段VM仍然運行,主機A以迭代的方式將VM的內存頁復制到主機B上。在第一輪迭代中,所有的頁都要從A傳送到B,以后的迭代只復制前一輪傳送過程中被修改過的頁面。
- 停機復制(Stop-and-Copy):停止主機A上的VM,把它的網絡連接重定向到B。CPU狀態和前一輪傳送過程中修改過的頁都在這個步驟被傳送。最后,主機A和主機B上有一致的VM映象。
- 提交(Commitment):主機B通知A已經成功收到了VM的映像,主機A對這個消息進行確認,然后主機A可以拋棄或銷毀其上的VM。
- 啟動(Activation):啟動遷移到B上的VM,遷移后使用目的計算機的設備驅動,廣播新的IP地址。
遷移內容:內存遷移
- 為實現虛擬機的實時遷移,完整的內存遷移的過程分為以下三個階段:
- 第一階段:Push階段。在VM運行的同時,將它的一些內存頁面通過網絡復制到目的機器上。為了保證內容的一致性,被修改過的頁需要重傳。
- 第二階段:Stop-and-Copy階段。VM停止工作,把剩下的頁面復制到目的計算機上,然后在目的計算機上啟動新的VM。
- 第三階段:Pull階段。新的虛擬機運行過程中,如果訪問到未被復制的頁面,就會出現頁錯誤并從原來的VM處把該頁復制過來。
- 實際上,目前大部分的遷移策略只包含其中的一個或者兩個階段。
遷移內容:網絡資源遷移
-
虛擬機這種系統級別的封裝方式意味著遷移時VM的所有網絡設備,包括協議狀態(如TCP連接狀態)以及IP地址都要隨之一起遷移。
-
在局域網內,可以通過發送ARP重定向包,將VM的IP地址與目的機器的MAC地址相綁定,之后的所有包就可以發送到目的機器上。
遷移內容:存儲設備遷移
- 遷移存儲設備的最大障礙在于需要占用大量時間和網絡帶寬,通常的解決辦法是以共享的方式共享數據和文件系統,而非真正遷移。
- 目前大多數集群使用NAS(Network Attached Storage,網絡連接存儲)作為存儲設備共享數據。
- NAS實際上是一個帶有瘦服務器的存儲設備,其作用類似于一個專用的文件服務器。
- 在局域網環境下,NAS已經完全可以實現異構平臺之間,如NT、UNIX等的數據級共享。
- 基于以上的考慮,Xen并沒有實現存儲設備的遷移,實時遷移的對象必須共享文件系統。
隔離技術
- 虛擬機隔離指虛擬機之間在沒有授權許可的情況下,互相之間不可通信、不可聯系的一種技術。
- 從軟件角度,互相隔離的虛擬機之間保持獨立,如同一個完整的計算機
- 從硬件角度,被隔離的虛擬機相當于一臺物理機,有自己的CPU、內存、硬盤、I/O等,它與宿主機之間保持互相獨立的狀態
- 從網絡角度,被隔離的虛擬機如同物理機一樣,既可以對外提供網絡服務,也可以從外界接受網絡服務
- 虛擬機隔離是確保虛擬機之間安全與可靠性的一種重要手段,現有虛擬機隔離機制主要包括:網絡隔離;構建虛擬機安全文件防護網;基于訪問控制的邏輯隔離機制;通過硬件虛擬,讓每個虛擬機無法突破虛擬機管理器給出的資源限制
內存隔離
-
MMU(Memory Management Unit 內存管理單元),它是中央處理器(CPU)中用來管理虛擬存儲器、物理存儲器的控制線路,負責將虛擬地址映射為物理地址,以及提供硬件機制的內存訪問授權。
-
Xen將這層中間地址真正地映射到機器地址上卻可以是不連續的,這保證所有的物理內存可被任意分配給不同的Guest OS
- 虛擬機監控器使用分段和分頁機制對自身的物理內存進行保護。x86體系結構提供支持分段機制的虛擬內存,這能夠提供另一種形式的特權級分離。
- 基址:基址+虛擬地址=>線性地址
- 段限:決定段中所能訪問的線性空間的長度
- 屬性位:標記是否可讀寫、可執行、屬于代碼段還是數據段
網絡隔離
- 網絡隔離:確保把有害的攻擊隔離,在可信網絡之外和保證可信網絡內部信息不外泄的前提下,完成網間數據的安全交換。
- 網絡隔離關鍵:在于系統對通信數據的控制,即通過不可路由的協議來完成網間的數據交換