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

kvm虚拟化什么原理(kvm是全虚拟化还是半虚拟化)


一、kvm和qemu的关系kvm为什么没有做io虚拟化半虚拟化和全虚拟化的区别kvm是否在内

不同的基于KVM的虚拟化平台可能使用不同的虚拟化组件。目前,主要平台使用QEMU-KVM组件,但不同产品的版本和功能会有所不同。下面是一些概念我们来分类一下


KVM:Kernel-BasedVirtualMachine是基于内核的虚拟机。它是Linux内核的一个可加载模块,通过调用Linux自身的内核函数,它可以实现。CPU和内存虚拟化的基础虚拟化使Linux内核成为虚拟化层,需要x86架构和支持虚拟化功能的硬件支持(如IntelVT、AMD-V)。KVM于2007年2月被引入到Linux内核2.6.20中。从它存在的形式来看,它由两个内核模块组成:和kvm_(或kvm_)。本质上,KVM是一个管理虚拟硬件设备的驱动程序。该驱动程序使用字符设备/dev/kvm(KVM本身提供的)作为管理接口,它主要负责创建vCPU、分配虚拟内存、读写vCPU寄存器以及运行vCPU。


QEMU:这是由FabriceBellard编写的免费处理器模拟软件套件。这是一个完整的软件,可以独立运行,可以独立模拟处理器。整个处理器。每台计算机,包括CPU、内存和IO设备,都使用特殊的“重新编译器”来翻译特定处理器的二进制代码,从而实现跨平台的灵活性。QEMU有两种工作模式:系统模式,可以模拟整个计算机系统;用户模式,可以运行当前硬件平台以外的其他平台上的程序(例如运行在x86平台上、运行在ARM平台上)。)。其代码地址为


二、虚拟化技术KVM和XEN的区别虚拟化类型
全虚拟化(FullVirtualization)
虚拟全虚拟化也是原始的虚拟化技术,为了在客户操作系统和裸硬件之间进行协调,必须进行一些安全指令。从虚拟机管理程序获取并继续
图1全虚拟化模型
全虚拟化运行速度比硬件模拟快,但性能不如裸机,因为hypervisor需要占用一些资源
半虚拟化(ParaVirtualization)
半虚拟化是另一种类似于完全虚拟化的技术,这种方法不需要任何重新编译或陷阱,因为操作系统本身可以很好地与虚拟进程配合。
图2半虚拟化模型
半虚拟化要求来宾操作系统对来宾操作系统进行一些修改才能知道其处于虚拟环境中,但半虚拟化提供的性能与到原来的操作系统。
虚拟化技术
KVM(Kernel-basedVirtualMachine)基于内核的虚拟机
KVM是嵌入在Linux内核中的hypervisor,是X86全虚拟化架构针对Linux的解决方案,其硬件支持虚拟化技术(IntelVT或AMD-V)。它是一个小型的Linux模块,使用Linux来做很多事情,比如任调度、内存管理和硬件通信。
图3KVM虚拟化平台架构
Xen
Xen是第一类运行在裸机上的虚拟化管理软件(Hypervisor)。它支持全虚拟化和半虚拟化。Xen支持虚拟机管理程序和虚拟机之间的通信,并在所有Linux版本上提供免费产品,包括LinuxRedHatEnterprise和SUSELinuxEnterpriseServer。Xen的主要优点是半虚拟化。另外,未经修改的操作系统也可以直接运行在xen上(例如Windows),虚拟机无需仿真即可有效运行,从而无需虚拟机管理程序。与虚拟硬件竞争,通过虚拟硬件获得高性能。
图4Xen平台虚拟化架构
QEMU
QEMU是一款模拟FabrizioBellard编写的进程的免费软件。它与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关系

上一篇:kvm虚拟化教程

下一篇:kvm虚拟化 飞机舱