当前位置 博文首页 > 沉迷单车的追风少年:《系统虚拟化与云计算》笔记(二)
目录
虚拟化在云计算中作用
虚拟化技术的发展史
虚拟化的定义
虚拟化的对象与作用
虚拟化的类型:系统虚拟化、基础设施虚拟化、编程接口虚拟化、应用程序虚拟化
系统虚拟化分类1:虚拟平台(全虚拟化和类虚拟化)
基于软件的全虚拟化
类虚拟化
系统虚拟化分类2:VMM结构(独立VMM、用户态、混合VMM)
计算机系统层次结构(硬件->操作系统->程序库->应用程序)
操作系统的功能
操作系统的作用
计算机运行等级与指令
实现虚拟化的要求:等价性、资源受控和有效性
?二进制翻译虚拟化
传统虚拟化模型:特权解除、陷入-模拟
特权解除模型:0/3模型和0/2/3模型
虚拟化对ISA的要求
CPU虚拟化
不解决操作系统的特权会有什么问题?
半虚拟化技术、技术特点
预虚拟化技术
硬件辅助虚拟化
虚拟机的调度
永恒的话题:虚拟机调度问题
内存虚拟化
物理地址空间
虚拟地址空间
逻辑地址
虚拟地址
物理地址
实现地址翻译的关键:物理地址的引入
虚拟化后的三种地址空间:虚拟地址GVA、物理地址GPA、机器地址HPA
虚拟地址到机器地址,经过两次地址翻译完成
内存全虚拟化
影子页表
页表写入法
虚拟机内存再分配:气球驱动
全虚拟化:宿主机模式
半虚拟化结构
虚拟机的直通IO
IO虚拟化方案:infiniband
网络是虚拟机最重要的IO
分时共享到虚拟化技术的发展
虚拟化是表示计算机资源的抽象方法,是资源的逻辑表示。
网络虚拟化如常见的VPN
存储虚拟化如常用的磁盘阵列技术
例如安卓全平台开发
需要修改操作系统的内核,技术难度高,有明显的缺点。
VMM:虚拟机管理器
从资源管理的角度——五大基本功能
1.进程和线程的管理 ——进程线程的状态、控制、同步互斥、通信调度等
2.存储管理——分配/回收、地址转换、存储保护等
3.文件管理——通过文件系统;文件目录、文件操作、磁盘空间、文件存取控制
4.设备管理——设备驱动、分配回收、缓冲技术等
5.用户接口——系统命令、编程接口
1.资源的管理者
2.向用户提供各种服务
3.对硬件机器的扩展
从可执行代码角度执行虚拟化。
解除操作系统的特权,VMM享有最高特权;
客户OS大部分指令仍可以在硬件上运行,只有客户OS执行到特权指令时,才会陷入最高特权级别的VMM当中。
指令集架构(英语:Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。
操作系统管理资源,虚拟化之后,每个虚拟机都想管理资源,这样会造成资源管理的混乱。同理,对于设备管理、用户接口等难以管理,造成混乱。
通过超级调用想guest os提供执行特权指令的调用接口。
修改编译器,对OS中需要VMM监控和模拟的指令在编译阶段替换为VMM的接口调用。规避了二进制虚拟化对源代码修改的超高难度操作。
引入新的指令和处理器运行模式,使VMM和guest os运行在不同模式。
共享资源的使用。
程序直接使用的地址。
逻辑地址转化后的结果,用于索引虚拟地址空间。
物理地址用于索引物理地址空间,是CPU提交到总线用于访问平台内存和硬件设备的最终地址。
引入物理地址的必要性。
通常来说,要改变客户机占用的宿主机内存,是要先关闭客户机,修改启动时的内存配置,然后重启客户机才能实现。而内存的ballooning(气球)技术可以在客户机运行时动态地调整它所占用的宿主机内存资源,而不需要关闭客户机。
Ballooning技术形象地在客户机占用的内存中引入气球(Balloon)的概念,气球中的内存是可以供宿主机使用的(但不能被客户机访问或使用),所以,当宿主机内存使用紧张,空余内存不多时,可以请求客户机回收利用已分配给客户机的部分内存,客户机就会释放其空闲的内存,此时若客户机空闲内存不足,可能还会回收部分使用中的内存,可能会换出部分内存到客户机的交换分区(swap)中,从而使得内存气球充气膨胀,从而让宿主机回收气球中的内存可用于其他进程(或其他客户机)。反之,当客户机中内存不足时,也可以让客户机的内存气球压缩,释放出内存气球中的部分内存,让客户机使用更多的内存。