一种云计算主机节点间物理内存共享方法和系统技术方案

技术编号:12402226 阅读:94 留言:0更新日期:2015-11-28 16:58
本发明专利技术提供了一种云环境中主机节点间物理内存共享的方法和系统。云环境集群中的某一台主机的空闲物理内存量不足时,通过操作系统中的内存借用模块向集群中的其他主机申请借用其物理内存。操作系统中含有内存借用组件的主机在接收到申请后,根据自身情况决定是否将自身空闲内存借出,如果服务主机同意借出部分物理内存资源,则建立客户主机和服务主机之间的内存映射;进程释放内存时客户主机将借用的物理内存归还给服务主机。整个过程中客户主机进程不会感觉到与使用本地内存有任何差异,实现细节全部由操作系统屏蔽。通过主机节点角色的转换,可实现主机节点间互相借用物理内存,达到主机节点间物理内存共享的目的。

【技术实现步骤摘要】

本专利技术涉及计算机操作系统内核中内存管理,具体是一种云集群环境中主机间物 理内存共享的方法。
技术介绍
云计算、分布式等相关技术在近几年来得到迅猛发展,改变了用户使用计算机的 方式和信息处理的计算模式。云计算技术使得用户无需像从前一样购买计算机硬件资源, 而只需购买硬件的存储、计算能力即可;分布式技术实现了大数据的并行处理,提升了处理 效率,节约了处理时间。 这些技术的实现与应用都需要相应的软件硬件环境的支持,由于单个计算机的性 能有限,计算机的组织形式不再是分散式的,而是以集群的形式出现。集群环境通过对计算 机软件硬件资源实行集中化管理、按需分配,提升了服务性能、任务吞吐量和软件硬件资源 的利用率。但集群环境并不是完全理想化的,集群在物理上仍然由是多个物理主机组成,各 计算机拥有自己的操作系统和独立的硬件资源。逻辑上是通过在操作系统层面之上的安装 中间件,中间件之间相互通信实现主机资源的集中使用的。这样的结构带来了很多问题,如 中间件需要针对应用进行特定的开发,增加了集群的管理难度,增加了开发人员的开发难 度等。 内存是计算机运行当中使用量非常大的物理资源之一,由于成本、硬件环境等因 素限制,单台主机内存资源有限且容量固定,会造成内存资源不足或浪费。为解决此问题, 设计一种主机间内存共用的方式,实现内存的高效利用成为一项热门研究内容。公开号 CN102609305A,公开日2012 - 07 - 25,名称为"一种服务器集群中内存共享方法"的中国专 利文献,提出了一种集群中服务器间内存共享方法,但该方案中需要应用程序参与内存的 共享过程,没有实现对应用程序的透明处理。公开号CN1972215A,公开日2007 - 05 - 30, 名称为"一种远程内存共享系统及其实现方法"的中国专利文献,提出的内存共享系统 由多个计算结点、一个管理器和一个内存服务器组成,当计算结点不能满足应用的内 存需求时结点才会向管理器申请内存从其他结点分配内存块;内存块以应用为单位分 配,并通过多个列表进行管理,造成了寻址困难,运行开销大。文献(Niswar Muh, Sabri A. Auliaj ffarni Elly, Musa Muh Nur. Memory sharing management on virtual private server . 2013International Conference on ICT for Smart Society (ICISS), 2013.) 公开为提升虚拟服务器性能,提出一种内存资源共享方法,虚拟服务器可以将自己的内存 借给其他内存资源趋于用尽的虚拟服务器。提出的共享内存方法在一定程度上均提升了虚 拟机或主机的性能,因此设计一种主机间动态借用内存装置实现内存在主机之间的借用有 助于提升主机性能。 现有应用技术已经在某种程度上实现了内存共享。文献(MemoryCached . http://memcached. org/about. 2009 - 4 - 20/2015 - 4 - 25.)中提到的 MemCached 实现了 一种分布式内存缓存系统,该系统中存在一个服务器结点和多个客户端结点,服务器结点 将客户端节点的空闲缓存在逻辑上集中起来,并统一向外提供服务。该系统通过在系统中 安装中间件的方式实现服务器节点和客户端节点的功能,并提供了用于操作的API接口。 这种"一个服务节点+多个客户节点"的模式被广泛应用在资源共享的解决方案当中,如 Hadoop、HBase 等。 随着计算机软硬件技术的成熟,通过网络共享物理设备已经有一些成熟的技术。 常见的商业版操作系统(如Windows、Ubuntu等)当中均包含打印机共享功能,该功能使得 多台计算机可以使用同一台打印机,而不必为每一台计算机都配备打印机,节约了硬件成 本。该技术使用最为广泛,常见于办公环境或家庭环境当中。此外,KVM虚拟化技术实现的 VMffare和VirtualBox,Xen虚拟化技术实现的XenServer等虚拟化平台已经日趋成熟并得 到了广泛的应用,在这些平台上,用户可以根据自己需要调整虚拟机的性能,如内存大小, 硬盘大小等。虚拟机中的设备全部都是通过虚拟化技术虚拟出来的,用户使用过程中不会 感觉到与使用实际的硬件设备有任何差别。这些实例及平台的成功实现表明,将内存虚拟 化并通过网络共享是存在理论基础和实现的可行性的。 现有技术内存共享方法主要针对的是特定体系结构的主机而设计的。需要为每个 节点设置信息收集处理模块、内存申请模块、远端链接管理模块和通信模块等,当某一节点 内存不足时,收集节点信息,并向其他空闲节点发送内存申请,以此来平衡空闲内存在各个 内存节点的分布,提升主机性能。该方法针对的是主机内存节点之间内存共享的问题,而不 是针对云计算集群主机间内存共享的。 节点分为多种角色,节点间不是完全对等关系。在节点有实现内存共享和管理内 存块的内存池驱动模块;所有计算结点的内存池驱动模块为远程内存共享系统提供的物理 内存和内存服务器所提供的内存组成一个内存池,内存池中的内存供各计算节点共享。由 于存在一个管理节点和多个内存服务器,内存的共享过程需要管理节点进行处理;当管理 节点失效时,整个系统就无法运行。如果将主机节点之间的关系看作是完全对等关系,则当 前存在的方法在节点之间内存共享上是无法实现的。内存共享不透明。内存服务器的虚拟 内存管理器为应用程序分配虚拟内存后,根据虚拟内存的地址构造重定向文件读写代码; 执行读写代码前,在代码缓冲区指令前增加间接跳转指令,使缓冲区指令被执行时,可以从 虚拟内存获取数据。该方法需要修改应用程序中的指令调用方式才可以使用共享的内存, 某种程度上开发人员需要重新考虑软件设计与实现的问题。根据物理机上的各个虚拟机所 属的用户,将所述物理机上的虚拟机划分为至少两个用户组,每个用户组内的虚拟机共享 一个进程,不同的用户组对应不同的进程;通过进程扫描对应的用户组内的虚拟机所占用 的存储重复数据的内存页面;对存储重复数据的内存页面进行删除冗余数据处理。该方法 在一定程度上降低了物理内存的重复率,但没有提供单台物理主机内存不足时解决方法。
技术实现思路
本专利技术针对现有技术存在的上述问题,提出一种云集群主机节点间物理内存共享 方法,该方法采用一种临时借用策略。设置两种角色的物理主机:服务主机和客户主机。客 户主机可申请向服务主机临时借用内存资源,服务主机可将自身空闲内存资源临时借用给 客户主机,两者均处于集群环境中,通过高速网络相互连接。某一台物理主机既可以是服务 主机也可以是客户主机,两种角色是通过在操作系统中安装服务模块或客户模块实现的。 模块在内核模式下实现,在客户主机内存不足时,客户模块自动向服务主机借用内存资源, 而不需要应用程序的参与,保证了对现有应用程序的兼容性。客户模块将借用的内存映射 到虚拟内存对象当中,操作虚拟内存对象的方式与操作物理内存对象的方式相同,模块屏 蔽了实现细节的不同,实现了向上的透明性。 本专利技术提供一种主机间物理内存借用的方法,内存借出方主机和内存借入方主机 的操作系统分别安装相应的内核模块,内核模块工作于操作系统内核中,本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN105094997.html" title="一种云计算主机节点间物理内存共享方法和系统原文来自X技术">云计算主机节点间物理内存共享方法和系统</a>

【技术保护点】
一种云计算主机间物理内存借用的方法,其特征在于:服务主机内核模块响应客户主机的借用请求,并注册一个内存池对象,维护一个内存池信息表MemPoolTable;客户主机内核模块创建一个虚拟内存对象,维护一个记录了借用远端内存在虚拟内存对象中映射情况的列表MemMapTable,以及一个服务主机列表ServerList;当客户主机本地内存不足,需要扩展系统内存,自动开启远程内存扩展机制;客户主机从ServerList中选择一个服务主机发送服务请求;如满足借用条件,服务主机从本地分配相应的物理内存资源返回至客户主机,并与客户主机建立必要的数据通信连接与内存映射;客户主机进程申请内存分配,将借来的内存资源映射到虚拟内存对象中,并调整虚拟内存对象容量CVMT和虚拟内存对象空闲量CVMF的值,完成远端内存的借用和映射。

【技术特征摘要】

【专利技术属性】
技术研发人员:程克非郭鹏飞李琳
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;85

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

1