1.2 KVM虚拟化介绍

基于内核的虚拟机(Kernel-based Virtual Machine,KVM),最初是由一个以色列的创业公司Qumranet开发的,作为他们的VDI产品的虚拟机,从Linux 2.6.20内核之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,相对于Xen其核心源代码很少。KVM目前在开源系统中被大规模使用。

为简化开发,KVM的开发人员并没有选择从底层开始新写一个Hypervisor,而是选择基于Linux Kernel,通过加载新的模块使Linux Kernel本身变成一个Hypervisor。

2006年10月,在完成基本功能、动态迁移以及主要的性能优化之后,Qumranet公司正式对外宣布了KVM的诞生。同年10月,KVM模块的源代码被正式接纳入Linux Kernel,成为Linux内核源代码的一部分。作为一个当时在功能和成熟度上都逊于Xen的项目,在这么短的时间内被Linux内核社区接纳,主要原因在于:当时虚拟化方兴未艾,Linux内核社区急于将虚拟化的支持包含在内,但是Xen取代内核由自身管理系统资源的架构引起了Linux内核开发人员的不满和抵触。

2008年9月4日,Linux发行版提供商Red Hat公司出人意料地出资上亿美元,收购了Qumranet公司,成为KVM开源项目的新东家。由于此次收购,Red Hat公司有了自己的虚拟机解决方案,于是开始在自己的产品中用KVM替换Xen。

2010年11月,Red Hat公司推出了Red Hat Enterprise Linux 6,在这个发行版中集成了最新的KVM,而去掉了在Red Hat Enterprise Linux 5中集成的Xen。

与Xen虚拟化架构相比较,KVM虚拟化架构非常简单,图1-2-1为KVM虚拟化架构示意。KVM直接通过加载相关模块将Linux Kernel转换为Hypervisor,KVM在安装完成后就可以通过QEMU将模拟硬件提供给虚拟机使用。

图1-2-1

KVM作为一种企业级虚拟化技术,功能相对完善。其基本的运行原理是在Linux中加载KVM模块。需要注意的是KVM虚拟化需要Intel VT和AMD-V的支持,KVM本身包含为处理器提供底层虚拟化的模块kvm-intel.ko、kvm-amd.ko,当在Linux上安装KVM后可以创建并运行虚拟机,一台虚拟机可以理解为一个Linux单一进程,通过管理工具对这个进程进行管理就相当于对虚拟机进行管理。在了解其基本原理后,再了解一下它的优缺点。

1.KVM虚拟化技术的优点

利用Linux的功能,与Linux操作系统紧密结合,构建在稳定的企业级平台之上,直接使用Linux进行进程调度、内存管理,广泛的硬件支持等。

KVM是开源项目,很多成熟的解决方案也是免费的。对于中小企业或者是小微企业来说,成熟并且免费的解决方案是企业的首选。

2.KVM虚拟化技术的缺点

KVM虚拟化需要硬件支持,只能在具有虚拟化功能的CPU上才能运行。