虚拟存储(虚拟存储技术)
云和虚拟化
云计算是一种通过互联网服务提供动态、可扩展资源的计算模式 。经过多年的发展,已经成为企业IT技术的重要支撑 。虚拟化是云计算的核心技术之一 。一台计算机抽象成多台逻辑计算机,即虚拟机 。每个虚拟机都是一个独立的安全环境,可以运行不同的操作系统,而不会相互影响 。
虚拟化技术给资源的使用和调度带来了极大的便利 。云计算系统可以根据负载情况及时调度资源,提高资源利用率,保证应用和服务不会因为资源不足而影响服务质量 。但是,虚拟化也是有代价的,资源的抽象带来了性能的损失,这也是虚拟化一直试图解决的问题 。
虚拟化的资源抽象可以简单分为三个部分:CPU虚拟化、内存虚拟化和设备虚拟化 。其中,设备虚拟化已经能够实现网络、存储等设备直通到虚拟机而不损失性能;在硬件特性的支持下,CPU虚拟化拥有和裸机一样的执行普通指令的性能 。但是内存虚拟化和裸机相比还是有很大的区别,这是目前值得关注的问题 。
内存虚拟化
虚拟内存:说到内存虚拟化,就不得不提到虚拟内存的概念 。在早期的操作系统中,只有一个物理地址,并且空之间的空间有限,因此进程在使用内存时必须小心避免覆盖其他进程的内存 。为了避免这个问题,抽象出了虚拟内存的概念,保证每个进程都有一个连续独立的虚拟内存空 。进程直接通过VA(虚拟地址)使用内存 。CPU访问内存时发送的VA被硬件MMU(内存管理单元)截获,转换成PA(物理地址) 。VA和PA之间的映射由页表管理 。转换时MMU会自动查询页表 。
虚拟化:类似于虚拟内存的概念,一台主机上的每个虚拟机都认为自己占据了整个物理地址空空间,所以需要再次对内存进行抽象,即虚拟化内存,保证每个虚拟机都有独立的地址空空间 。这样,虚拟机和物理机都有VA和PA的概念,即GVA(来宾虚拟地址)和GPA(来宾物理地址),HVA(主机虚拟地址)和HPA(主机物理地址) 。虚拟机中的程序使用GVA,最终需要转换为HPA 。两个VA到PA( GVA到GPA,HVA到HPA)的映射也是页表管理,GPA到HVA的映射一般是几个连续的线性映射,由虚拟机的VMM(Virtual Machine Monitor)管理 。
【虚拟存储技术 虚拟存储】
进程内存访问需要从VA转换为PA 。引入内存虚拟化后,转换路径发生了很大的变化 。本来我们只需要把VA转换成PA,虚拟化之后,转换过程就变成了GVA -> GPA -> HVA -> HPA 。路径变得更长更复杂后,给内存访问的安全性和性能带来挑战,这也是内存虚拟化需要达到的目标:1)安全性,即地址转换的合法性,虚拟机不能访问不属于自己的内存;2)性能,即地址翻译的高效率,包括建立翻译关系的低成本和翻译过程本身的低成本 。
经典方案
为了实现内存虚拟化的目标,人们提出了许多虚拟化方案 。SPT(影子页表)和EPT(扩展页表)是两种典型的方案,也是最常见的方案 。让我们以此为起点,看看它们是如何工作的,然后讨论其他虚拟化方案 。
SPT:由于原硬件只支持一层页表转换,在虚拟机或物理机上直接将VA转换为PA无法完成GVA到HPA的转换 。因此,SPT建立了一个快捷方式,即影子页表,来直接管理GVA到HPA的映射,如下图所示 。每个影子页表实例对应于虚拟机中的一个进程 。影子页表的建立需要VMM查询虚拟机中进程的页表 。
由于影子页表管理GVA到HPA的直接映射,所以SPT地址翻译路径相当于物理机路径,直接查询一层页表就可以完成地址翻译 。使用4级页表时,转换过程如下图所示 。
优点:SPT地址翻译过程成本低,与物理机相当 。
缺点:
1)地址转换关系的建立是非常昂贵的 。为了保证地址转换的合法性,所有的转换关系的建立,也就是虚拟机进程的页表修改,都会被拦截,困在特权VMM中执行 。
2)影子页表本身需要占用内存,一个影子页表只对应虚拟机中的一个进程,整体会占用更多的内存资源 。
EPT:后来的硬件增加了对虚拟化的嵌套页表的支持,使得硬件可以自动完成两层页表的转换 。EPT是基于硬件支持的解决方案 。在管理GVA到GPA的虚拟机页表的基础上,增加了一个扩展页表来管理GPA到HPA的映射,如下图所示 。这两层页表相互独立,两层映射关系的转换由硬件自动完成 。
因为虚拟机中各级页表(gL4,gL3,gL2,gL1)的内容只有GPA,所以查询下一级时,必须先将页表(nL4,nL3,nL2,nL1)转换成HPA,这使得整个转换路径非常长 。当两层页表为四级时,转换过程如下图所示 。
推荐阅读
- 怎样增加手机存储空间 手机储存空间不足怎么办
- 汽车检测与维修技术发展前景 汽车检测与维修专业
- 三级跳怎么跳 三级跳技巧
- 安徽职业技术学院怎么样(安徽职业技术学院厕所)
- 扔铅球的训练方法 扔铅球的技巧
- 希捷硬盘怎么样(希捷公司怎么样)
- 对虾养殖技术方法 渔业养殖技术
- 浙江工商职业学院好吗 江苏经贸职业技术学院怎么样
- 数字化技术应用的趋势 什么是数字化技术
- 蓝牙怎么样(蓝牙技术的意义)