VM平台的新選擇: Hyper-V
前些時候,我有篇Post提到我為了兼顧記憶體使用效率、應用程式相容性在Windows 2003 x64與Vista x64間左右為難,而不管何者,Virtual Machine的需求都是少不了的,網友Blair Chen提了個好建議,Why not Hyper-V?
Hyper-V是Windows 2008 x64 Standard、Enterprise、DataCenter Edition裡附加的新功能,RTM版本已於2008/06/26釋出。簡單來說,它將會取代原本Virtual Server 2005扮演的角色,但在架構及表現上,Hyper-V顯然更能實踐單一伺服器承載多台VM的理想。
雖然Hyper-V有許多新的強化,例如: 支援多CPU/x64的Guest OS、對Cluster架構的額外支援等等,不過以我單純的應用需求來說,所有的注意力都只集中在一點上: 速度。
Hyper-V在架構上做了很大的改良,VM與實體機器間的溝通簡化許多,因此VM的執行效率大大提升。擺脫模擬虛擬機器過程的層層損耗,應該可以終結在勇猛Core 2 Duo上的VM活像台486的惡夢,但這都是理論,實務上真的可以產生這麼明顯的差異嗎?
Michael O'Donovan在MSDN Blog上發表了一篇Virtual Server 2005R2 vs Hyper-V大車拼的數據。在一模一樣的硬體上分別安裝Vista x86+Virtual Server 2005及Windows 2008+Hyper-V,都用一個2G RAM+43G HD的VM執行Windows 2003+MOSS2007+SQL2005,並用Visual Studio 2005 Team Edition for Software Testers進行壓力測試。從數字上來看,Hyper-V的表現,足足比Virtual Sever 2005快了一倍以上,這是一個選擇Windows 2008的有力因素。
我自己實測的結果,Hyper-V與Windows 2008的結合相當緊密,預設VM會隨著Host OS關機時暫存狀態,一開機又立即還原啟動,而且暫存與還原的速度比Virtual Server快上許多,非常適合在一台機器上掛上多個Server VM提供服務以節省硬體的應用情境。另外,Virutal PC有但Virtual Server不支援的NAT功能(VM不需正式IP,可透過Host OS連上網路),在Hyper-V上又重現了。
不過,要執行Hyper-V有些硬體限制,CPU與BIOS要支援硬體虛擬化,這點可以用CPU檢測軟體(推薦Securable)確認。另外,Windows 2008在啟用Hyper-V後就不再提供Sleep及Hibernation的功能,不過應無大礙。
經過這番評量,我想這回的平台抉擇,應該會是家機用Vista x64,工作機用Windows 2008 x64 + Hyper-V的組合。