虚拟机内存共享方法及装置制造方法及图纸

技术编号:8562947 阅读:307 留言:0更新日期:2013-04-11 04:35
本发明专利技术提供了一种虚拟机内存共享方法及装置,方法包括:根据物理机上的各个虚拟机所属的用户,将所述物理机上的虚拟机划分为至少两个用户组,每个所述用户组内的虚拟机共享一个进程,不同的用户组对应不同的进程;通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面;对存储重复数据的内存页面进行删除冗余数据处理;还包括:将删除冗余数据处理所释放的内存页面重新分配给对应的用户组内的虚拟机。本发明专利技术通过上述方法及装置实现了在虚拟机内存共享时避免用户的敏感信息被其他虚拟机共享。

【技术实现步骤摘要】

本专利技术涉及计算机技术,尤其涉及一种虚拟机内存共享方法及装置
技术介绍
随着虚拟机技术的不断发展,为了解决虚拟机内存空间的限制,内存共享技术被提出并作为一种解决内存可用率的方法,可以有效消除冗余的内存页面。如果在物理机上运行装有相同操作系统和应用程序的虚拟机,就会存在许多具有相同内容的内存页面,冗余的内容相同的页面可以被删除,从而释放内存以供其他应用程序继续使用。现有的内存共享技术中,可以将同一台物理机上的各个虚拟机之间所共有的重复代码或重复页面映射到同一个物理页面上来减少内存上的冗余数据。然而一台物理机上的不同虚拟机可能属于不同用户,从而可能在扫描不同虚拟机上重复代码或重复页面的过程中导致用户的敏感信息被其他虚拟机共享。
技术实现思路
本专利技术提供了一种虚拟机内存共享方法及装置,用于在虚拟机内存共享时避免用户的敏感信息被其他虚拟机共享。一方面,本专利技术提供了一种虚拟机内存共享方法,包括根据物理机上的各个虚拟机所属的用户,将所述物理机上的虚拟机划分为至少两个用户组,每个所述用户组内的虚拟机共享一个进程,不同的用户组对应不同的进程;通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面;对存储重复数据的内存页面进行删除冗余数据处理。另一方面,本专利技术另一方面提供了一种虚拟机内存共享装置,包括分组模块,用于根据物理机上的各个虚拟机所属的用户,将所述物理机上的虚拟机划分为至少两个用户组,每个所述用户组内的虚拟机共享一个进程,不同的用户组对应不同的进程;扫描模块,用于通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面;处理模块,用于对存储重复数据的内存页面进行删除冗余数据处理。本专利技术通过上述虚拟机内存共享方法及装置,根据物理机上的各个虚拟机所属的用户,将物理机上的虚拟机划分为至少两个用户组,通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面,从而对存储重复数据的内存页面进行删除冗余数据处理。实现了在虚拟机内存共享时避免用户的敏感信息被其他虚拟机共享。附图说明图1为虚拟机内存共享原理示意图;图2为本专利技术虚拟机内存共享方法一实施例的流程图3为本专利技术控制组机制示意图;图4为标准KSM算法流程图;图5为本专利技术虚拟机内存共享方法另一实施例的流程图;图6为本专利技术改进KSM算法流程图;图7为本专利技术基于控制组机制的内存共享结构图;图8为本专利技术虚拟机内存共享装置结构图。具体实施例方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图1为虚拟机内存共享原理示意图,如图1所示,在虚拟机平台中,拥有相同内存页面的虚拟机之间可以进行页面共享。因此,每个虚拟机可以包括私享页面和共享页面。图2为本专利技术提供的虚拟机内存共享方法一个实施例的流程图,如图2所示,该方法可以包括201、根据物理机上的各个虚拟机所属的用户,将物理机上的虚拟机划分为至少两个用户组,每个用户组内的虚拟机共享一个进程,不同的用户组对应不同的进程。本专利技术中,可以对物理机上的各虚拟机进行分组,具体的,可以将每个用户的虚拟机分在一个用户组内。即,不同用户的虚拟机可以对应不同的用户组。或者,还可以将可以共享敏感信息的2个或2个以上用户的虚拟机分在同一个用户组内。举例来说,本专利技术实施例中可以通过控制组的方法来实现虚拟机的分组。控制组(cgroup)是Linux内核提供的一种基于进程划分的集合机制,能够将系统中的进程,以及他们相应的子进程集合起来进行管理,将这些进程和子进程进行聚合或划分成有层次的树状结构,就像Linux的文件系统结构一样。树状结构中的各个节点对应的是系统中的进程或子进程。图3为本专利技术实施例提供的基于控制组进行虚拟机分组的原理示意图,如图3所示,一个用户组可以有一个专有的删除冗余数据进程负责对该组内的重复页面进行扫描和合并,即该用户组内的虚拟机共享一个进程,每个用户组中可以包含至少一台虚拟机,不同的用户组对应不同的进程,每个进程只能对其所对应的用户组内的虚拟机进行操作,例如,合并、删除冗余内存页面。我们在cgroup中增加了 KSM cgroup子系统,这样用户或者管理员可以很方便的来定义一个用户组。对物理机上的虚拟机按用户进行用户组划分后,每个用户组内的各虚拟机可以共享该用户组对应的进程,即,可以由该用户组对应的共享进程进行操作和管理。不同的用户组对应不同的进程。202、通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面。本专利技术实施例中,可以采用现有的各种扫描方法对虚拟机所占用的内存页面进行扫描。举例来说,可以通过内核页合并(KSM,Kernel SamepageMerging)机制实现对虚拟机所占用的内存页面进行扫描,KSM机制是针对虚拟机平台(hypervisor)设计的,该机制被内置于Linux内核中。在Linux内核中,KSM作为内核中的守护进程(称为ksmd)存在,它可以定期执行对不同进程的内存页面扫描,识别副本页面,即冗余内存页面。在本专利技术实施例中,我们修改了这个全局的删除冗余数据算法,把全局的ksmd分解为每组的ksmds。每组的ksmd运行时都有自己的数据结构,这些数据结构与其他的ksmds是完全隔离的。在KSM中,页面通过两个“红-黑”树管理,其中一个“红-黑”树是稳定的,称为稳定树,另一个“红-黑”树是临时的,称为不稳定树。不稳定树用于存储作为扫描出的含有重复数据的内存页面,即待合并的候选页面(在一段时间内没有变化)。另外,不稳定树中的页面是不能写保护的。稳定树用于存储那些不存在重复的内存页面或已经过合并的内存页面。为确定一个页面是否是稳定页面,KSM可以使用简单的32位校验和(checksum)。当一个页面被扫描时,它的校验和被计算且与该页面存储在一起。在下一次扫描中,如果新计算的该页面的校验和不等于此前计算的校验和,则该页面正在进行更改,因此该页面不是一个合格的待合并候选页面。203、对存储重复数据的内存页面进行删除冗余数据处理。在使用KSM机制扫描一个内存页面时,首先需要检查是否能够在稳定树中发现该页面。如果在稳定树中发现该页面,则合并该页面,用于存储该页面的空间被释放。如果没有发现候选页面,则转到不稳定树。在不稳定树中搜索时,可以重新计算页面上的校验和。如果该重新计算出的校验和与原始校验和不同,则可以在本次扫描后抛弃这个页面,因为它进行了更改,不属于待合并的候选页面范围。如果计算出的校验和与原始校验和相同,那么可以进一步搜索该页面是否存在于不稳定树中,若存在,则合并该页面并且将该页面迁移至稳定树中,若不存在,则将该页面添加至不稳定树中。具体的KSM算法流程如图4所示。本实施例提供的虚拟机内存共享方法,根据物理机上的各个虚拟机所属的用户,将物理机上的虚拟机划分为至少两个用户组,通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面,从而对存储重复数据的内存页面进行删除冗余数据处理。实现了在虚拟机内存共享时避免用户的敏感信息本文档来自技高网...

