虚拟化类型
全虚拟化
全虚拟化也成为最初的虚拟化技术。该模型使用虚拟机来协调来宾操作系统和原始硬件,VMM为了协调来宾操作系统和裸机硬件之间的工作,必须由管理程序捕获并处理一些受保护的指令。
图1全虚拟化模型
全虚拟化运行速度比硬件模拟快,但性能不如裸机,因为Hypervisor必须占用一些资源
半虚拟化(Para)
半虚拟化是另一种类似于全虚拟化的技术。它使用虚拟机管理程序来共享对底层硬件的访问,但其来宾操作系统合并了代码的虚拟化方面。这种方法不需要重新编译或遇到问题,因为操作系统本身可以很好地与虚拟进程配合。
图2半虚拟化模型
半虚拟化要求来宾操作系统进行一些更改,以使来宾操作系统了解其处于虚拟化环境中,但半虚拟化提供了类似的性能。到原来的操作系统。
虚拟化技术
基于内核的虚拟机(KVM)
KVM是集成到Linux内核中的虚拟机管理程序。它是X86架构,硬件支持使用虚拟化技术(IntelVT或AMD-V)的Linux完整虚拟化解决方案。它是Linux的一个小模块,使用Linux来执行许多任务,例如调度任务、管理内存以及与硬件设备交互等。
图3KVM虚拟化平台架构
Xen
Xen是第一种运行在裸机硬件上的虚拟化管理程序(管理程序)。它支持全虚拟化和半虚拟化。Xen支持虚拟机管理程序和虚拟机之间的通信。它还提供所有Linux版本的免费产品,包括RedHatEnterpriseLinux和SUSELinuxEnterpriseServer。Xen最重要的优势是半虚拟化。此外,未经修改的操作系统也可以直接在Xen之上运行(如Windows),从而允许虚拟机高效运行而无需模拟。因此,虚拟化机器无需模拟虚拟硬件即可体验Hypervisor,从而实现高性能。
虚拟化平台架构图4Xen
QEMU
QEMU是FabriceBellard编写的一套模拟处理器的自由软件。它与Bochs和PearPC类似,但它具有后两者所没有的一些特性,例如高速和跨平台特性。使用开源加速器kqemu,QEMU可以模拟接近真实计算机的速度。
KVM与QEMU的关系
准确的说,KVM是一个Linux内核模块
。您可以使用modprobe命令加载KVM模块。加载模块后,您可以通过其他工具创建虚拟机。但光有KVM模块是不够的,因为用户无法直接控制内核模块做事。您还需要有一个在用户空间中运行的工具。对于这个用户空间工具,kvm开发人员选择了已经成熟的开源虚拟化软件QEMU。说起来,QEMU也是虚拟化软件。它的特殊性在于它可以虚拟化不同的处理器。例如,Power处理器可以在x86处理器上虚拟化,并且可以用来编译可以在Power上运行的程序。KVM使用了QEMU的一部分并稍作修改,成为能够控制KVM的用户空间工具。因此,您将看到官方KVM下载包含两个文件(qemu和kvm)和三个文件(KVM模块、QEMU工具以及两者的集合)。也就是说,您可以只升级KVM模块或只升级QEMU工具。这就是KVM和QEMU的关系。
图5KVM与QEMU的关系
全虚拟化也称为原始虚拟化技术,是一种虚拟化方法。该模型使用虚拟机来协调来宾操作系统和原始硬件。“协调”是这里的一个关键词,因为VMM用于来宾操作系统和裸硬件之间的工作协调。一些受保护的指令必须由Hypervisor(虚拟机管理器)捕获和处理。因为操作系统是通过Hypervisor来共享底层硬件的。全虚拟化:使用Hypervisor共享底层硬件,全虚拟化运行速度比硬件模拟快,但性能不如裸机,因为Hypervisor需要占用一些资源。全虚拟化的最大优点是操作系统不需要任何修改。它唯一的限制是操作系统必须能够支持底层硬件(例如PowerPC)。具有某些旧硬件(例如x86)的旧机器上的虚拟机管理程序在完全虚拟化方面遇到了问题。例如,一些敏感指令需要由VMMHandling处理(VMM无法设置陷阱)。因此,Hypervisor必须动态扫描并捕获特权代码来处理该问题。
半虚拟化是另一种类似于全虚拟化的流行技术。它使用虚拟机管理程序共享对底层硬件的访问,但其客户操作系统集成了虚拟化代码。这种方法不需要重新编译或陷阱,因为操作系统本身可以与虚拟进程很好地配合。.半虚拟化,通过客户操作系统共享进程。如上所述,半虚拟化需要对客户操作系统进行一些修改(与虚拟机管理程序配合),这是一个缺点。然而,半虚拟化提供了与原始系统相似的性能。与全虚拟化一样,半虚拟化可以同时支持多个不同的操作系统。有这样一个问题:在半虚拟化环境中,没有修改内核的操作系统无法运行,因此CPU不支持vt,在主机系统上运行的虚拟环境可以称为半虚拟化环境。
上一篇:全虚拟化与半虚拟化的优缺点
下一篇:全虚拟化半虚拟化