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

全虚拟化还是半虚拟化的通俗解释(虚拟化的四个特点)


一、半虚拟化和全虚拟化的区别是什么?完全虚拟化(也称为原始虚拟化技术)是另一种虚拟化方法,它使用虚拟机来协调来宾操作系统和原始硬件(参见图2)。这是因为使用了VMM。来宾操作系统和裸硬件之间的协调需要捕获和处理一些受保护的指令,因为操作系统通过虚拟机管理程序共享底层硬件。全虚拟化运行速度比硬件模拟快,因为底层硬件是共享的,但性能不如裸机,因为hypervisor要占用一些资源。全虚拟化的最大优点是操作系统保持不变。唯一的限制是操作系统必须能够支持底层硬件(例如PowerPC)。例如,某些关键指令在具有较旧硬件(例如x86)的虚拟机管理程序上存在问题。因此,虚拟机管理程序必须动态扫描和捕获特权代码来解决该问题。半虚拟化与全虚拟化一样,使用虚拟机管理程序(虚拟机管理器)。共享访问底层硬件,但其客户操作系统集成了虚拟化代码。这种方法消除了重新编译的需要,并消除了陷阱,因为操作系统本身可以与虚拟进程正确交互。图3.半虚拟化:通过来宾操作系统共享。如前所述,半虚拟化的缺点是需要对来宾操作系统进行一些更改(以与虚拟机管理程序配合使用)。然而,半虚拟化与全虚拟化一样,可以支持多种不同的操作系统。我同时有一个问题。具有未修改内核的操作系统无法在半虚拟化环境中运行。在这种情况下,CPU不支持VT,虚拟环境称为半虚拟化环境。所以vmwera可以运行在CPU不支持VT的机器上是矛盾的。
二、KVM与XEN虚拟化环境究竟有何不同虚拟化概念近年来变得非常流行,原因很简单:虚拟化可以提高资源利用率,为企业节省成本。目前市场上最流行的虚拟化架构是KVM和XEN,它们是免费开源的,VMware是付费的。

KVM和XEN简单划分,KVM是一种全虚拟化技术,也叫硬件辅助虚拟化技术(FullVirtualization)。相反,XEN是一种半活化技术,也叫半活化技术。

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

KVM在虚拟机和硬件之间增加了一个软件层——hypervisor,或虚拟机管理器(VMM),KVM管理程序直接运行在物理硬件上。XEN采用了全虚拟化的客户操作系统,并添加了特殊的API,以允许客户操作系统将虚拟代码集成到进程中。

KVM架构

也有人将KVM架构分为两部分:KVM驱动程序(Linux内核的一个模块)和Qemu(用户端)/O提供了用于模拟虚拟化的机器的空间组件以及访问相应路径的方式。它最大的优点是KVM与Linux内核集成在一起,所以同时KVM是完全虚拟的,所以不需要区分pv和hvm。它可以在扩展的X86和X86-64硬件架构上支持虚拟化的系统上运行。

XEN是剑桥大学开发的开源虚拟机,出现于KVM之前。半生化架构决定了命运不是一个真正的虚拟机而是一个运行自己内核的实例,pv只支持Linux,而hvm则支持Windows系统。。此外,XEN还具有更好的资源、平台支持、管理能力、实施、实时迁移支持和性能指标的优势。

参考资料: