当前位置 博文首页 > 沉迷单车的追风少年:《系统虚拟化与云计算》笔记(二)

    沉迷单车的追风少年:《系统虚拟化与云计算》笔记(二)

    作者:[db:作者] 时间:2021-08-18 09:54

    目录

    虚拟化在云计算中作用

    虚拟化技术的发展史

    虚拟化的定义

    虚拟化的对象与作用

    虚拟化的类型:系统虚拟化、基础设施虚拟化、编程接口虚拟化、应用程序虚拟化

    系统虚拟化分类1:虚拟平台(全虚拟化和类虚拟化)

    基于软件的全虚拟化

    类虚拟化

    系统虚拟化分类2:VMM结构(独立VMM、用户态、混合VMM)

    计算机系统层次结构(硬件->操作系统->程序库->应用程序)

    操作系统的功能

    操作系统的作用

    计算机运行等级与指令

    实现虚拟化的要求:等价性、资源受控和有效性

    ?二进制翻译虚拟化

    传统虚拟化模型:特权解除、陷入-模拟

    特权解除模型:0/3模型和0/2/3模型

    虚拟化对ISA的要求

    CPU虚拟化

    不解决操作系统的特权会有什么问题?

    半虚拟化技术、技术特点

    预虚拟化技术

    硬件辅助虚拟化

    虚拟机的调度

    永恒的话题:虚拟机调度问题

    内存虚拟化

    物理地址空间

    虚拟地址空间

    逻辑地址

    虚拟地址

    物理地址

    实现地址翻译的关键:物理地址的引入

    虚拟化后的三种地址空间:虚拟地址GVA、物理地址GPA、机器地址HPA

    虚拟地址到机器地址,经过两次地址翻译完成

    内存全虚拟化

    影子页表

    页表写入法

    虚拟机内存再分配:气球驱动

    全虚拟化:宿主机模式

    半虚拟化结构

    虚拟机的直通IO

    IO虚拟化方案:infiniband

    网络是虚拟机最重要的IO


    虚拟化在云计算中作用

    虚拟化技术的发展史

    分时共享到虚拟化技术的发展

    虚拟化的定义

    虚拟化是表示计算机资源的抽象方法,是资源的逻辑表示。

    虚拟化的对象与作用

    虚拟化的类型:系统虚拟化、基础设施虚拟化、编程接口虚拟化、应用程序虚拟化

    网络虚拟化如常见的VPN

    存储虚拟化如常用的磁盘阵列技术

    系统虚拟化分类1:虚拟平台(全虚拟化和类虚拟化)

    基于软件的全虚拟化

    例如安卓全平台开发

    类虚拟化

    需要修改操作系统的内核,技术难度高,有明显的缺点。

    系统虚拟化分类2:VMM结构(独立VMM、用户态、混合VMM)

    VMM:虚拟机管理器

    计算机系统层次结构(硬件->操作系统->程序库->应用程序)

    操作系统的功能

    从资源管理的角度——五大基本功能

    1.进程和线程的管理 ——进程线程的状态、控制、同步互斥、通信调度等

    2.存储管理——分配/回收、地址转换、存储保护等

    3.文件管理——通过文件系统;文件目录、文件操作、磁盘空间、文件存取控制

    4.设备管理——设备驱动、分配回收、缓冲技术等

    5.用户接口——系统命令、编程接口

    操作系统的作用

    1.资源的管理者

    2.向用户提供各种服务

    3.对硬件机器的扩展

    计算机运行等级与指令

    实现虚拟化的要求:等价性、资源受控和有效性

    ?二进制翻译虚拟化

    从可执行代码角度执行虚拟化。

    传统虚拟化模型:特权解除、陷入-模拟

    解除操作系统的特权,VMM享有最高特权;

    客户OS大部分指令仍可以在硬件上运行,只有客户OS执行到特权指令时,才会陷入最高特权级别的VMM当中。

    特权解除模型:0/3模型和0/2/3模型

    虚拟化对ISA的要求

    指令集架构(英语:Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。

    CPU虚拟化

    不解决操作系统的特权会有什么问题?

    操作系统管理资源,虚拟化之后,每个虚拟机都想管理资源,这样会造成资源管理的混乱。同理,对于设备管理、用户接口等难以管理,造成混乱。

    半虚拟化技术、技术特点

    通过超级调用想guest os提供执行特权指令的调用接口。

    预虚拟化技术

    修改编译器,对OS中需要VMM监控和模拟的指令在编译阶段替换为VMM的接口调用。规避了二进制虚拟化对源代码修改的超高难度操作。

    硬件辅助虚拟化

    引入新的指令和处理器运行模式,使VMM和guest os运行在不同模式。

    虚拟机的调度

    永恒的话题:虚拟机调度问题

    共享资源的使用。

    内存虚拟化

    物理地址空间

    虚拟地址空间

    逻辑地址

    程序直接使用的地址。

    虚拟地址

    逻辑地址转化后的结果,用于索引虚拟地址空间。

    物理地址

    物理地址用于索引物理地址空间,是CPU提交到总线用于访问平台内存和硬件设备的最终地址。

    实现地址翻译的关键:物理地址的引入

    虚拟化后的三种地址空间:虚拟地址GVA、物理地址GPA、机器地址HPA

    虚拟地址到机器地址,经过两次地址翻译完成

    引入物理地址的必要性。

    内存全虚拟化

    影子页表

    页表写入法

    虚拟机内存再分配:气球驱动

    通常来说,要改变客户机占用的宿主机内存,是要先关闭客户机,修改启动时的内存配置,然后重启客户机才能实现。而内存的ballooning(气球)技术可以在客户机运行时动态地调整它所占用的宿主机内存资源,而不需要关闭客户机。

    Ballooning技术形象地在客户机占用的内存中引入气球(Balloon)的概念,气球中的内存是可以供宿主机使用的(但不能被客户机访问或使用),所以,当宿主机内存使用紧张,空余内存不多时,可以请求客户机回收利用已分配给客户机的部分内存,客户机就会释放其空闲的内存,此时若客户机空闲内存不足,可能还会回收部分使用中的内存,可能会换出部分内存到客户机的交换分区(swap)中,从而使得内存气球充气膨胀,从而让宿主机回收气球中的内存可用于其他进程(或其他客户机)。反之,当客户机中内存不足时,也可以让客户机的内存气球压缩,释放出内存气球中的部分内存,让客户机使用更多的内存。

    全虚拟化:宿主机模式

    半虚拟化结构

    虚拟机的直通IO

    IO虚拟化方案:infiniband

    网络是虚拟机最重要的IO

    cs