我應該用哪種虛擬機?(終)

作者: taowen  來源: 博客園  發布時間: 2008-11-07 15:28  閱讀: 2092 次  推薦: 0   原文鏈接   [收藏]  

系列文章導航:

我應該用哪種虛擬機?(一)

我應該用哪種虛擬機?(二)

我應該用哪種虛擬機?(終)

 

以下是我個人的一些主觀感受,沒有任何客觀數據支持。

————————

按實現方式來劃分,從下面幾個方面做一個比較

CPU效率:

軟虛擬和硬件虛擬基本差不多,但是模擬的CPU速度最慢,而且不是慢一點半點。

內存效率:

大家都差不多,即便是QEMU這樣的模擬器加上了KQEMU的加速,也能湊合。

內存占用:

硬虛擬的一大軟肋。軟虛擬可以輕松地在一臺機器上安裝十多個虛擬機,但是硬虛擬就很難做到。主要的障礙是硬虛擬上的操作系統彼此獨立,而且主流的操作系統對內存消耗都是非常貪婪的(用盡最后一個比特)。

I/O效率:

硬虛擬的另一大軟肋。在Guest操作系統上裝特殊的驅動,然后通過虛擬的總線(Hyper-V的VMBus)把操作直接委托給Host來完成,速度有所提升。但是由于DMA的緣故,在AMD/Intel不推出硬件支持的情況下,沒法有根本改觀。

可管理型:

硬虛擬的弱項。控制Guest操作系統基本上都是靠在Guest操作系統上安裝控制軟件來完成的。在沒有控制軟件的幫助下,就是關閉操作系統之類的事情都無法完成,要強制關機。軟虛擬在這個方面非常方便。

安全性:

軟虛擬的大軟肋。就是Unix的chroot,人稱jail系統。但是越獄的事情時有發生。硬虛擬,特別是純硬件的全虛擬,有很高的安全性,能夠真正達到沙箱(sandbox)的效果。

通用性:

軟虛擬機的大軟肋。最明顯的是Virtuozzo,這個windows下唯一的操作系統級別的虛擬化技術,它只支持Windows Server 2003 r2 sp2。硬虛擬在沒有驅動加速的情況下,通用性一般是比較好的。但是如果需要驅動加速,仍然是要給每個不同平臺寫不同的驅動。

————————

按我用過的產品來分,大概列出它們的一些特色和適用的場合

Hyper-V

實現:硬件虛擬(對于Windows和Suse Linux支持驅動加速的半虛擬)

特色:對Windows支持好,將來支持會更好。管理型不錯,微軟有一套管理工具。

適用:負載不高的服務器,安全性敏感的場合,開發。

Virtual Server/PC

實現:硬件虛擬

特色:使用簡單,和Windows集成好。性能差。

適用:開發,負載非常低的服務器

Vmware Workstation/GSX Server

實現:硬件虛擬

特色:使用簡單,支持多平臺。性能差。

適用:非Windows平臺的開發,以及負載非常低的服務器

Virtual Box

實現:硬件虛擬

特色:另外一個Virtual PC或者Vmware Workstation

Vmware ESX Server

實現:硬件虛擬機+對主流平臺的驅動加速+內存優化

特色:硬虛擬中的速度標桿,成熟

使用:負載中等的服務器

Xen

實現:同Vmware ESX Server

特色:速度也很快,有開源社區支持(不過Windows優化那部分沒有開源。。。)

適用:負載中等的服務器

QEMU

實現:動態編譯模擬器+KQEMU(內存加速)

特色:兼容性好,支持多CPU。

適用:玩具?

KVM

實現:硬件虛擬+Linux平臺的驅動加速和內存優化+Windows平臺的網卡加速

特色:后起之秀,有強大的社區和大公司支持。直接整合進Linux內核

適用:Linux平臺上的開發與不重要的服務器

Virtuozzo

實現:操作系統虛擬化

特色:Windows下的唯一操作系統級別虛擬化產品(也有Linux版本OpenVZ)

適用:大規模的虛擬服務器部署,虛擬主機提供商

————————

做開發的:

Windows用Virtual PC,Linux用Vmware

做中低負載服務器:

Vmware ESX,Xen,KVM,Hyper-V

做高負載,高密度服務器:

Virtuozzo,OpenVZ,Linux系的chroot族產品,Solaris Zone

————————

狀態管理

最后來關注一下虛擬機的一個非常重要的特性,狀態管理。功能強弱排列:

靜態磁盤狀態

最弱,不支持Differencing。Xen?Virtuozzo?

動態磁盤狀態

支持Differencing

靜態內存狀態

支持把內存狀態存檔和恢復,但是需要重啟,所謂Snapshot。大部分虛擬機都支持到這(Virtual PC,Vmware Workstation。。。)

動態內存狀態

動態記錄內存狀態和恢復。QEMU/KVM

全管理

包括網卡狀態等都管理了。從而能夠實現Live Migration(動態遷移)。Hyper-V 2.0的重要目標就是這個了。所以從角度來說,硬虛擬最成熟的還是Vmware ESX,其次是Xen。KVM也不能小視,短短時間連Live Migration都支持了。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()