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

全虚拟化技术和半虚拟化技术区别(目前主流的三种虚拟化技术是什么)

半虚拟化和全虚拟化的区别和特点?

半虚拟化是通过预先修改的客户操作系统内核共享主机的底层硬件来实现的。优点是半虚拟化虚拟机的操作系统内核可以直接管理底层硬件。硬件和性能比全虚拟化技术更强大。缺点是需要提前修改客户操作系统内核,方便性和实现灵活性不够,兼容性不够好。全虚拟化是Guest与Host直接连接,虚拟化逻辑层Hypervisor完全模拟底层硬件细节,优点是Guest操作系统内核不需要特殊的配置和实现,方便、灵活、兼容性好缺点是客户操作系统内核无法直接管理底层硬件。内核需要翻译开销来通过虚拟机管理程序处理底层硬件,其性能略低于半虚拟化。

KVM和VMM虚拟化技术的区别是用来协调客户操作系统和原始硬件之间的工作。一些受保护的指令必须由虚拟机管理程序(虚拟机管理程序)捕获和处理。
图1全虚拟化模型
全虚拟化运行速度比硬件模拟快,但性能不如裸机,因为hypervisor必须占用一些资源
半虚拟化(ParaVirtualization)
半虚拟化是另一种类似于全虚拟化的技术。它使用虚拟机管理程序来分离对底层硬件的访问,但其客户操作系统集成了虚拟化代码。这种方法不需要重新编译或陷阱,因为操作系统本身可以很好地处理虚拟进程。
图2半虚拟化模型
半虚拟化要求来宾操作系统进行一些修改,以使来宾操作系统了解其处于虚拟化环境中,但半虚拟化提供的性能与到原来的操作系统。
虚拟化技术
基于内核的虚拟机KVM(Kernel-basedVirtualMachine)
KVM是内置于Linux内核中的Hypervisor,是X86架构针对Linux的完整虚拟化解决方案,其硬件支持虚拟化技术(IntelVT或AMD-V)。它是一个小型的Linux模块,使用Linux来做很多事情,比如任务调度、内存管理、硬件交互等。
图3KVM虚拟化平台架构
Xen
Xen是第一种运行在裸机上的虚拟化管理程序(Hypervisor)。它支持全虚拟化和半虚拟化。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也是一个虚拟化软件。它的特点是可以虚拟不同的CPU。例如,PowerCPU可以虚拟成x86CPU,并可以用来编译可以在Power上运行的程序。KVM使用了QEMU的一部分并稍作修改,成为可以控制KVM的用户空间工具。所以你会看到官方的KVM下载有两个部分(qemu和kvm)和三个文件(KVM模块、QEMU工具和两者的集合)。也就是说,您可以只升级KVM模块或只升级QEMU工具。这就是KVM和QEMU的关系。

什么是全虚拟化和半虚拟化?硬件虚拟化

全虚拟化通过虚拟机管理程序逻辑层虚拟化直接在来宾和主机之间模拟每个底层硬件。
半虚拟化是通过在底层主机硬件上与预先更改的主机操作系统内核进行通信来完成的。优点是半虚拟化虚拟机内核操作系统可以直接管理底层硬件。
虚拟硬件是硬件技术的引入,将使虚拟化技术更接近物理机的速度。

我们先来说说什么是虚拟化?

虚拟化是资源的逻辑表示,并不局限于物理资源。运行时环境不在实际硬件上,而是在硬件的虚拟内存部分或虚拟环境中。

虚拟化提供了数据、计算能力、存储资源等的逻辑视图,而不是物理视图。虚拟化的进步大大降低了IT硬件成本,减少了资源浪费,提高了系统稳定性和安全性。1.全虚拟化(fullvirtualization)也称为原始虚拟化技术,这种模型使用虚拟机来协调客户操作系统和原始硬件,VMM工作在为了协调客户系统和裸硬件之间的操作,一些受保护的指令必须由虚拟机管理程序(虚拟机管理程序)处理。全虚拟化运行速度比硬件模拟快,但性能不如裸机,因为虚拟机管理程序必须占用一些资源。

2.半虚拟化

半虚拟化是另一种与全虚拟化类似的技术,它使用虚拟机管理程序来共享对底层硬件的访问,但来宾操作系统集成了虚拟化代码。由于操作系统本身可以很好地与虚拟进程配合,因此这种方法不需要重新编译或障碍。半虚拟化需要对来宾操作系统进行一些修改,以使来宾操作系统识别出它处于虚拟环境中,但半虚拟化提供了与原始操作系统类似的性能。

扩展信息:

虚拟机设备队列(VMDq):提高I/O吞吐量。在传统的服务器虚拟环境中,VMM必须对每个数据包进行分段并将其发送到适当的虚拟机。这会消耗许多处理周期。通过VMDq,这个分配任务可以由Intel服务器网卡中提供的硬件来完成,VMD只需要负责将预先分配的一组数据包发送到相应的虚拟机即可。这减少了I/O延迟,并为处理器提供了更多可用周期来运行业务应用程序。IntelVT-c可以将I/O吞吐量提高一倍以上,使虚拟化应用程序能够实现接近物理服务器的吞吐率。

虚拟机直连(VMDc):极大改善虚拟化。VMDc允许虚拟机直接访问网络I/O硬件,从而大大提高虚拟机性能。例如,在单个Intel10G服务器NIC上,可以为10个虚拟机中的每一个分配一个受保护的1Gb/s专用链路。这些通信链路直接绕过VMM交换机,进一步提高I/O性能并减少服务器处理器的负载。

参考资料:-虚拟化