当前位置:首页 > 虚拟机 > 正文

kvm虚拟机实体化


一、KVM与XEN虚拟化环境究竟有何不同

虚拟化的概念近年来变得非常流行。原因很简单:虚拟化可以最大限度地提高资源利用率,为企业节省成本。目前,市场上最流行的虚拟架构主要有KVM、XEN、VMware等。其中KVM和XEN是免费开源的,而VMware是付费的。因此,这次我只比较KVM和XEN的区别。

如果简单分类KVM和XEN的话,KVM是一种全虚拟化技术,也称为硬件辅助虚拟化技术(FullVirtualization)。相比之下,XEN是一种半虚拟化技术,也称为半虚拟化技术。

全虚拟化技术(左)和半虚拟化技术(右)

KVM在虚拟机和硬件之间增加了一个软件层——Hypervisor,或者虚拟机管理器(VMM),KVM管理程序直接运行在物理硬件上。XEN基于全虚拟化。它修改了guestOS并添加了特殊的API,以便guestOS集成虚拟化代码。这种方法不需要重新编译,也不会产生陷阱,因为操作系统本身够与虚拟进程很好地配合。

KVM架构

有些人将KVM架构分解为两部分:KVM驱动程序(Linux内核模块)和Qemu(Qemu)用于模拟虚拟化。机器的用户空间组件提供I/O设备的模型以及访问外围设备的方法。它最大的优点是KVM与Linux内核集成,因此速度更快。同时KVM是完全虚拟的,所以不需要区分pv和hvm。它可以安装各种Linux和Windows发行版。并且可以在X86和X86-64扩展硬件架构上支持虚拟化的系统上运行。

XEN实际上是在KVM之前出现的。它由剑桥大学开发,是一个开源虚拟机监视器。半虚拟化架构决定了它并不是真正的虚拟机。这只是一个单独运行内核的示例。还要区分Xen+pv+和Xen+hvm。其中pv仅支持Linux,而hvm支持Windows系统。此外,XEN还具有最佳可用资源、平台支持、可管理性、部署、实时迁移支持和性能基准的优势。

参考资料:


二、虚拟化技术中KVM,Xen,Qemu的区别和联系来自虚拟机管理程序(hypervisor)的虚拟化类型

图1全虚拟化模型

Rope虚拟化运行速度比硬件模拟快,但性能却不如。虚拟机管理程序必须占用一些空间,这是类似于完全虚拟化的另一种技术,它使用虚拟机管理程序来共享对底层硬件的访问,但客户操作系统不集成虚拟化代码,因为需要重新编译或存在缺陷。操作系统本身可以与虚拟进程很好地配合,让来宾知道它处于虚拟环境中。是的,但是半虚拟化提供了与原始操作系统类似的性能。

虚拟化技术

KVM(Kernel-basedVirtualMachine)基于内核的虚拟机

KVMHypervisor嵌入Linux内核,有硬件支持Linux的全虚拟化解决方案使用虚拟技术(IntelVT或AMD-V)。它是一个小型的Linux模块,使用Linux来做很多事情,比如任务调度、内存管理和硬件通信。

图3KVM虚拟化平台架构

Xen

Xen是第一种运行在裸机上的虚拟化管理程序(Hypervisor)。它支持全虚拟化和半虚拟化,支持Xen管理程序和虚拟机之间共享,并在所有Linux版本上提供免费产品,包括LinuxRedHatEnterprise和SUSELinuxEnterpriseServer。Xen的主要好处是半虚拟化。此外,未经修改的操作系统也可以直接在虚拟硬件上进行仿真,以实现高性能。

图4Xen虚拟化平台架构

QEMU

QEMU是由FabriceBellard编写的用于模拟处理的免费软件包。它与Bochs和PearPC类似,但它具有这两者所没有的一些特性,例如高速和跨平台特性。通过开源加速器kqemu,QEMU可以模拟接近真实计算机的速度。

KVM与QEMU的关系

准确的说,KVM是一个Linux内核模块。您可以使用modprobe命令加载KVM模块。模块加载后,您可以通过其他工具进一步创建虚拟机。但仅靠KVM模块是不够的,因为它无法直接控制内核模块的用户做事。对于这个用户空间工具,kvm开发人员选择了已经成熟的开源虚拟化软件QEMU。如前所述,QEMU也是一个虚拟化软件。它的特点是可以虚拟不同的CPU。例如,PowerCPU可以虚拟成x86CPU,并可以用来编译可以在Power上运行的程序。KVM使用了QEMU的一部分,并稍作修改,成为可以控制KVM的用户空间工具。所以你会看到官方的KVM下载有两个部分(qemu和kvm)和三个文件(KVM模块、QEMU工具和两者的集合)。换句话说,只需升级KVM模块或QEMU工具即可。这就是KVM和QEMU的关系。

图5KVM与QEMU关系