虚拟存储(虚拟存储技术)

文章目录

  • 拉萨贡嘎机场T3航站楼投入运营。
  • 感受奥运运动员的青春气质

虚拟存储(虚拟存储技术)

云和虚拟化

云计算是通过互联网服务提供动态、可扩展资源的计算模式。经过多年的发展,IT已经成为企业IT技术的重要支撑。虚拟化是云计算的核心技术之一。一台计算机被抽象成多台逻辑计算机,即虚拟机。每个虚拟机都是一个独立且安全的环境,可以运行不同的操作系统,而不会相互影响。

虚拟化技术给资源的使用和调度带来了极大的便利。云计算系统可以根据负载情况及时调度资源,提高资源利用率,保证应用和服务不会因为资源不足而影响服务质量。但是,虚拟化也是有代价的,资源的抽象带来了性能的损失,这也是虚拟化一直在努力解决的问题。

虚拟化的资源抽象可以简单地分为三部分:CPU虚拟化、内存虚拟化和设备虚拟化。其中,设备虚拟化已经能够实现网络、存储等设备通过到虚拟机而不损失性能;在硬件特性的支持下,CPU虚拟化具有与裸机相同的执行普通指令的性能。但是与裸机相比,内存虚拟化还是有很大的区别,这是目前值得关注的问题。

内存虚拟化

虚拟内存:说到内存虚拟化,就不得不提到虚拟内存的概念。在早期的操作系统中,只有一个物理地址,空之间的空间是有限的,因此进程在使用内存时必须小心避免覆盖其他进程的内存。为了避免这个问题,虚拟内存的概念被抽象出来,以确保每个进程都有一个连续且独立的虚拟内存空。进程直接通过虚拟地址使用内存。中央处理器访问内存时发送的虚拟地址被硬件内存管理单元截获并转换为物理地址。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地址转换路径相当于物理机路径,直接查询一层页表即可完成地址转换。使用四级页表时,转换过程如下图所示。

优点:SPT地址转换过程成本低,与物理机相当。

缺点:

1)建立地址转换关系非常昂贵。为了保证地址转换的合法性,所有转换关系的建立,也就是虚拟机进程的页表修改,都会被截获并困在特权VMM中进行执行。

2)影子页表本身需要占用内存,一个影子页表只对应虚拟机中的一个进程,整体上会占用更多的内存资源。

EPT:后期硬件增加了嵌套页表对虚拟化的支持,让硬件自动完成两层页表的转换。EPT是基于硬件支持的解决方案。在管理从GVA到GPA的虚拟机页表的基础上,增加了扩展页表来管理GPA到HPA的映射,如下图所示。这两层页表相互独立,两层映射关系的转换由硬件自动完成。

由于虚拟机中各级页表(gL4、gL3、gL2、gL1)的内容都只是GPA,在查询下一级时,必须先将页表(nL4、nL3、nL2、nL1)转换为HPA,这使得整个转换路径非常长。当两层页表为四级时,转换过程如下图所示。

优点:地址转换关系建立成本低,独立EPT页表的存在保证了地址转换的合法性,因此虚拟机的页表可以自行修改,无需VMM干预。

缺点:转换过程的成本非常高。在最坏的情况下,它需要24(4+4+4 * 4)次硬件查找转换。

两种经典方案在安全性上有坚实的保证,但在性能上各有缺陷。SPT在建立翻译关系上付出了巨大的代价,以保证地址翻译的合法性,而EPT消除了建立翻译关系的开销,但翻译路径更长。

其他探索

关于内存虚拟化,工业界和学术界还有很多探索。基本思路类似于SPT或EPT,可分为三类:

1)一层页表方案。与SPT类似,使用一层页表直接管理从GVA到HPA的映射。

2)两层页表方案。与EPT类似,两个独立的页表分别用于管理从GVA到GPA和GPA到HPA的映射。

3)混合方案。结合前两种方案进行动态选择。

直接分页:一层页表方案,是早期硬件只支持一层页表时Xen的半虚拟化方案。与SPT相比,最大的区别是从GVA到GPA的虚拟机页表没有单独维护,虚拟机知道自己处于虚拟化环境,即知道自己的页表内容是HPA。虚拟机页表修改也需要陷,但主动陷可以批量,而SPT是被动拦截陷。读页表只能得到HPA,需要查一个M2P(机器到物理)表才能得到GPA。

直接分页也使用一层页表来管理从GVA到HPA的映射,地址转换的路径与SPT相同。使用四级页表时,最差只需查表4次。

优点:地址转换过程成本低,与物理机相当。

缺点:

1)地址转换关系的建立非常昂贵,所有的页表修改都需要主动受困;

2)虚拟机需要做半虚拟适配,虚拟机需要感知自己的页表管理从GVA到HPA的映射。

直接段:两层页表方案,是学术界基于新硬件的方案。GVA到GPA的映射管理与EPT相同,也采用多级页表。但是从GPA到HPA的映射采用了分段机制,当GPA转换为HPA时,只需要通过硬件增加一个偏移量。

虽然GPA不等于HPA,但是它们之间的映射关系非常简单。只有直接段硬件需要添加偏移。与物理机的路径相比,整个转换路径差别不大,只是多了几个硬件偏移量。使用虚拟机四级页表时,转换路径如下图所示,其中DS代表GPA到HPA转换的硬件支持。

