Linux KVM与Xen的性能比较

Linux KVM与Xen的性能比较

Linux KVM与Xen的性能比较

赵珂, cn.zhaoke.com
http://blog.zhaoke.com/51.html
2007年1月10日

介绍

Linux 2.6.20内核的预发行版已经引起很多人的关注. 其中热点包括增加异步SCSI扫描, 多线程USB检测和许多驱动更新,其中最引人关注的是一个全虚拟化的解决方案(非半虚拟化, 不过kvm已经支持半虚拟化, 见相关文章’KVM的半虚拟化: KVM-paravirt‘). 基于内核的虚拟机(或简称为KVM)是一个由Qumrannet开发和赞助的开源项目. 本文主要介绍KVM在linux上与其它虚拟技术QEMU Accelerator和Xen的性能比较.


Linux 2.6.20内核部分包含了用于管理虚拟化硬件的设备驱动程序. 其它主件包括kvm用户空间程序, 一个修改过的QEMU版本. linux kvm的硬件虚拟需要Intel虚拟技术(VT, Virtualization Technology)或AMD安全虚拟机(SVM/AMD-V)的支持. 也就是说, kvm使用的x86处理器至少需要包含其中一项虚拟化技术(Intel-VT或AMD-V). 支持运行KVM的CPU包括Intel Core系列, Xeon 5000系列, Xeon LV系列. AMD的Socket F和AM2处理器.

KVM增加了一个新的客户模式, 每一个虚拟机都是一个由linux调度程序管理的标准进程. 这样我们可以使用通常的进程管理工具来管理每一个虚拟机. linux 2.6.20-rc1和最新的内核已经包含了KVM内核主件, 而且我们还也可以在更老的内核(2.6.16到2.6.19)上运行kvm. KVM支持Intel主机, AMD主机, Linux客户机(x86和x86_64), Windows客户机(x86), SMP主机和非动态迁移的客户机. 正在开发的功能包括: MMU虚拟优化, 动态迁移, SMP客户机和Windows x64.

无论你是通过内核内置或者内核模块方式使用kvm, 建立客户操作系统的过程都十分简单. 首先创建好映像文件(qemu-img支持kvm), 然后运行kvm内核主件(内核内置或者内核模块方式).

系统安装

kvm需要运行在至少含有AMD或Intel虚拟技术的x86/x86_64处理器上, 至少1GB系统内存(为客户机准备足够的内存). 我们使用了两个Dual-core双核心Intel Xeon LV处理器, linux 2.6.20-rc3内核(于2007年1月1日发行). 下面是我们的系统状况:

硬件部分:

处理器: 2 x Intel Xeon LV Dual-Core 2.00GHz
主板: Tyan Tiger i7520SD S5365
内存: 2 x 512MB Mushkin ECC Reg DDR2-533
显卡: NVIDIA GeForce FX5200 128MB PCI
硬盘: Western Digital 160GB SATA2
光驱: Lite-On 16x DVD-ROM
冷却部件: 2 x Dynatron Socket 479 HSFs
机箱: SilverStone Lascala LC20
电源: SilverStone Strider 560W

软件部分:

操作系统: Fedora Core 6

我们选用的基准测试包括Gzip压缩, LAME Complication(编译), LAME encoding(编码)和RAMspeed. 我们使用的虚拟环境QEMU .8.2(含kqemu accelerator模块), Xen 3.0.3和KVM. 我们也比较了这些虚拟化环境和没有任何虚拟化技术的Fedora Core 6 Zod. 在Xen 3.0.3测试当中, 我们使用了全虚拟化而不是半虚拟化技术. 测试中使用的映像文件大小为10GB. 整个测试过程使用的操作系统是Fedora Core 6 Zod.

性能

http://blog.zhaoke.com/data/2007/0110/01.png

http://blog.zhaoke.com/data/2007/0110/02.png

http://blog.zhaoke.com/data/2007/0110/03.png

http://blog.zhaoke.com/data/2007/0110/04.png

http://blog.zhaoke.com/data/2007/0110/05.png

结论

我们看到各个虚拟化性能比较的结果, KVM不是所有测试的获胜者. KVM在Gzip压缩测试中是领先的,但是在其它四个测试中都落后于Xen 3.0.3. 然而, 所有测试中Xen的全虚拟化和KVM都领先于QEMU+kqemu. KVM的优点是高性能, 稳定, 无需修改客户机系统和大量的其它功能(比如. 可使用linux调度器). 在Linux 2.6.20内核正式推出来后, 我们将会做更多的KVM基准测试, 其中会包括比较AMD和Intel的硬件虚拟化性能.

参考
Linux KVM Virtualization Performance
http://www.phoronix.com/scan.php?page=article&item=623&num=1

相关文章
1. KVM的半虚拟化: KVM-paravirt
http://blog.zhaoke.com/48.html
2. KVM虚拟化常见问题
http://blog.zhaoke.com/46.html
3. Linux上的虚拟化技术
http://blog.zhaoke.com/45.html
4. 用户友好的Linux虚拟技术: KVM
http://blog.zhaoke.com/43.html
5. KVM: 基于内核的虚拟驱动
http://blog.zhaoke.com/42.html
6. Linux内核2.6.20增加虚拟化解决方案KVM
http://blog.zhaoke.com/34.html

备注
转载请保持文章完整性, 欢迎到blog.zhaoke.com网站与赵珂交流.
不知道参测的kvm是全虚拟化的还是半虚拟化的?
全虚拟化的Xen都有这样的性能,实在是不错啊
听说是全虚拟化的.

KVM的相关工具在哪儿呢?
确实。kvm是全虚拟化,不过有半虚拟化的补丁
引用:
KVM的相关工具在哪儿呢?
qemu那套东西吧
cat /etc/xen/wininstall
kernel = "/usr/lib/xen/boot/hvmloader"
builder = 'hvm'
memory = 640
name = "wininstall"
vcpus = 2
vif = [ 'type=ioemu, bridge=xenbr0' ]
disk = ['file:/mnt/92/os/windows2000/windows2000.iso,hdc:cdrom,r','file:/home/cqs/vm/c.img,ioemu:hda,w' ,'file:/home/cqs/vm/d.img,ioemu:hdb,w',]
device_model = '/usr/lib64/xen/bin/qemu-dm'
ne2000=0
vnc=1
boot='d'
_________________________________________
xm create  wininstall
就可以装win2000/2003/xp了。。
boot='c'就可以由IDE启动
装win?需要CPU支持虚拟化技术才行吧