虚拟存储(虚拟存储技术)
云和虚拟化
云计算是一种通过互联网服务提供动态、可扩展资源的计算模式。经过多年的发展,已经成为企业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)管理。
进程内存访问需要从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级页表时,更好只查4次表。
优点:地址翻译过程开销低,与物理机相当。
缺点:
1)地址翻译关系的建立开销很大,所有页表修改都需要主动陷;
2)虚拟机需要适应半虚拟化。虚拟机需要感知自己的页表,以管理从GVA到HPA的映射。
直接段:两层页表方案,这是学术界基于新硬件的方案。GVA到GPA的映射管理和EPT一样,也是采用多级页表。然而,GPA到HPA的映射采用分段机制。当GPA转换为HPA时,硬件只需要一个偏移量。
虽然GPA不等于HPA,但是两者之间的映射关系非常简单。直接段硬件只需要一个偏移量。与物理机路径相比,整个转换路径差别不大,只有少量额外的硬件偏移。使用虚拟机四级页表时,转换路径如下图所示,其中DS表示GPA到HPA转换的硬件支持。
优点:建立地址翻译关系开销低,翻译过程开销也低。
缺点:
1)需要硬件支持GPA到HPA的映射,但是现有的硬件不具备这样的功能;
2)需要分配大的连续内存,即主机不能有太多的内存碎片。
Flat EPT:两层页表方案,也是学术界提出的基于新硬件的方案。与整个EPT非常相似,唯一不同的是EPT使用多级页表管理GPA到HPA,一般是4级,每级512项;而Flat EPT使用只有一个级别的平面页表,条目远不止512个。
和EPT一样,虚拟机中各级页表的内容都是GPA,所以在查询下一级时,需要先通过平面扩展页表(nL4)转换成HPA。因为平面扩展页表只有一级,所以转换路径比EPT短得多。在虚拟机中使用4级页表时,转换路径如下图所示。在最坏的情况下,它只需要9次(4+1+4 * 1)表查找。
优点:建立地址翻译关系开销低,翻译过程开销也低。与直接段相比,它需要的内存分配更少,只需要少量的连续内存就可以作为平面扩展页表(8G虚拟机只需要16M)。
缺点:要求硬件支持平面扩展页表,目前的硬件只支持条目为512的多级扩展页表。
混合SPT和EPT:一种混合方案,较早由学术界提出。简单来说就是SPT和EPT之间的动态分时切换方案。监控并收集虚拟机运行时的TLB未命中和页面错误数据,当达到设定的阈值时,在SPT和EPT之间切换,如下图所示:
当TLB缺失率高于阈值T1,并且页面错误频率低于阈值T2时,从EPT切换到SPT
当TLB缺失率低于阈值T1,并且页面错误频率高于阈值T2时,它从SPT切换到EPT。
优势:有机会充分利用SPT和EPT的优势,达到更好的表现。
缺点:
1)很难设置页表切换的阈值,硬件配置可能会影响阈值;
2)SPT和EPT的切换也是有代价的,主要是SPT的破坏和重建。
摘要
一层页表的明显优势是地址翻译过程开销低,与物理机相同。要解决的问题是减少地址转换建立的开销。一个可能的方向是放弃一些安全性,让页表修改更轻;另一个更实际的方向是在合适的场景下使用,也就是不经常修改页表。
两层页表的优点是地址翻译开销小,虚拟机可以独立修改页表。要考虑的问题是缩短翻译路径。这个方向其实是很可行的,但是取决于新硬件的支持,短期内出现符合要求的新硬件的可能性不大。
混合页表的设计初衷是为了充分利用两种类型页表的优势,但是进行动态模式切换是非常困难的。负载的不同,甚至硬件的不同,都可能影响切换效果。对已知载荷进行定向优化或许是一个可行的方向。
从长远来看,如果有新硬件的加持,两层页表(尤其是Flat EPT)是一个比较完善的解决方案,地址翻译可以非常高效,不需要在安全性和通用性上做一些牺牲。但短期内新硬件还为时过早,进一步探索优化一层页表方案更为实际。我们将继续探索内存虚拟化道路上的更多可能性。欢迎加入OpenAnolis龙蜥社区进行讨论和交流。
作者简介:陶志恒(军川),2020年加入阿里云OS-Cloud原生底层系统团队,目前从事性能优化工作。
原文链接:http://click.aliyun/m/1000287430/
本文为阿里云原创内容,未经允许不得转载。
评论2
请先登录评论~
评论
某用户1310762158赞向前
回复·4天前AlexText赞向前
回复·4天前让世界看到中国青年的战斗力。光明网154评论14小时前
*** 贡嘎机场T3航站楼投入使用
中国经济网52评论1天前感受奥运选手的青春气质
人民网660评论19小时前刚刚看到这里,点击刷新阿里云云栖号阿里云计算有限公司关注TA的热门作品
Snowflake 如日中天是否代表 Hadoop 已死?大数据体系到底是什么?744阅读5天前
快速界定故障:Socket Tracer *** 监控实践32阅读6天前
当 Java 遇上机密计算,又一段奇幻之旅开始了40阅读3天前
阿里云马涛:什么是操作系统的云原生?44阅读5天前
获国际架构顶会ATC2021更佳论文!Fuxi2.0去中心化的调度架构详解4天前34次阅读
改变一下,看更多标题。
一个
于月仙的丈夫发布了讣告。
2
人民网评论阿里侵犯女员工。
三
济南华联对阿里员工违规的相关人员予以辞退。
四
英国学者:美国“抗疫之一”荒谬
五
报告了北京市一例肺炭疽病例。
六
明星悼念于月仙。
七
专家:当地疫情可能8月底解决。
八
中俄联合军事演习开始
九
红灿的父亲:他不接受房产现金之类的捐赠。
10
《乡村爱情》里没有谢大脚。
精彩视频变化11:26
孟晚舟事件新进展!52万次播放八点半
孩子们终于放假,回到阔别1月的小院,来个大扫除,住着倍儿舒服18万次播放06:28
立秋,家人团聚吃饺子,妈妈擀皮,奶奶包,宸宸跟着打下手23万次播放十点二十八分
马霞:用离岸人民币给美元釜底抽薪24万次播放09:51
中美正面交锋,白宫一再出笨招?3大信号表明:美国最多扛30年73万次播放本文地址:百科生活频道 https://www.neebe.cn/live/942349.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!