优点:地址翻译关系建立成本低,翻译过程成本也很低。

缺点:

1)需要硬件支持GPA到HPA段的映射,现有硬件不具备此功能;

2)需要分配一大段连续内存,即主机不能有太多内存碎片。

扁平化EPT:两层页表方案,也是学术界提出的基于新硬件的方案。它与整个EPT非常相似。唯一不同的是EPT管理从GPA到HPA的多级页表的使用,一般为4级,每级512个条目。而平面EPT使用的是只有一个级别的平面页表,有超过512个条目。

和EPT一样,各级虚拟机中页表的内容都是GPA。查询下一级时,需要通过平面扩展页表(nL4)将页表转换为HPA。因为平面扩展页表只有一级,所以转换路径比EPT短得多。在虚拟机中使用四级页表时,转换路径如下图所示。最坏的情况下,查表只需要9(4+1+4 * 1)次。

优点:地址翻译关系建立成本低,翻译过程成本也低。与Direct Segment相比,它需要更少的内存分配,只需要少量的连续内存作为平面扩展页表(8G虚拟机只需要16M)。

缺点:需要硬件来支持平面扩展页表。当前的硬件仅支持条目为512的多级扩展页表。

混合SPT和EPT:早些时候学术界提出的混合方案,只是SPT和EPT之间的动态分时切换。监控和采集虚拟机运行时的TLB未命中和页面故障数据,当达到设定阈值时,在SPT和EPT之间切换,如下图所示:

当TLB失败率高于阈值T1且页面故障频率低于阈值T2时,从EPT切换到SPT。

当TLB失败率低于阈值T1且页面故障频率高于阈值T2时,从标准普尔切换到EPT。

优势:有机会充分利用SPT和EPT的优势,取得更好的表现。

缺点:

1)页表切换阈值设置困难,硬件配置可能影响阈值;

2)在SPT和EPT之间切换也代价高昂,主要是SPT的破坏和重建。

摘要

一层页表的明显优势是地址转换过程成本低,和物理机一样。要解决的问题是降低地址转换建立的成本。一个可能的方向是放弃一些安全性,让页表的修改变轻;另一个更实际的方向是在适当的场景中使用它,也就是说,使用页面表修改不频繁的负载。

双层页表的优点是地址转换开销小,虚拟机可以独立修改页表。要考虑的问题是缩短翻译路径。这个方向其实是很可行的,但是在新硬件的支持下,短期内不太可能出现符合要求的新硬件。

混合页表设计的初衷是充分利用两种类型页表的优势,但动态模式切换非常困难,负载甚至硬件的差异都可能影响切换效果。也许对已知负载的方向优化是一个可行的方向。

从长远来看,在新硬件的加持下,两层页表(尤其是Flat EPT)是一个相对完善的解决方案,地址转换可以非常高效,而不牺牲安全性和通用性。但短期来看,新硬件还为时过早,进一步探索和优化一层页表方案更具实用性。我们将继续探索内存虚拟化道路上的更多可能性。欢迎加入OpenAnolis龙蜥社区讨论交流。

关于:陶志恒(君川),2020年加入阿里巴巴云操作系统-云原生底层系统团队,目前从事性能优化方向。

原文链接:
http://click.aliyun.com/m/1000287430/

本文为阿里巴巴云原创内容,未经许可不得转载。

评论2

请登录评论~

评论

有用户1310762158点赞转发。

回复·4天前AlexText喜欢转发它

回复·4天前

让世界看到中国青年的战斗力。

光明网154评论14小时前

拉萨贡嘎机场T3航站楼投入运营。

中国经济网52评论1天前

感受奥运运动员的青春气质

人民网660评论19小时前刚刚看到这里,点击刷新阿郝

阿里巴巴云计算有限公司

关注TA的热门作品

Snowflake 如日中天是否代表 Hadoop 已死?大数据体系到底是什么?

144阅读5天前

快速界定故障:Socket Tracer 网络监控实践

32阅读6天前

当 Java 遇上机密计算,又一段奇幻之旅开始了

40三天前阅读

阿里云马涛:什么是操作系统的云原生?

44阅读5天前

获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解

34阅读4天前

查看更多头条以获得改变。

一个

于月仙的丈夫发了讣告。

2

人民日报评论阿里侵害女员工事件

济南华联辞退了参与侵权的阿里员工。

英国学者:美国的“抗疫第一”是荒谬的。

报告北京市1例肺炭疽病例。

星星哀悼于月仙

专家:当地疫情可能在8月底前解决。

中俄联合军事演习开始

全禅父亲:不接受房产现金等捐赠。

10

《乡村爱情》里没有谢大脚。

精彩视频变化11:26

孟晚舟事件新进展!

52万部剧

八点半

孩子们终于放假,回到阔别1月的小院,来个大扫除,住着倍儿舒服

18万部剧

06:28

立秋,家人团聚吃饺子,妈妈擀皮,奶奶包,宸宸跟着打下手

23万部剧

十点二十八分

马霞:用离岸人民币给美元釜底抽薪

24万部剧

09:51

中美正面交锋,白宫一再出笨招?3大信号表明:美国最多扛30年

7万部剧

(0)
上一篇 2022年4月27日
下一篇 2022年4月27日

相关推荐