巨詳細 - Win8 + Hyper-V 虛擬機性能簡測與虛擬化技術科普(一)

本文轉自:http://www.ipc.me/win8-hyper-v-ke-pu1.html

經過一番艱苦卓絕的鬥爭和艱苦卓絕的收集各類數據,終於把這篇科普的文章整理完整弄上來了。本文簡要概述 Win8+Hyper-V 技術,以及 Win8+Hyper-V、Win8+VMware9、Win8+VirtualBox、Win7+VMware9 的性能簡評以及相關知識的科普……

Win8+Hyper-V虛擬機

什麼是虛擬化

虛擬化技術最早出現在上世紀六七十年代,運行在IBM大型機系統上,通過虛擬機監控器(Virtual Machine Monitor,VMM)的程序在物理硬件上生成許多可以獨立運行操作系統的虛擬機實例。

隨着近年來計算機科學科技領域中多核系統、集羣、網絡、雲計算等技術的長足發展和相關設備設施的建立,虛擬化技術大大的降低了IT成本,增強了系統安全性和可靠性。

虛擬化是一個廣義上的概念,在計算機科學領域中,該詞意味着對計算資源的抽象,而不僅僅是虛擬機的概念。

虛擬化技術分類

當前的虛擬化技術主要分爲三種:

1.平臺虛擬化

平臺虛擬化是針對計算機和操作系統的虛擬化,也就是大家最常見的一種虛擬化技術,Hyper-V,Xen,VMware等產品都是應用這類虛擬化技術。

2.資源虛擬化

資源虛擬化是指對特定的計算機系統資源的虛擬化,例如對內存、網絡資源等等。

3.應用程序虛擬化

應用程序虛擬化的一個最典型的應用就是JAVA,生成的程序在指定的VM裏面運行。

平臺虛擬化分類

平臺虛擬化分爲:全虛擬化、半虛擬化、硬件輔助虛擬化、部分虛擬化、操作系統級虛擬化等。這裏簡單的介紹一下全虛擬化、半虛擬化、硬件輔助虛擬化和操作系統虛擬化四種。

1.全虛擬化

全虛擬化也可以稱爲裸金屬虛擬化(並不恰當)。

準確的講,裸金屬虛擬化是講虛擬化技術在x86架構上的一種架構上的表現。

但從廣泛概念上講,裸金屬虛擬化和全虛擬化差不多~

全虛擬化指的是虛擬機完完全全的模擬了計算機的底層硬件,包括處理器,物理內存,時鐘,各類外設等等。

這樣呢,就不需要對原有硬件和操作系統進行改動。這時,虛擬機軟件訪問計算機的物理硬件就可以看做軟件訪問了一個特定的接口。

這個接口是由VMM(由Hypervisor技術提供)提供的既VMM提供完全模擬計算機底層硬件環境,並且這時在計算機(宿主機)上運行的操作系統(非虛擬機上運行的操作系統)會被降級運行(Ring0變化到Ring1)。

Win8+Hyper-V虛擬機

簡單地說,全虛擬化的VMM必須運行在最高權限等級來完全控制主機系統,而Guest OS(客戶操作系統)降級運行,不進行特權等級操作,Guest OS原有的特權等級操作交由VMM代爲完成。

大致上可以理解爲,使用全虛擬化技術的計算機,原有的操作系統,在啓動全虛擬化技術後變爲一個“虛擬機”了。Win8+Hyper-V就是這種狀態。可以從過系統加載時的情況看出來。

使用全虛擬化技術的軟件有:VMware ESX Server、Microsoft Hyper-V、QEMU等等。

2.半虛擬化

半虛擬化又叫超虛擬化,它是通過修改Guest OS部分特權狀態的代碼,以便與VMM交互。此類虛擬化技術的虛擬化軟件性能都非常好。

半虛擬化通過修改操作系統內核,替換掉不能虛擬化的程序,通過超級調用直接與底層的虛擬化層來通訊。由虛擬化層來進行內核操作。

Win8+Hyper-V虛擬機

半虛擬化的典型就是VMware Tools,該程序的VMware Tools服務爲虛擬化層提供了後門服務,通過該服務可以進行大量的特權等級操作。

