轉眼間2012年已經到來,2011已經成為過去。回顧2011年,在開發和IT領域裡有不少熱點技術,如Web前端開發的CSS3和HTML5,Jquery等;移動作業系統的Android和Windows Phone等;IT域裡的虛拟化技術和雲計算等。
對于IT人士來說雲計算可能并不陌生,因為2011年是雲計算茁壯成長的一年。談到雲計算就離不開虛拟化;談到虛拟化就離不開伺服器虛拟化;談到伺服器虛拟化當然離不開微軟的Hyper-v。
微軟在虛拟化方面有着整套的解決方案,從桌面到資料中心。今天我們就着重談談微軟的伺服器虛拟化-Hyper-v。
沒有應用虛拟化存在的難題
- 硬體資源的浪費
- 過多的電能消耗
- 昂貴的資料存儲成本
- 總部和分公司辦公環境
伺服器虛拟化帶來的優勢
伺服器整合:
- 避免購置、管理大量伺服器硬體裝置
- 避免在不同位置管理多台伺服器角色
- 避免伺服器欠載運作
- 避免不必要的電力和其他供應裝置
商業連續性:
- 避免同一伺服器上多個應用沖突
- 弱化操作失誤損失
硬體資源重新配置設定:
- 支援早期虛拟化産品或者非微軟作業系統
動态資料中心:
- 避免暫停服務及應用以便更新
- 弱化磁盤空間丌足損失
測試及部署:
- 花費時間重新搭建伺服器環境
- 臨時改變配置用以測試
Hyepr-v的功能特點:
- 基于Hypervisor的全新系統架構,性能接近于證明的伺服器。
- 同時32位和64位的虛拟機。
- 虛拟機的記憶體可以達到64G,支援動态記憶體調整。
- 虛拟機的CPU最多達到4個CPU核心,并且每個虛拟機使用的CPU數量可調。
- 硬體熱插拔。
- 動态資源調配。
- 虛拟交換機劃分VLAN。
- 支援支援主控端、虛拟機群集、快速遷移、高可用性、快照等技術。
- 提供相應的WMI管理接口。
- 支援Core和完全安裝兩種安裝方式。
- 支援多個快照。
傳統虛拟化架構和Hyper-v虛拟化架構的差別:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmLXVUY1RDM0QTN2UjMzEzX3MjN3QDNx8CX08CXxAjMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjL3M3Lc9CX6MHc0RHaiojIsJye.jpg)
如上圖所示:左邊的是傳統的虛拟化架構,從圖中可以看出,從下往上,最底層是伺服器硬體層,接着是伺服器host作業系統,接着是安裝在系統上的應用程式。傳統的虛拟化的實作是通過在host作業系統上的一個Application的Hypervisor層來實作的,要在伺服器上安裝虛拟機就必須在Application上的Hypervisor層來模拟安裝Gust作業系統。如果虛拟機Gust系統要調用硬體資源必須通過實體系統上的應用程式和實體系統通信最後才和實體機硬體通信。這個過程必須經過兩個層次的通信進而大大的降低了虛拟機的性能。從根本上講,此種虛拟化技術的實作不能夠算是真正的虛拟化技術。
上圖的右邊是Hyper-v的架構圖,相比左邊的架構圖,我們可以看出,虛拟機和實體機的作業系統是并行運作在伺服器硬體層上的Hypervisor層的,沒有上下層次之分。此時安裝在Hyper-v的系統是和安裝在實體機上的系統是平等對待的:實體機的作業系統也可以看作是虛拟機上的系統;虛拟機上的作業系統也可以看作是實體機上的系統。可謂是真作假時假亦真。是以,此時的虛拟機系統的性能就大大提高了在硬體的調用方面是好實體機幾乎一樣的。
虛拟化架構:
在上圖中可以看出:下往上可以分為伺服器硬體層(處理器必須支援虛拟化技術并在BIOS設定裡啟用它,如AMD的AMD-V和Intel的Intel VT Chipset),windows Hypervisor層(包含在windo server 2008/R2/R2SP1系統裡),核心模式層(系統層)和使用者模式層(應用層)。
Hyper-v架構術語:
VMBus :運作在實體機共享記憶體裡的虛拟機高速總線,通過VMBus,子分區裡的所有硬體請求可以通過VMBus快速的遞交給父分區,然後由父分區來完成相應硬體的調用。它是支援即插即用的總線,如在實體機裡插入的SCSI裝置、網卡支援VMBus的顯示卡。那麼,安裝在Hyper-v的虛拟機将會自動的加載挂載在VMBus裡的相應硬體驅動,進而供虛拟機使用。
VSP:全稱Virtual Services Provider即虛拟服務提供程式,它是和VMBus相關的兩個程序之一。它存在于父分區中,用來監聽來自于VMBus資料的請求,然後把這些請求通過實體機裡的I/O堆棧直接轉到相應的硬體驅動程式上參與Hypervisor直接交接到相應的裝置上去。VSP它支援多路複用技術,即可以監聽來自多個實體機上多個虛拟機的硬體調用通信,如實體機上隻有一個顯示卡和對應的VSP,但是VSP可以處理來自多個虛拟機上的顯示卡的請求。然後通過VMBus來進行相應轉發。
VSC:全稱Virtual Services Client即虛拟機服務用戶端,它是和VMBus相關的另一個程序。它存在于子分區中,用來監聽虛拟機裡應用程式對虛拟機裡的I/O堆棧所發送的裝置請求,讓後把請求轉換為VMBus能夠識别的資料格式,讓後再發送到VMBus上,最後再轉發給相應的VSP,VSP再轉給相應的硬體驅動。進而完成虛拟機上應用程式對硬體的調用。
VM Worker Process (工作者程序):用來和每個子分區(虛拟機)進行一一綁定進而來進行虛拟機之間的隔離。
WMI Provider(windows 管理接口提供程式 ):提供對虛拟機進行管理的windows管理接口。
VM Services (虛拟機服務) :虛拟機相對應的服務程序。
虛拟裝置:支援VMBus的裝置。
模拟裝置:不自持VMBus的裝置。
Hyper-v架構祥解:
從上圖上我們可以看出有父分區和子分區的劃分,那麼什麼是父分區和子分區呢?
父分區就是指伺服器上實體上的host作業系統;子分區就是指運作在伺服器上的Gust虛拟機作業系統包括模拟的(如VPC,VMware等)、非模拟的(如Hyper-v等)、和異構的系統(如Linux的虛拟機等)。
在微軟伺服器系統(2008/2008R2)的子分區裡發生的任何硬體的調用都是通過核心模式裡的VSC(虛拟服務通信)和運作在實體機記憶體裡的VMBus(虛拟機總線),VMBuse再通過和Windwos Hypervisor通信,Hypervisor進而和底層硬體相應的裝置驅動通信。整個通信過程如下圖所示:
對于Linux系統來講,如果Linux系統核心支援虛拟化技術如Xen。那麼有兩種方式可以實作Linux對硬體的調用。
第一種:配置有HyperCall Adapter硬體的伺服器可以通過如下的流程來進行硬體的調用。
第二種:沒有HyperCall Adapter硬體的伺服器可以通過如下的流程來進行硬體的調用
安裝Hyper-v的要求:
硬體上,CPU必須支援虛拟化并在BIOS裡啟用,如Intel VT或者AMD V;必須支援硬體級别的資料執行保護技術(DEP),如IntelXD或者AMD NX技術。