第1章 緒論

1.1 課題背景

自從 IBM 開發出 IBM 370/390 之後,硬件虛擬機技術的發展日新月異。爲了克服虛擬機技術應用在 x86 上遇到的困難,英特爾推出了 Intel-VT 技術。 Intel-VT 技術綜合了全虛擬化和半虛擬化的優點:跟全虛擬化比起來,由於大部分客戶操作系統的指令都是由處理器執行,所以理論上性能接近於在裸機上運行的性能;跟半虛擬化比起來,客戶操作系統不需要修改,就可以在硬件上運行,大大減輕了虛擬機監控器的開發難度。

由於 Intel-VT 技術的優點,目前,不管是公司,還是研究機構,都在開展 Intel-VT 技術的應用研究。我們實驗室對這方面的技術積累已經達到了一定程度。該課題設立的目的,就是爲了能夠在國家基金的支持下,研究硬件虛擬機監控器如何充分利用 Intel-VT 技術。

1.2 國內外發展現狀

1.2.1 VMware

VMware 是一個 虛擬 PC” 軟件。它可以在一臺機器上同時運行二個或更多 Windows DOS LINUX 系統。與 多啓動 系統相比, VMware 採用了完全不同的概念。 多啓動 系統在一個時刻只能運行一個系統,在系統切換時需要重新啓動機器。 VMware 是真正 同時 運行多個操作系統在主系統的平臺上。 VMware 是提供一套虛擬機解決方案的軟件公司,主要產品分爲如下四個:

a)        VMware-ESX-Server :這個版本並不需要操作系統的支持。它本身就是一個操作系統,用來管理硬件資源。所有的系統都安裝在它的上面。帶有遠程 web 管理和客戶端管理功能;

b)        VMware-GSX-Server :這個版本就要安裝在一個操作系統下了,這個操作系統叫做 HOST OS. 這個 HOST OS 可以是 Windows 2000 Server 以上的 Windows 系統或者是 Linux( 官方支持列表中只有 RH, SUSE, Mandrake 很少的幾種 ) ,和 VMware-ESX- Server 一樣帶有遠程 web 管理和客戶端管理功能;

c)        VMware-WorkStation :這個版本和 VMware-GSX-Server 版本的機構是一樣的。也是要安裝在一個操作系統 下,對操作系統的要求也是 Windows 2000 以上或者 Linux 。和 Vmware-GSX-Server 的區別就是沒有 web 遠程管理和客戶端管理;

d)       瘦客戶機終端操作系統 (DeTOS)6.0 :戴聞 (Devon) IT 公司與 vmware 公司合作開發的瘦客戶機終端操作系統( DeTOS 6.0 是一種基於 Linux 操作系統的,可捆綁多客戶並連接到衆多的各類服務器,利用不同類型協議的網絡終端管理軟件;

下面,重點介紹兩款比較有代表性的產品:

1.2.1.1 VMware Workstation

VMware Workstation 是一款功能強大的桌面虛擬計算機軟件,提供用戶可在單一的桌面上同時運行不同的操作系統,和進行開發、測試、部署新的應用程序的最佳解決方案。 VMware Workstation 可在一部實體機器上模擬完整的網絡環境,以及可便於攜帶的虛擬機器,其更好的靈活性與先進的技術勝過了市面上其他的虛擬計算機軟件。對於企業的 IT 開發人員和系統管理員而言, VMware 在虛擬網路,實時快照,拖曳共享文件夾,支持 PXE 等方面的特點使它成爲必不可少的工具。

VMware Workstation 的安裝跟在 Windows 上安裝普通的應用程序一樣方便。而且針對每個操作系統你都可以進行虛擬的分區、配置而不影響真實硬盤的數據,你甚至可以通過網卡將幾臺虛擬機用網卡連接爲一個局域網,極其方便。安裝在 VMware 操作系統性能上比直接安裝在硬盤上的系統低不少,因此,比較適合學習和測試。

VMware Workstation 主要的功能有:

1.      不需要分區或重開機就能在同一臺 PC 上使用多個不同的操作系統;

2.      完全隔離並且保護不同操作系統的操作環境以及所有安裝在操作系統上面的應用軟件和資料;

3.      不同的操作系統之間還能互動操作,包括網絡、周邊、文件分享以及複製粘貼功能;

4.      有復原功能;

5.      能夠設定並且隨時修改操作系統的操作環境,如:內存、磁碟空間、周邊設備等等;

除了爲網絡適配器、 CD-ROM 讀盤機、硬盤驅動器、以及 USB 設備的訪問提供了橋樑外, VMware 工作站還提供了模擬某些硬件的能力。例如,能將一個 ISO 文件作爲一張 CDROM 安裝在系統上、也能將 .vmdk 文件作爲硬盤驅動器安裝、以及可將網絡適配器驅動程序配置爲通過宿主計算機使用網絡地址轉換( NAT )來訪問網絡,而非使用與宿主機橋接的方式(該方式爲:宿主網絡上的每個客戶操作系統必須分配一個 IP 地址)。

VMware 工作站還允許無須將 LiveCD 燒錄到真正的光盤上、也無須重啓計算機,而對這些 LiveCD 進行測試。還可以捕獲在 VMware 工作站下運行的某個操作系統的快照。每個快照可以用來在任何時候將虛擬機回滾到保存的狀態。這種多快照功能使 VMware 工作站成爲銷售人員演示覆雜的軟件產品、開發人員建立虛擬開發和測試環境的非常流行的工具。 VMware 工作站包含有將多個虛擬機指定爲編隊的能力,編隊可以作爲一個物體來開機、關機、掛起和恢復 這使 VMware 工作站在用於測試客戶端 - 服務器環境時特別有用。

1.2.1.2 VMware ESX Server

VMware ESX Server 是爲 IT 環境提供基於虛擬化的分佈式服務的基礎。作爲 VMware Infrastructure 的核心組成部分, ESX Server 是 一個強大且經過生產驗證虛擬化層,它將處理器、內存、存儲器和網絡資源抽象成多臺虛擬機,這些虛擬機可以並行在同一臺物理服務器上運行。在多個虛擬機間共 享硬件資源可以提高硬件的利用率,並大幅度降低資金和運營成本。虛擬機具有高可用性、資源優化、操作自動化和安全功能,這些功能甚至可以向資源要求極高的 關鍵應用程序提供服務級別。 ESX Server 爲企業 IT 環境提供了最高級別的性能、可擴展性和穩定性。

使用 VMware ESX Server[1]

1.      在專用系統上運行的應用程序可以轉移到位於一個單一、更爲可靠和可擴展的系統上的不同虛擬機中。

2.      可以從任何位置對服務器實行遠程管理,從而簡化了服務器維護。

3.      可以通過高級資源管理保證服務級別。

1.1[1] 展示了 VMware ESX 的架構圖。 VMware 虛擬機監控器作爲隔離層,運行在 x86 硬件上,客戶操作系統運行在 VMware 虛擬機監控器之上。

1 . 1 VMware ESX 架構圖

1.2.2 Xen

如今,虛擬化市場上滿是各種不同的虛擬化解決方案。多年以來, VMware 一直控制着基於 i386 的虛擬化市場。然而,現在的開源解決方案 Xen 也在迅速地擴張自己的市場。

Xen 是一個開放源代碼虛擬機監視器,由 劍橋大學 開發。 Xen 項目剛開始的目標,是單個 計算機 上運行多達 100 個的操作系統。操作系統必須進行顯式地修改( 移植 )以在 Xen 上運行(但是提供對用戶應用的兼容性)。這使得 Xen 無需特殊硬件支持,就能達到高性能的虛擬化 [2]

目前, Xen 提供了兩種的虛擬化技術可供選擇:

l  一種是半虛擬化技術。 Xen 通過一種叫做半虛擬化的技術獲得高效能的表現 ( 較少的效能損失 , 典型的情況下大約損失 2%, 在最糟的情況下會有 8% 的效能耗損 ; 與其它使用完全的虛擬化卻造成最高到 20% 損耗的其他解決方案形成一個明顯的對比 ) ,甚至在某些與傳統虛擬技術極度不友好的架構上(如 x86 ), Xen 也有極佳的表現。與那些傳統透過軟件模擬實現硬件的虛擬機不同,在 3.0 版本及在 Intel VT-X 支援前的 Xen 需要讓客戶操作系統與 Xen API 進行連接。到目前爲止,這樣連結已經可以運用在 NetBSD, GNU/Linux, FreeBSD 和貝爾實驗室的 Plan 9 系統上。在 Brainshare 2005 會議上, Novell 展示了 NetWare Xen 的連通。與 Windows XP 連通的技術曾在 Xen 開發初期進行,但微軟的協議未能允許它發佈。 Sun 微系統公司也正積極研究 Solaris Xen 的連結,使其能在 Xen 平臺上運作。

l  另一種是硬件輔助虛擬化。英特爾對 Xen 貢獻修改以支持 Vanderpool 架構擴展。如果主系統支持 Vanderpool 或者 Pacifica 擴展( Intel AMD 對本地支持虛擬化的擴展),這項技術將允許未修改的客操作系統運行在 Xen 虛擬機中。事實上,那意味著性能的提升,並且你可以在沒有進行任何協議不允許的修改的情況下對 Windows 進行虛擬。

Xen 虛擬機可以在不停止的情況下在多個物理主機之間實時遷移。在操作過程中,虛擬機在沒有停止工作的情況下內存被反覆的複製到目標機器。虛擬機在最終目的地開始執行之前,會有一次 60-300 秒的非常短暫的暫停以執行最終的同步化,給人無縫遷移的感覺。類似的技術被用來暫停一臺正在運行的虛擬機到磁盤,並切換到另外一臺,第一臺虛擬機在以後可以恢復。

1 . 2 Xen 架構圖

1.2[3] Xen 的架構圖。 Xen Hypervisor 是一個介於硬件和操作系統之間的軟件層,它負責在各虛擬機之間進行 CPU 調度和內存分配。 Xen Hypervisor 不僅抽象出硬件層,同時控制虛擬機的執行,因爲這些虛擬機共享同一個處理環境。 Xen Hypervisor 不會處理網絡、存儲設備、視頻以及其他 I/O

Domain 0 是一個修改過的 Linux kernel ,是唯一運行在 Xen Hypervisor 之上的虛擬機,它擁有訪問物理 I/O 資源的權限,同時和系統上運行的其他虛擬機進行交互。 Domain 0 需要在其它 Domain 啓動之前啓動。

Domain U 運行在 Xen Hypervisor 上的所有半虛擬化虛擬機被稱爲 “Domain U PV Guests” ,其上運行着被修改過內核的操作系統,如 Linux Solaris FreeBSD 等其它 UNIX 操作系統。所有的全虛擬化虛擬機被稱爲 “Domain U HVM Guests” ,其上運行着不用修改內核的操作系統,如 Windows 等。 Domain U PV Guests 的內核知道它自己不能直接訪問物理硬件,因爲他知道有其他的虛擬機也運行在同一個環境中。而 Domain U HVM Guests 的內核不知道他正在和其他虛擬機共享一個處理環境,它認爲它運轉在物理硬件上。 Domain U PV Guests 包含兩個驅動: “PV Network Driver” “PV Block Driver”

Domain U HVM Guests 虛擬機內沒有 PV Driver ,而是在 Domain 0 裏爲每一個 HVM Guest 啓動一個特殊守護進程: Qemu-dm ,由 Qemu-dm 負責客戶操作系統的網絡和磁盤請求。 Domain U HVM Guests 必須進行初始化爲某類機器,所以要在 Domain U 上附加一個軟件: Xen 虛擬固件,來模擬 BIOS

1.2.3 Hyper-V

Hyper-V 採用微內核的架構,兼顧了安全性和性能的要求。 Hyper-V 底層的 Hypervisor 運行在最高的特權級別下,微軟將其稱爲 ring-1 (而 Intel 則將其稱爲 root mode ),而虛擬機的 OS 內核和驅動運行在 ring 0 ,應用程序運行在 ring 3 下,這種架構就不需要採用複雜的 BT (二進制特權指令翻譯)技術,可以進一步提高安全性。

由於 Hyper-V 底層的 Hypervisor 代碼量很小,不包含任何第三方的驅動,非常精簡,所以安全性更高。 Hyper-V 採用基於 VMbus 的高速內存總線架構,來自虛擬機的硬件請求(顯卡、鼠標、磁盤、網絡),可以直接經過 VSC ,通過 VMbus 總線發送到根分區的 VSP VSP 調用對應的設備驅動,直接訪問硬件,中間不需要 Hypervisor 的幫助。

1.3[4] Hyper-V 架構圖。這種架構效率很高,不再像以前的 Virtual Server ,每個硬件請求,都需要經過用戶模式、內核模式的多次切換轉移。更何況 Hyper-V 現在可以支持 Virtual SMP Windows Server 2008 虛擬機最多可以支持 4 個虛擬 CPU ;而 Windows Server 2003 最多可以支持 2 個虛擬 CPU 。每個虛擬機最多可以使用 64GB 內存,而且還可以支持 X64 操作系統。

與之前的 Virtual PC Virtual Server 類似, Hyper-V 也是微軟的一種虛擬化技術解決方案,但在各方面都取得了長足的發展。

1 . 3 Hyper-V 架構圖

從架構上講 Hyper-V 只有 硬件- Hyper-V -虛擬機 三層,本身非常小巧,代碼簡單,且不包含任何第三方驅動,所以安全可靠、執行效率高,能充分利用硬件資源,使虛擬機系統性能更接近真實系統性能。

按照微軟的虛擬化產品路線,微軟在將 2008 年第四季度,推出脫離 Windows Server 2008 的、獨立的虛擬化產品 Hyper-V Server

1.2.4 KVM

KVM 是一種完全 虛擬化 解決 方案 ,它有一個方面非常獨特:它將 Linux 內核轉換爲一個 使用 內核模塊的 hypervisor 。這個模塊允許使用其他客戶 操作系統 ,然後在宿主 Linux 內核的用戶空間中運行。內核中的 KVM 通過 /dev/kvm 字符設備來公開虛擬化後的硬件。客戶操作系統使用爲 PC 硬件仿真修改過的 QEMU 進程與 KVM 模塊接口。

1.4[5] KVM 的架構圖。 KVM 模塊向內核中引入了一個新的執行模塊。普通內核支持內核模式和用戶模式,而 KVM 則引入了一種客戶模式。客戶模式用來執行所有非 I/O 客戶代碼,而普通用戶模式支持客戶 I/O

KVM 的引入代表了作爲主流 Linux 內核一部分的第一個虛擬化 技術 。它已經存在於 2.6.20 樹中,不過也可以作爲 2.6.19 內核的一個內核模塊使用。當在支持虛擬化的硬件上運行時, KVM 支持 Linux 32 位和 64 位)和 Windows 32 位)客戶機。