使用半虛擬化技術的軟件有:Denali、Xen等。(Xen可以使用全虛擬化和半虛擬化兩種狀態)

3.硬件輔助虛擬化

硬件輔助虛擬化指的就是通過處理器提供的特殊指令來實現高效的全虛擬化,例如Intel-VT技術和AMD-V技術。

有了Intel-VT技術和AMD-V技術,Guest OS和VMM被完全隔離開來,同時,CPU虛擬化技術給CPU增加了新的Root模式,這樣就實現了Guest OS和VMM的隔離。

Win8+Hyper-V虛擬機

4.操作系統虛擬化

操作系統虛擬化更多的應用在VPS上,在傳統的操作系統中,所有用戶進程本質上是在同一個操作系統實例中運行,因此,操作系統的內核存在缺陷,那麼勢必會影響到其他正在運行的進程。

操作系統虛擬化是一種在服務器操作系統中使用的輕量級虛擬化技術,很簡單,也很強大。

此類技術是內核通過創建多個虛擬的操作系統實例(N多內核和庫)來隔離進程。不同實例中運行的程序無法知曉其他實例中運行了什麼進程,也無法進行通訊。

Win8+Hyper-V虛擬機

應用這類技術最常見的就是OpenVZ了,但是OpenVZ的存在的超售問題一直受到很多草根站長的詬病。

Hyper-V

Hyper-V這貨作爲微軟當前(2008年至今)在虛擬化方面的拳頭產品,Hyper-V與Citrix的Xen一樣的Hypervisor技術,2008年時與Windows Server 2008 Hyper-V版本一起發佈。

Hyper-V的模式與傳統全虛擬化模式有一些不同。

Win8+Hyper-V虛擬機

Hyper-V通過一種稱爲分區的方式隔離,這裏的分區指一組隔離單元,被分配了物理內存空間與虛擬處理器資源,其中運行操作系統。

除了獨立版本的Hyper-V服務器之外,一般的微軟Hyper-V都需要一個父分區,其中運行支持Hyper-V的服務器操作系統或桌面操作系統。

父分區中的虛擬化堆棧可以直接訪問物理設備,通過父分區,可以創建子分區並在其中運行操作系統(Guest Operating System,Guest OS),分區本身不能訪問屋裏處理器,它們只有虛擬的處理器同時運行在虛擬的內存地址空間,各個子分區的虛擬內存空間都是相互獨立的。Hypervisor層(圖中Microsoft Hyper-V層)執行處理器中斷。

子分區不能訪問其他任何物理資源,它們通過虛擬設備的方式來訪問硬件,對於虛擬設備的請求,通過VMBus或者Hypervisor層來轉到父分區,交由父分區代爲處理。

在父分區運行的虛擬服務端程序(VSP)通過VMBus處理來自子分區的設備請求。在子分區中運行的虛擬服務用戶端(VSC)通過VMBus將請求交給VSP來處理。這些操作的過程,對Guest OS來說,都是透明的。

在Hyper-V的技術架構上,子分區分爲三類:

1.運行Windows操作系統並有Hyper-V意識。

2.運行非Windows系統並有Hyper-V意識。

3.無Hyper-V意識,可能運行Windows或非Windows操作系統。

這三類分區的區別在於:

1類分區可以使用VSC和Enlightenments獲得最好的性能和全部Hyper-V特性。

2類分區可以通過VSC和第三方驅動實現較高的性能和部分Hyper-V特性。

3類分區只能通過模擬設備訪問硬件資源,效率較低。

什麼叫Hyper-V意識?從當前微軟給出的資料來看,操作系統經過“啓蒙”(Enlightenments),微軟是這麼稱呼這個的,經過“啓蒙”的操作系統,可以和Hpyer-V結合度更高,獲得最好的性能和全部Hpyer-V特性。

這裏編者個人覺得,“啓蒙”的含義無非就是是否支持Hyper-V的某些核心技術,目前支持Hyper-V的Server 2008/2008 R2,Server 2012,明顯都是支持Hpyer-V的。這些操作系統明顯就是經過“啓蒙”的操作系統。而微軟上代的Windows Server 2003顯然不支持Hpyer-V,那麼他就是屬於未經“啓蒙教育”的操作系統。

Hyper-V技術特性

