Hyper-V服務器虛擬化概覽
毋庸置疑虛擬化是當今最熱的IT技術領域之一,這一點無論是從眾多IT技術廠商不斷推出的虛擬化產品在市場中一浪高過一浪的宣傳攻勢,還是從企業用戶開始大規模地使用虛擬化的解決方案都可以看出這一點。那么到底什么是虛擬化呢?
其實這個問題可以從兩個方面來理解,首先如果從狹義的角度來說,虛擬化通常就是指對某種虛擬機技術的應用(例如:Hyper-V、VMware ESX等),通過這種技術我們可以將多個操作系統運行于同一臺物理計算機之上,從而能夠有效地節省在硬件投入方面的開銷,整合應用并且降低管理方面的成本。但如果是從廣義的角度來理解什么是虛擬化,我們可以認為所謂的虛擬化就是指對計算資源進行有效隔離的技術手段。
所以它不僅限于虛擬機產品,所有能夠實現這一特性的技術都可以劃歸在虛擬化的范疇之內。這點可能不是非常好理解,但是可以通過一個簡要的例子來說明:一位用戶使用一個應用程序來完成自己的工作,其實在這個我們非常熟悉的場景中包括很多個層次,首先用戶使用的這個應用程序是安裝在特定的操作系統之上,操作系統是安裝在特定的硬件平臺之上,用戶的數據是存放在計算機本地的特定磁盤中,計算機的網絡是連接到本地的特定物理交換機上……所有的這些層次都是緊緊關聯在一起的,你無法輕易地將其中的一個層次和其他層次分離,例如將這個應用程序復制到另外一臺安裝了不同操作系統的計算機上它還可以完全和之前一樣的運行并訪問原來的數據。這種現象就如圖1所示的靜態計算模型,所有的層次都緊密關聯在一起。
如果我們能夠將這些資源層次之間的緊密連接進行有效分離,就像圖1的右側,使得對某個層次的變動甚至是替換都不會影響到其他的層次,那么我們就可以將這種技術看作是一種虛擬化技術。最常見的虛擬化技術——虛擬機就是將操作系統和硬件之間的緊密綁定進行了分離,這使得我們能將一臺虛擬機從一臺物理機復制到另一臺物理機而不用做任何修改就可以像以前一樣運行。當然從這個角度來看,遠程桌面或者終端服務也是一種虛擬化技術——展現虛擬化,因為它實現了應用程序的展現與應用程序、操作系統以及硬件設備之間的分離,無論在什么地理位置只要能夠通過終端服務的客戶端,就可以像在那臺服務器本地一樣訪問上面運行的應用程序。所以從廣義上來講,虛擬化并不是僅局限于虛擬機技術,它可以在很多個層面上實現,與此同時眾多的虛擬化廠商也在各個層面上都推出了相應的虛擬化技術與產品,例如微軟公司的虛擬化戰略中就包括了從服務器虛擬化、展示虛擬化、存儲虛擬化、應用程序虛擬化等眾多的產品與技術。
虛擬化之所以成為當前企業IT應用的一個熱點,其主要原因正是虛擬化能夠將資源進行有效隔離,從而可以更充分地利用有限的計算機資源,降低在成本和管理上的投入,同時對于計算資源的隔離也打破了這些資源間原有的緊密綁定,使得企業的IT系統能夠更加靈活,具備了“按需而變”的動態特性。
在Windows Server 2008 R2中有很多方面都提供了對虛擬化的支持,其中包括了展示虛擬化(通過終端服務角色實現)、網絡虛擬化(通過VPN組件實現)和服務器虛擬化(通過Hyper-V角色實現),而Hyper-V則是其中全新提供并具有廣泛應用前景的一個組件,因為在同一個物理設備上運行多個操作系統的需求仍然是目前企業虛擬化應用中最主要的形式。Hyper-V被微軟稱為服務器虛擬化平臺,很顯然它的主要目標就是實現服務器操作系統的虛擬化。Hyper-V服務器虛擬化的典型應用場景主要有以下幾個:
首先,是服務器的整合。事實上企業中的很多服務器并不像我們想像的那么忙碌,一般情況下很多服務器的運行負荷很低,也許CPU的占用率通常都不到20%,其他資源的利用率也很低,但是因為考慮到操作系統的版本、應用程序的沖突與兼容性以及易于管理等方面的因素,只能把它們安裝在一個個獨立的物理服務器上,無論從哪個角度來講,都帶來了很大的浪費。Hyper-V使得我們在同一臺物理硬件服務器上運行多個不同類型的操作系統,而這些操作系統在邏輯層面上是完全隔離的,自然也不會帶來兼容性方面的問題。這樣就可以將原來分別運行在幾臺、十幾臺甚至幾十臺物理服務器上的操作系統和應用整合在一臺物理服務器上,對于成本的節省是顯而易見的,而與此同時在管理方面也帶來了很大的效率提升。
其次,是協助實現業務的持續性。所謂業務的持續性就是如何保證企業環境中的應用系統能夠獲得最大的可用性。以往這個方面對于IT管理是一個很大的挑戰,舉個比較常見的例子,對物理服務器的硬件進行升級和替換是很常見的操作,但是這些操作基本都是需要在關閉了服務器以后才能進行,這就會造成該服務器上的應用程序很長一段時間不可用,對于一些關鍵的應用系統來講,這種情況是無法接受的。如果使用Hyper-V將應用服務器進行虛擬化,這個問題就能得到很好的解決,因為虛擬機中的操作系統并沒有與服務器底層的硬件相互綁定,所以能夠很容易地將運行中的虛擬服務器快速遷移到另外一臺物理服務器上繼續運行,而對原來的一臺服務器進行硬件的升級和替換。有些應用系統的高可用方案實施起來比較煩瑣,而且不同的應用系統使用完全不同的高可用技術,這樣對于應用系統的高可用性管理也帶來了很多的不便。如果使用Hyper-V將應用服務器進行虛擬化,由于Hyper-V本身可以基于Windows Server 2008 R2的故障轉移群集很容易地實現虛擬機的高可用性,因此運行于Hyper-V之上的虛擬機和應用系統也自然成為了高可用的應用系統,這使得高可用應用系統的構建和管理變得非常簡單。另外,虛擬化也極大簡化了服務器的備份和災難恢復,并且提供了快速災難恢復的能力。
再次,是構建測試和開發環境。對于軟件公司和IT解決方案的提供商而言,開發和測試環境顯然是必需的,但是隨著信息技術在企業中的不斷深入,企業應用解決方案的開發和測試環境也成為企業IT環境中必不可少的一部分。但是構建一個測試環境的成本投入、測試環境的提供和管理、從測試到生產環境的遷移等,都是比較棘手的問題。使用Hyper-V這樣的服務器虛擬化平臺以后,一方面可以用較低的成本來構建測試開發環境,另一方面在測試環境的管理、從測試環境到生產環境的轉換和遷移等方面都將變得易于實現。
最后,是構建動態的數據中心。Hyper-V能夠將虛擬服務器操作系統以及上面運行的應用程序與物理硬件相分離,這使得對應用系統的管理、控制、高可用、遷移和容災等方面都具有了非常大的靈活性,因此Hyper-V能夠為構建動態的企業數據中心提供核心的支撐平臺。
微軟在Windows Server 2008 R2 Hyper-V之前也有一款服務器虛擬化的產品——Virtual Server 2005,但是需要知道的是Hyper-V雖然和Virtual Server2005在應用領域方面有相同的地方,但是它們并不是同一款產品,Hyper-V也不是Virtual Server 2005的升級版本。Hyper-V和Virtual Server 2005擁有完全不同的架構,雖然作為使用者不需要了解太多Hyper-V原理和機制方面的知識,但是從圖2中至少可以了解到非常重要的一點:Hyper-V中的“虛擬機(guest)”和所謂的“宿主機(host)” 都是運行在同一個層次的,虛擬機操作系統并不是運行在另一個操作系統的內部,也就是說Hyper-V中并沒有“真實操作系統”和“虛擬操作系統”之分,你可以認為它們都是虛擬的或者都是真實的,這是Hyper-V和Virtual Server結構上最大的不同點之一。
這種結構帶來的一個最直接的好處就是Hyper-V中的虛擬機能夠獲得比以前Virtual Server等寄居型服務器虛擬化產品更好的性能和可伸縮性。與此同時由于基于硬件的虛擬化支持,虛擬機之間可以進行有效的隔離和數據保護,從而能夠在這個虛擬化平臺之上提供更高的安全性。這一切都使得Hyper-V為企業級的虛擬架構提供了更加穩固和可靠的平臺。
【編輯推薦】