您的位置:知识库 » 其他分类

我应该用哪种虚拟机?(终)

作者: taowen  来源: 博客园  发布时间: 2008-11-07 15:28  阅读: 2068 次  推荐: 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

其他分类热门文章

    其他分类最新文章

      最新新闻

        热门新闻