虚拟化基础概念

传统计算模型:计算元件运行在一定的物理资源之上

引入虚拟化后的模型:通过引入一个虚拟化层,对下管理真实的物理资源,对上提供虚拟的系统资源,从而实现在扩大硬件容量的同时,简化软件重新配置的过程

如何理解资源?

资源可以表现为各种形式,并不仅仅局限于物理硬件。

如果把OS及其提供的系统调用作为资源,那么虚拟化就表现为操作系统虚拟化。

如果把X86平台(包括处理器、内存、外设)作为资源,那么虚拟化就表现为平台虚拟化。

是不是任何资源都可以虚拟化呢?

实现虚拟化做重要的一点就是,虚拟化层必须能截获计算元件对物理资源的直接访问,并将其重定向到虚拟资源池中。根据虚拟化层是通过纯软件方法,还是利用物理资源提供的机制来实现 截获并重定向,可以把虚拟化分为 软件虚拟化,硬件虚拟化。

本片文章重点讲解平台虚拟化

在X86平台虚拟化中,新引入的虚拟化层被称为虚拟机监视器(Virtual Machine Monitor,VMM),也叫hypervisor。VMM运行的环境,也就是真实的物理平台,称之为宿主机。而虚拟出来的平台称为客户机,客户机里面运行的系统称之为客户机操作系统。

软件虚拟化

对于那些不支持硬件虚拟化的物理平台,往往使用软件虚拟化技术。VMM相当于顶替了传统计算模型中OS的位置,虚拟机OS相当于传统计算模型的计算元件位置。引入软件虚拟化技术之后,软件堆栈复杂性增加,确保系统可靠性 安全性的成本也增加了。

QEMU:通过村软件仿真X86平台处理器的取指、解码和执行。客户机的指令并不在物理平台上直接执行,都是QEMU软件模拟的。性能差,但是可以跨平台。

VMWare:采用动态二进制翻译技术。客户机指令在运行前会先被VMM扫描

先比较QEMU的村软件虚拟化,性能大幅提升,同时失去跨平台虚拟化能力。

硬件虚拟化技术

无须二进制转换,简化VMM设计。

目前Intel从桌面Core i3/5/7到服务器端E3/5/7,几乎都支持Intel VT技术。

 准虚拟化技术(Para_virtualization)

软件虚拟化技术可以在缺乏硬件支持的平台上完全通过VMM软件实现对各个虚拟机的控制,并保证其彼此独立隔离。但是代价却是软件复杂度增加,性能损失。VMWare的动态二进制翻译技术虽然允许部分可控指令直接在物理平台上运行,但本质上QEMU和VMWare都靠截获分析客户机指令来实现虚拟化。其实还有另一种方案,通过改动客户端OS,使其以为自己运行在虚拟环境下,能够与VMM协同工作,弱化了VMM截获客户机指令,转为位客户机主动通知。但是这种主动通知是以改动OS内核源码实现的。Xen就是准虚拟化技术的一个例子。Xen适用于BSD、Linux、Solaris以及其他开源OS,但不适合Windows,因为Windows不公开源码,他改不了WIndows的内核。

全虚拟化技术(full virtualization)

提供完整虚拟X86平台,包括CPU、内存、外设,支持任何理论上可以在真实物理平台上运行的OS。对比准虚拟化,不需要对客户机OS做任何修改。

猜你喜欢

转载自www.cnblogs.com/kelamoyujuzhen/p/9044738.html
今日推荐