多虚拟机系统中一种主动共享的内存超量分配方法

文档序号:9200169阅读:2220来源:国知局
多虚拟机系统中一种主动共享的内存超量分配方法
【技术领域】
[0001]本发明涉及虚拟化计算机系统中内存资源管理与分配的实现方法,尤其是大规模部署虚拟化技术的弹性云计算系统,如互联网数据中心及多租户云计算环境中虚拟机间内存资源的管理分配方法。
【背景技术】
[0002]在多虚拟机(Virtual Machine, VM)系统中,多个虚拟机共享同一个物理机(Physical Machine, PM)的硬件资源,如处理器、内存、磁盘和网络设备。随着虚拟机数量的增加,硬件资源总体上可能处于过量分配状态。而在多租户云计算环境下,由于不同虚拟机的负载高峰时间可能不同,为了承载最大的客户虚拟机,物理硬件资源的过量分配情况可能进一步加剧。然而,客户虚拟机负载的不可预测性,使得静态的资源分配方式无法适应于动态的变化的负载。因此,为了保证各个客户虚拟机的性能和服务质量,虚拟机监控器必须根据不断变化的外部负载为各个客户虚拟机动态地分配资源。
[0003]处理器的分时特性使其在虚拟化系统中成为最高效的组件,而磁盘由于其独占性,成为无法虚拟化的资源。而内存的计算性能介于磁盘和处理器之间,同时由于其线性特性,特别适合于虚拟化。因此,作为虚拟化计算系统的关键资源,内存资源分配的好坏决定了整个虚拟化计算系统的性能优劣。
[0004]但是,由于现有的虚拟化平台中内存管理的方式无法在物理机上分辨客户机内部内存页面的具体状态,客户机内存页面仅以被访问的频率和内容上的重复性的形式被物理机所感知,可能出现一些不合理的情况,各种现有的内存超量使用策略也都存在一定的局限和缺陷,存在内存资源浪费、回收不及时等问题,影响了整个虚拟化系统的性能。

【发明内容】

[0005]由于当前的虚拟机监控器软件无法识别其上层客户虚拟机的内存使用状态,不管其实际内存页面的具体状态,虚拟机监控器仅仅根据客户机内存页面被访问的频率和内容上的重复性的形式进行分配,无法最大化整个计算机系统的最佳效能。因此,本发明基于客户虚拟机的主动共享,将客户虚拟机不使用的内存及时回收,并可分配给需要内存资源的其它虚拟机,最终提高虚拟化系统的性能和服务质量。
[0006]该发明包含三部分的内容:基于平铺记录法和差量链表记录法的客户虚拟机内存页面标记方法、基于虚拟通道(Virtual Channel, VC)的主动内存共享方法和基于上述两个方法的多虚拟机内存超量分配方法。
[0007](I)基于平铺记录法和差量链表记录法的客户虚拟机内存页面标记方法针对已有的虚拟机监控器不考虑具体客户虚拟机内存使用状态的特点,本发明提出了分别基于平铺记录法和差量链表记录法的客户虚拟机内存页面使用状态标记方法,用来标记客户虚拟机的内存页面的使用状态。识别客户虚拟机的内存页面的使用状态,是进行内存主动共孚的如提。
[0008](2)基于虚拟通道的主动内存共享方法虚拟通道用来发送和处理客户虚拟机和虚拟机监控器之间的通信数据的双向管道,其使用异步通信机制完成从虚拟机监控器到客户虚拟机的指令与数据通信。通过开辟单独的共享内存区域,通信发起端(即Offer端)打开虚拟通道,虚拟通道由其端口号表示,而通信接收端(即Receiver端)通过端口号和远端域ID来连接这个虚拟通道。Offer端进程初始化的同时,虚拟通道的端口号被写进共享内存页,这样Receiver端就可以读到端口号,并连接到虚拟通道,进行数据通信。虚拟通道为进行内存超量分配提供了执行通道和桥m
ο
[0009](3)多虚拟机间内存超量分配方法
根据客户虚拟机主动提出的共享内存页面请求,虚拟机监控器进行内存回收,并可分配给需要内存资源的其它虚拟机,或将该内存资源保留以待未来使用,提高虚拟化系统的内存使用效率。
[0010]本发明方法的具体步骤是:
步骤1.在客户虚拟机和虚拟机监控器之间建立虚拟通道,用来发送和处理客户虚拟机和虚拟机监控器之间的通信数据;
步骤2.客户虚拟机本地资源代理利用基于平铺记录法和差量链表记录法标记并保存本机的内存使用状态;
步骤3.客户虚拟机通过虚拟通道将本机主动共享的内存页面告知虚拟机监控器;步骤4.虚拟机监控器通过虚拟通道接收客户虚拟机的主动共享的内存页面地址;步骤5.虚拟机监控器根据客户虚拟机提供的共享内存页面地址,将相应的内存页面回收,并可分配给需要内存资源的其它虚拟机,或将该内存资源保留以待未来使用,实现内存超量分配。
[0011 ] 步骤6.周期性循环步骤I至步骤5。
[0012]通过本发明提供的基于主动共享的内存超量分配方法,可以在多虚拟机系统中动态调整内存资源的分配,有效缓解内存资源的竞争程度,显著提高整个虚拟化系统的性能和服务质量。
【附图说明】
[0013]图1是虚拟化系统主动内存共享的内存超量分配方法体系结构。
[0014]图2是虚拟机内存状态转移图。
[0015]图3是差量链表记录法内存页块释放优先级。
【具体实施方式】
[0016]以下结合附图对本发明作进一步说明,请参阅图1 ;图1给出了本发明提出的虚拟化系统主动内存共享的内存超量分配方法的体系结构。其中I为计算系统中的可供分配的物理内存,2为内存驱动器,3为统一内存分配器,负责全局内存资源的统一分配。4为物理机内核内存调度器,5为内存回收模块,6 (虚线框内)为虚拟机监控器,虚拟机监控器除了具备基本的虚拟机管理其中又包括3、4、5、7四部分,7为虚拟通道,3、4、5、7四部分均为驻留在虚拟机监控器中的软件程序。8、9、10、11、12、13分别为客户虚拟机中的内存,其中8、10、12为客户虚拟机非主动共享的内存,9、11、13为客户虚拟机主动共享的内存。14、15、16为本地资源代理,17、18、19为虚拟机上的应用程序集合,20、21、22为客户虚拟机系统示例。
[0017]下面分别介绍内存驱动器、统一内存分配器、物理机内核内存调度器、内存回收模块、虚拟通道和本地资源代理。
[0018](I)内存驱动器
本方法中的内存驱动器为物理机操作系统内核具有的内存设备驱动,其实现的功能包括内存数据写入、数据读取、中断处理等。
[0019](2)统一内存分配器
本方法中由单独的统一内存分配器用于分配整个计算系统的内存,包括物理机和客户虚拟机内存的分配、管理和实时数据收集,可以根据不同的客户虚拟机的实时内存使用信息及其主动共享的内存页面数据,动态的调整客户虚拟机的内存分配。
[0020](3)物理机内核内存调度器
本方法中的物理机内核内存调度器主要负责虚拟机中非主动共享内存的管理
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1