[发明专利]一种基于PML的虚拟机页表追踪方法和系统在审
申请号: | 202211197732.5 | 申请日: | 2022-09-29 |
公开(公告)号: | CN115576643A | 公开(公告)日: | 2023-01-06 |
发明(设计)人: | 李传东;沙赛;罗英伟;汪小林 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 邱晓锋 |
地址: | 100871 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 pml 虚拟机 追踪 方法 系统 | ||
本发明涉及一种基于PML的虚拟机页表追踪方法和系统。该方法包括:在虚拟机中,通过扫描驻留集大于1GB的进程获取虚拟机负载使用的页表页并将其传输回Hypervisor以获取监控目标;周期性地对虚拟机页表页清除EPT中的Dirty bit及其包含的虚拟机页表项清除Access bit和Dirty bit,利用Intel PML技术高效获取发生写操作的页表页条目,进一步扫描其中的虚拟机页表项从而获取本周期内发生读写操作的页面;提出多级队列算法以加速追踪效率。本发明所提出的方案充分利用Intel PML的硬件特性追踪客户机被使用的页表,缓解了传统页表扫描方法需要遍历虚拟机所有页表的开销;使用多级队列算法对追踪页面进行筛选,极大的降低了需要置位页面的数量,进一步降低了整体追踪的开销。
技术领域
本发明涉及内存虚拟化领域,尤其设计一种基于Intel PML的虚拟机页表追踪方法和系统。
背景技术
虚拟化是云计算的基础技术之一,其是指在一台物理计算机上运行一台或多台虚拟计算机(虚拟机,或客户机)。这些虚拟机拥有独立的虚拟硬件和运行环境,实际上却共享物理计算机的CPU、内存、网卡等资源。本质上,虚拟化就是由位于物理机的软件层向虚拟机提供一个与它所需要的运行环境完全一致的接口的方法,抽象出来的虚拟软件或硬件接口使得上层虚拟机能够直接运行在虚拟的环境上。这个存在于物理机中的软件层就是虚拟机监控程序(或虚拟机监视器,Virtual Machine Monitor,VMM,或hypervisor),用于控制虚拟机操作系统对物理机资源的访问以及向虚拟机提供抽象。虚拟化技术的核心主要有三个:I/O虚拟化,CPU虚拟化和内存虚拟化。随着当前云服务中访存密集程序的涌现与其所需内存空间的不断增加,内存虚拟化提供的访存效率已经成为了一个关键性能瓶颈。
内存虚拟化的目的主要是为虚拟机提供一个从零开始的连续物理内存空间和在各个虚拟机之间有效隔离、调度以及共享内存资源管理。为了达到这两点,VMM引入了一层新的地址空间,即客户机物理地址空间,其与物理机中真正的物理地址空间不同,是提供给虚拟机的物理地址抽象。因此,内存虚拟化需要完成二维地址转换,即从应用程序所在的客户机虚拟地址(Guest Virtual Address,GVA)到客户机物理地址(Guest PhysicalAddress,GPA),最后到宿主机物理地址(Host Physical Address,HPA)的两层地址转换。前一个转换由客户机本身的操作系统完成,后一个转换需要物理机提供额外的软件或者硬件支持。
主流架构下的内存虚拟化方案分为两种:软件内存虚拟化方案的影子页表与硬件内存虚拟化方案的嵌套页表。当前,绝大多数架构都已经引入了硬件辅助虚拟化支持,比如英特尔虚拟化技术(Intel Virtualization Technology,Intel VT)支持。在内存虚拟化方面,Intel VT提供了扩展页表(Extended Page Table,EPT)保存GPA到HPA的映射关系,由物理硬件实现二级地址转换。每个虚拟机的EPT由VMM维护,除开地址映射信息之外,其也和普通页表相似,EPT页表项也包含对应物理页面的权限位信息。其中,EPT表项的第8位和第9位分别是访问位(Access bit)和脏位(Dirty bit)。当虚拟机访问了对应于该EPT表项的GPA,其访问位会被硬件置位。同理,当发生写入时,EPT对应页表项的脏位也会被置位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211197732.5/2.html,转载请声明来源钻瓜专利网。