KVM--基于内核的虚拟化技术
2008-03-28 16:41:44 来源:WEB开发网在许多方面,VMware是一个基础破坏技术,它只用软件技术管理众所周知地的复杂的x86架构的完全虚拟化,达到了非常好的性能和稳定性。结果,VMware变得非常大而其非常复杂的软件了。换句话说,KVM依赖于最新的硬件的虚拟技术,就其本身而论,它非常小(大约1万行代码)且相当简单,另外一个巨大的不同之处是VMware是有专利的,而KVM是开源的。
Xen是一个相当大的项目,同时提供半虚拟化和完全虚拟化,它被设计为一个独立的内核,它只需要Linux执行I/O,这样使得它相当的大,它有自己的调度程序、内存管理器、计时器和机器初始化程序。
相反,KVM使用标准Linux调度程序、内存管理器和其他服务。这样KVM开发者们可以集中精力在虚拟化上,将虚拟技术建立在内核上而不是去替换内核。
QEMU是一个用户空间模拟器,它是一个相当惊人的项目,可以在不同宿主处理器上模拟非常多的客户处理器,而且性能非常好。但是,用户空间架构不允许它在无内核加速器的情况下解决天生的速度问题。KVM认可QEMU的实用价值,使用它进行I/O硬件模拟。尽管KVM不带有任何特殊的用户空间,但QEMU代码写得非常好--因此我们使用了这些代码。
但是,KVM也不是完美的,因为它还是一个新技术,它包括下面的这样一些限制:
在写本文的时候,KVM仅支持Intel和AMD虚拟化,而Xen还支持IBM PowerPC和Itanium【安腾】处理器。
目前的版本最宿主SMP处理器的支持还比较弱。
性能调整
但是,这个项目在快速地发展,按照Avi Kivity所说的,KVM已经在某些方面超过了Xen,将来在其他方面也将赶上Xen。
虚拟化如何工作
台虚拟化是一个旧技术了,但是,最近几年,硬件和操作系统都很成熟了,有望实现真正的虚拟化,大多数虚拟化基础部分是管理程序,管理程序在虚拟客户操作系统和真实硬件之间充当一个中间层,有时候,管理程序就是操作系统,如Xen,其他时候,它是用户层软件,如VMware,虚拟客户操作系统或虚拟实例是一个隔离的操作系统,但是,实际上是管理程序提供了这种幻觉。
更多精彩
赞助商链接