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

全虚拟化和半虚拟化区别(全虚拟化是什么)

什么模式是实现虚拟化服务的关键Hypervisor模式是实现虚拟化服务的关键。虚拟化的实现方式主要有两种:全虚拟化和硬件辅助虚拟化,对于I/O虚拟化,还有第三种方式——半虚拟化。“全”和“半”这两个词指的是虚拟化、软件和硬件之间的关系。全虚拟化是指所有虚拟化都是通过软件实现的。半虚拟化是指所有虚拟化硬件只具有原始硬件的部分功能。硬件辅助虚拟化是硬件辅助虚拟化的深度融合。

虚拟化技术KVM和XEN的区别虚拟化类型
全虚拟化
全虚拟化也成为最初的虚拟化技术。该模型使用虚拟机来协调客户操作系统和原始硬件。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的关系。
图5KVM与QEMU关系

什么是虚拟化?

虚拟化是资源的逻辑表示,并不局限于物理资源。运行环境并不是在真实的硬件上,而是在硬件上的一段虚拟内存上,或者说是虚拟环境中。

虚拟化提供了数据、计算能力、存储资源等的逻辑视图,而不是物理视图。虚拟化的发展显着降低了IT硬件成本,减少了资源浪费,提高了系统的稳定性和安全性。

1.全虚拟化

全虚拟化(FullVirtualization)也称为原始虚拟化技术。该模型使用虚拟机来协调Guest操作系统和原始硬件。VMM运行在Guest系统和裸硬件之间进行工作协调,必须由hypervisor(虚拟机管理程序)捕获并处理一些受保护的指令。全虚拟化运行速度比硬件模拟快,但性能不如裸机,因为hypervisor需要占用一些资源。

2.半虚拟化

半虚拟化是另一种类似于全虚拟化的技术。它使用Hypervisor来共享对底层硬件的访问,但其Guest操作系统集成了虚拟化代码。这种方法不需要重新编译或陷阱,因为操作系统本身可以很好地与虚拟进程配合使用。半虚拟化需要对Guest操作系统进行一修改,使Guest操作系统意识到自己处于虚拟化环境中,但半虚拟化提供了与原始操作系统类似的性能。

扩展信息:

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

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

参考资料:-虚拟化

请教一个简单的虚拟化问题,完全虚拟化和半虚拟化是不是属于硬件虚拟化?是不是一定要硬件支持呢?1、首先,全虚拟化和半虚拟化都是通过软件来虚拟化的,全虚拟化需要CPU支持,而半虚拟化则不需要。
2、系统虚拟化、桌面虚拟化、软件虚拟化是三个完全不同的概念。这里的软件虚拟化是指软件的虚拟化,而不是利用软件进行虚拟化。