Linux 2.6.20内核包含一个全新的虚拟技术: KVM(Kernel-based VirtualMachine), 全称为基于内核的虚拟机。 它很友好, 稳定和高性能。KVM发布到网上后,很容易就赶上其它的虚拟化解决方案如Xen, OpenVZ和Vserver, 它们都基于其它的方法, 都在努力集成到Linux
内核之中,但KVM成了最后的赢家。
从简单CPU性能测评来看,KVM的效率与native的效率相当,与传统虚拟技术比,有相当的竞争力。它的出现可能会完全改变我们使用集群和部署系统的方式。
原理简介
当前存在几种不同的虚拟技术: 一种是半虚拟化技术(Paravirtualization), 客户操作系统需做一些修改;另一种是全虚拟化技术(Full Virtualization), 客户操作系统无需任何修改。
我们知道全虚拟化技术是以降低性能来提高兼容性, 因为在虚拟化环境中如果没有客户操作系统的协助, 系统将很难达到较好的性能。另一方面, 近来新处理器的开发缩短了这方面的差距。最新的IntelVT(虚拟技术, Virtualization Technology)和AMD SVM(安全虚拟机, Secure Vir-tual Machine)从硬件上支持了虚拟技术,试图取代半虚拟化技术。KVM在标准的Linux内核中增加了虚拟技术, 从而我们可以通过优化的内核来使用虚拟技术。
在KVM模型中, 每一个虚拟机都是
一个由Linux调度程序管理的标准进程。
一个普通的Linux进程有两种运行模式:
内核和用户。而KVM增加了第三种模式:
客户模式(有自己的内核和用户模式。图1)
KVM由两个部分组成:
◆一个是管理虚拟硬件的设备驱动,
该驱动使用字符串设备/dev/kvm做为管
理接口。
◆另一个是模拟PC硬件的用户空间
组件, 这是一个稍做修改的qemu进程。
基准测试
Windows XP的安装速度很快, 接下
来进行一些基准测试。这里测试工作是部
分性的, 非标准测试,目的是从实验来理
解KVM的一些特性。一旦完成Windows
系统的安装, Windows客户机甚至可以在
未经修改的QEMU上运行, 而且重新编译
和安装了kqemu, kqemu是一个由qemu
原作者开发的QEMU加速模块(QEMU
accelerator module)。最后,选择了两个测
试软件: PCMark2002和Super PI(版本
1.1e)。注意测试硬件的处理器是Intel
E6600(图2、3)。
可以发现kqemu和KVM比单独的
QEMU模拟器的性能要强很多。而且可以
看到kqemu只比kvm好一点点。但是随
着技术的发展,KVM的性能会不断改进
的, 毕竟比起其它虚拟技术,KVM还很年
Linux内核虚拟化KVM详解□ 宋吉广
当
KVM
集成到Linux
官方内核当中,它将变成一个日用品。
图
1
图
2
图3
48 软件世界 2007.6.5