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