1 . 4 KVM 架構圖

1.3 術語解釋

半虛擬化:在半虛擬化中,客戶操作系統使用一個專門的 API (半虛擬化接口)與 VMM 通信, VMM 則負責處理虛擬化請求,並將這些請求遞交到硬件上。

半虛擬化接口( Virtual Machine Interfaces: VMI ):爲了便於半虛擬化虛擬機的開發, VMware 和開源社區共同開發出了一套半虛擬化接口。

Intel-VT Intel Virtualization Technology ):英特爾公司的虛擬化技術。

客戶操作系統:指運行在虛擬機監控器之上,接受虛擬機監控器監控的操作系統。

全虛擬化:虛擬機與一個叫做虛擬機監控器的部件進行通信,而虛擬機監控器則與硬件平臺進行通信。

VMX(Virtual Machine Extensions) :用於支持 Intel-VT 技術的處理器模式。

虛擬 8086 監控器: Smart-VM 虛擬機監控器的一個子模塊,用於監控在虛擬 8086 模式下運行的 8086 程序。

虛擬機管理程序:通過虛擬機管理程序,你可以在一臺物理計算機上模擬出一臺或多臺虛擬的計算機,這些虛擬機完全就像真正的計算機那樣進行工作,例如你可以安裝操作系統、安裝應用程序、訪問 網絡資源 等。

虛擬機監控器( VMM ):與虛擬機管理程序同。

虛擬機控制結構( VMCS, Virtual Machine Control Structure ):用於支持 VMX 操作的數據結構。

硬件輔助虛擬化:指虛擬機監控器利用硬件提供的特殊功能(如 Intel-VT, AMD-V 等),來實現虛擬化功能。

硬件虛擬機:指通過軟件模擬的具有完整硬件系統功能的、運行在一個完全隔離環境中的完整計算機系統。

1.4 本章小結

近幾年來,硬件虛擬機的產品層出不窮,顯示出了這個領域的活力。

本章主要介紹了我們的課題背景。還有就是針對目前市面上的幾款流行的硬件虛擬機進行了簡要的介紹。

VMware 是在 x86 平臺上,佔有絕對領先的地位。但是 Xen 等其他幾款硬件虛擬機也逐漸壯大起來了,開始與 VMware 爭奪市場資源。 Xen 的優勢是它是開源軟件,可以得到開源社區的技術支持。而 Hyper-V 則是微軟的產品,作爲全球 IT 行業的領袖企業之一, Hyper-V 有它得天獨厚的先天優勢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章