這裏大概說一下有哪些特性,Google一下有很多資料,這裏不再敖述。

1.新的64位Hypervisor架構,支持大量硬件設備,更好的安全性和高效率。

2.支持各種服務器平臺的32位或64位操作系統。

3.對稱多處理器支持,可以在虛擬機中支持4顆處理器(注意,不是四核)。

4.網絡均衡負載。

5.新硬件分享架構,通過VSP/VSC來獲得高性能。

6.快速遷移。

7.虛擬機快照。

8.可擴充性,支持標準WMI界面和API,對開發人員提供方便。

9.可延展特性。

Hpyer-V的新版本增加了諸如動態虛擬機存儲,最大32核處理器支持,對Jumbo幀支持等更多新的技術。這裏不再詳述。

KVM

核心虛擬機(Kernel-based Virtual Machine,簡稱 KVM),是使用Linux核心中的虛擬化基礎進行建設。

目前KVM支持Inetl VT和AMD-V等原生虛擬技術。

KVM是x86架構且硬件支持虛擬化技術的Linux全虛擬化解決方案。

在內核模塊上,通過kvm.ko(kvm-intel.ko/kvm-AMD.ko)。

KVM需要用過修改過的QEMU軟件來作爲虛擬機的上層控制和界面,相比Windows下的虛擬機程序,KVM可以再不改變Linux或Windows鏡像的情況下同時運行多個虛擬機。

P.S:其實就是多個虛擬機使用同一個鏡像卷。

同時還可以在使用同一個鏡像卷的情況下給每個虛擬機配置不同的硬件環境。

KVM必須要求CPU支持虛擬化,在性能方便,作爲服務器使用性能很好,但是圖形能力慘不忍睹(編者在測試過程中親身體驗),播放視頻等操作時,彷彿幻燈片一般……

CPU使用率控制非常的好。

並且KVM的一大優點就是,KVM完全置於Linux的內核裏。一切都很方便~

在一般的Linux進程上,只有內核模式和用戶模式兩種。KVM添加了第三個模式,這個模式被稱爲:客戶模式。

客戶模式的進程是運行在虛擬機內部的,有自己內核和用戶控件變量。在進程上,KVM虛擬機表現爲一個正常的進程,可以像其他進程一樣被kill,KVM利用硬件虛擬技術虛擬處理器的形態,虛擬機的內存管理由內核直接處理。

可以通過查看/proc/cpuinfo,在cpu flags字段有顯示vmx或者smx,就可以使用KVM了。

VMware Workstation

VMware公司成立於1998年,旗下有多款虛擬機產品。包括VMware Workstation、VMware Fusion、VMware Player、VMware vSphere、VMware ACE、VMware Lab Manager、VMware Converter、VMware ThinApp等。

本次評測使用的是VMware Workstation 9.0.0(以下簡稱VMware)版本,VMware是一款功能強大的桌面虛擬機計算機軟件,可以同時運行多個不同的操作系統。

在性能上有着不小的優勢,尤其是圖形3D方面。

VMware只用軟件技術來管理複雜的x86架構的完全虛擬化,爲了達到非常好的性能和穩定性,這樣做的弊端就是VMware軟件非常龐大。

並且大家也都用過VMware,編者也就不做過多介紹了。

VirtualBox

VirtualBox最早是由德國InnoTek軟件公司出品的虛擬機軟件,現在由Oracle(甲骨文)公司進行開發,是甲骨文公司xVM虛擬化平臺技術的一部分。

使用C++開發,可以在32位/64位Windows、Solaris、Linux操作系統上虛擬其他的x86操作系統,可以再VirtualBox上安裝Solaris、Dos、Windows、Linux、OS/2、OpenBSD、FreeBSD等衆多操作系統。

VirtualBox也支持Intel VT-x與AMD-v硬件虛擬化技術,在磁盤當面,VirtualBox可以連接iSCSI,還可以讀寫VMware的VMDK文件與VirtualPC(微軟收購的來的虛擬機軟件,曾用於Win7下的WinXP Mode)的VHD文件。

在圖形性能上,VirtualBox有一張支持VESA兼容的顯卡,性能也不俗,但是比較坑爹的是,對DX9支持很差,這也直接決定了本次測試的時候VirtualBox在N多測試上無法進行。


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