【技术保护点】
一种虚拟机内存共享方法,其特征在于,包括:根据物理机上的各个虚拟机所属的用户,将所述物理机上的虚拟机划分为至少两个用户组,每个所述用户组内的虚拟机共享一个进程,不同的用户组对应不同的进程;通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面;对存储重复数据的内存页面进行删除冗余数据处理。

【技术特征摘要】
1.一种虚拟机内存共享方法,其特征在于,包括 根据物理机上的各个虚拟机所属的用户,将所述物理机上的虚拟机划分为至少两个用户组,每个所述用户组内的虚拟机共享一个进程,不同的用户组对应不同的进程; 通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面; 对存储重复数据的内存页面进行删除冗余数据处理。2.根据权利要求1所述的方法,其特征在于,所述对存储重复数据的内存页面进行删除冗余数据处理之后,还包括 将删除冗余数据处理所释放的内存页面重新分配给对应的用户组内的虚拟机。3.根据权利要求1或2所述的虚拟机内存共享方法,其特征在于,所述根据物理机上的各个虚拟机所属的用户,将所述物理机上的虚拟机划分为至少两个用户组之后,还包括 为每个所述用户组对应的一个进程分配至少一个分系统。4.根据权利要求1或2所述的虚拟机内存共享方法,其特征在于,所述通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面,包括 通过进程扫描对应的用户组内的虚拟机所占用内存页面存储的数据; 采用抽样哈希算法计算虚拟机所占用的各内存页面部分内容的哈希值,对哈希值相同的内存页面再进行全页面内容比较,若全页面内容相同则确定为存储重复数据的内存页面。5.根据权利要求1或2所述的虚拟机内存共享方法,其特征在于,所述通过进程扫描对应的用户组内的虚拟机所占用的存储重复数据的内存页面之后,包括 确定每个所述用户组中删除的冗余数据量;...

【专利技术属性】
技术研发人员:胡春明邓岩李博崔磊
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1