(三)虚拟化技术重点笔记与总结

听沈老师的操作系统与虚拟化总结记录

一、传统服务器

传统是烟囱式结构,为应付少量峰值负载而过度配置服务器,导致资源利用率低

缺陷1:据统计数据中心服务器的平均使用率低于 30%,但仍有相当数量的服务器无法满足其服务水平目标

缺陷2:一个新应用的部署需要历经预算、采购、安装测试、上线等过程,周期长达数周至数月,难以及时响应业务需求

缺陷3:服务器数量和管理成本与应用数量呈线性关系,IT管理和成本压力巨大

“冰山模式”-- 传统数据中心的成本支出结构:30% 预算用于新基础设施建设和新应用开发,70% 预算用于现有设施维护和人员支出

亚马逊最开始只是卖书的,但是后来由于空间比较多,不想浪费,开始卖服务。

二、虚拟化定义与本质

虚拟化本质:将原来运行在真实环境上的计算系统或组件运行在虚拟出来的环中

虚拟化定义:虚拟化是表示计算机资源的抽象方法,通过虚拟化可以用与访问抽象前资源一致的方法访问抽象后的资源。这种资源的抽象方法并不受实现、地理位置或底层资源的物理配置的限制 (维基百科)

三、虚拟化常见类型

虚拟化常见类型:基础设施虚拟化、系统虚拟化、软件虚拟化

基础设施虚拟化包括:网络虚拟化,存储空间虚拟化;系统虚拟化包括:PC/服务器虚拟化:(系统虚拟化的最大价值所在)、桌面虚拟化;软件虚拟化包括(让软件不依赖操作系统):高级语言虚拟化、应用程序虚拟化。

 (三)虚拟化技术重点笔记与总结_第1张图片

四、虚拟化关键技术

1.相关定义与概念

虚拟机系统是通过在现有平台(裸机或操作系统)上增加一个虚拟层VMM(virtual Machine Monitor或Hypervisor)来实现

VMM是一个系统软件,可以维护多个高效的、隔离的程序环境. VMM管理计算机系统的真实资源,为虚拟机提供接口

VM(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

host OS有一些VMM是安装在已有操作系统之上的,原有操作系统为host OS

2.全虚拟化:

原本的操作系统调直接调用硬件接口,给底层硬件发送的指令是二进制指令,加了一层虚拟机之后,操作系统不能直接调用底层,但依然发送二进制指令,这时候,虚拟机要拦截下指令,由虚拟机完成调用,所以虚拟机要转换二进制指令。优点在于不需要修改原来的操作系统,缺点在于这种软件拦截机制开销比较大。

3.泛虚拟化

操作系统仍然可运行在0环上,更改操作系统内核,以前的二进制指令变成了hypercall调用。优点在于降低了虚拟机的难度,不需要对二进制指令进行转换了。缺点在于:需要修改OS内核

4.硬件辅助虚拟化

优点在于特权指令调用之时,不需要半虚拟化,也不需要二进制转换,因为有了硬件的支持。缺点:需要有硬件支持(如Intel VT, AMD SVM)

 

(三)虚拟化技术重点笔记与总结_第2张图片(三)虚拟化技术重点笔记与总结_第3张图片(三)虚拟化技术重点笔记与总结_第4张图片(三)虚拟化技术重点笔记与总结_第5张图片



五、VMM的实现技术

1.cpu虚拟化:

(三)虚拟化技术重点笔记与总结_第6张图片

指令集通常可分为非特权指令和特权指令两种。

非特权指令不能改变共享资源的值或状态。共享资源包括处理器、内存、计时器和特殊目的的寄存器等。非特权指令如算术运算指令、逻辑运算指令等。

特权指令是所有用来访问共享资源的值或状态的指令,这类指令包括关机、设置计时器、设置程序计数器、改变重定位寄存器的值和I/O相关的指令。

VMM执行非特权指令,可以直接执行,而对特权指令,则需要仿真执行

为了提高CPU虚拟化的效率,需要用硬件来完成不同层级的切换。在服务器领域,CPU可以把VMM放在-1环。

2.内存虚拟化

VMM必须对物理内存有最终的控制权,也就是说,它必须控制将客户物理地址空间映射到主机物理地址空间的操作。这样,才可以顺利的实现内存虚拟化

VMM维护一个虚拟机内存管理数据结构——影子页表(shadow page table)。VMM通过影子页表给不同的虚拟机分配机器的内存页,如操作系统虚拟内存一样,VMM能将虚拟机内存换页到磁盘,因此,虚拟机申请的内存可以超过机器的物理内存。VMM也可以根据每个虚拟机的要求,动态地分配相应的内存。

操作系统对页表的频繁更改增加了更新影子页表操作的开销,使用硬件来管理影子页表将是未来研究的方向。

3.IO虚拟化

用宿主型的体系结构,使用宿主操作系统的I/0设备驱动程序。

缺点:

大大增加了虚拟化的性能开销;

现代操作系统如Windows和Linux并没有资源管理的支持为虚拟机提供性能隔离和服务保证,而这是很多服务器环境的基本要求。

I/O子系统的产业趋势是朝着硬件支持的方向发展。拥有足够的硬件支持,直接传送I/O设备到虚拟机中的软件是完全可能的,这将有效地消除所有I/O虚拟开销。要做到这一点, I/O装置需要了解虚拟机的情况和能够支持多个虚拟接口,以便VMM能安全地映射接口到虚拟机。

Intel VT-d是目前硬件I/O虚拟化的代表


 (三)虚拟化技术重点笔记与总结_第7张图片

你可能感兴趣的:(操作系统与虚拟化,软件工程师修炼日记)