一种基于云计算的内存管理方法及装置制造方法

文档序号:6621057阅读:357来源:国知局
一种基于云计算的内存管理方法及装置制造方法
【专利摘要】本发明提供了一种基于云计算的内存管理方法及装置,应用于云计算平台中;方法包括:采用逻辑扩展地址空间扩展本地的物理地址空间;采用全局扩展地址空间记录被本地使用的远程空闲内存;根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。本发明能够优化云计算中内存资源的利用。
【专利说明】-种基于云计算的内存管理方法及装置

【技术领域】
[0001] 本发明涉及计算机领域,具体涉及种基于云计算的内存管理方法及装置。

【背景技术】
[0002] 云计算的兴起正在逐渐地改变整个计算机产业界和学术界,这种把计算机作为一 种效能(utility)工具、把软件作为一种服务来使用计算机的方式为计算机软件和硬件 设计都带来了巨大的挑战。在软件的构建和分发方式上,S0A(面向服务的软件结构)和 SaaS (软件即服务)正越来越多地成为云计算模式下的软件构建和分发的核心方式。而对 于支撑服务运行的底层计算基础设施,挑战主要集中在两个方面:系统软件和硬件。其中, 自适应性资源配置是系统软件面临的最大挑战,如何分配资源又是这个挑战的最核心问 题。根据峰值负载来静态分配资源,会带来资源的严重浪费。据统计,在当前的数据中心中, CPU资源的利用率平均在5 %?20 %之间,而内存资源的利用率也不超过60 %。很明显,当 前的资源分配模式具有很高的资源浪费度,增加了用户的总体拥有成本(TC0)。而以平均负 载为基准来静态分配资源则会使得在峰值负载的情况下服务质量下降,并最终影响云用户 的潜在利润。


【发明内容】

[0003] 本发明要解决的技术问题是如何优化云计算中内存资源的利用。
[0004] 为了解决上述问题,本发明提供了一种基于云计算的内存管理方法,应用于云计 算平台中,包括:
[0005] 采用逻辑扩展地址空间扩展本地的物理地址空间;
[0006] 采用全局扩展地址空间记录被本地使用的远程空闲内存;
[0007] 根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向 映射。
[0008] 可选地,所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程 空闲内存在该远程服务器中的地址段。
[0009] 可选地,根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映 射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
[0010] 可选地,所述的方法还包括:
[0011] 当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务 器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展 地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
[0012] 可选地,所述的方法还包括:
[0013] 对所述远程空闲内存进行读写的命令通过Xen和DomainO之间的共享缓冲区由 Xen发出,由DomainO中的Sw ap守护进程进行处理。
[0014] 一种基于云计算的内存管理装置,应用于云计算平台中,包括:
[0015] 虚拟机监控器,用于采用逻辑扩展地址空间扩展本地的物理地址空间;
[0016] 控制台,用于采用全局扩展地址空间记录被本地使用的远程空闲内存;
[0017] 地址映射模块,用于根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地 址空间之间的双向映射。
[0018] 可选地,所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程 空闲内存在该远程服务器中的地址段。
[0019] 可选地,所述地址映射模块根据预定规则进行全局扩展地址空间与逻辑扩展地址 空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空 间。
[0020] 可选地,所述地址映射模块还用于当远程空闲内存退出时,将该远程空闲内存中 的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供 的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映 射的同一段逻辑扩展地址空间上。
[0021] 本发明针对虚拟化云计算平台下的内存优化需要,构建了一种利用虚拟化技术来 无缝聚合闲置内存资源的机制;在虚拟化云计算基础设施之上,引入了一种基于逻辑扩展 地址空间和全局扩展地址空间的双层地址空间映射机制;利用该机制,重构了虚拟化云平 台下内存层次结构,构建了基于冗余备份机制的高可靠性的扩展内存区来优化内存利用; 通过扩展虚拟机监控器,实现了一种对虚拟机透明的闲置(及利用率不高的)页面回收机 制,该机制对于不适合修改操作系统代码而进行空闲内存回收的情形具有特别的意义。本 发明通过跨越物理平台的寻址技术,实现对于远程空闲内存资源的访问,可以将低利用率 的内存调配给内存利用率高的虚拟机使用,从而优化了整个内存资源的利用。

【专利附图】

【附图说明】
[0022] 图1为使用了实施例一的方法的系统示意图;
[0023] 图2为映射示意图;
[0024] 图3是内存服务器页状态转换图;
[0025] 图4是扩展的Xen系统示意图;
[0026] 图5是实施例二的装置的示意图。

【具体实施方式】
[0027] 下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0028] 需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结 合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况 下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0029] 实施例一、一种基于云计算的内存管理方法,包括:
[0030] 采用逻辑扩展地址空间扩展本地的物理地址空间;
[0031] 采用全局扩展地址空间记录被本地使用的远程空闲内存;
[0032] 根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向 映射。
[0033] 为了能够利用分布在整个平台各个物理服务器上的空闲内存资源,考虑到分布式 平台的特性,本实施例引入了一个由双层地址空间映射构成的分布式内存池。双层地址空 间的构建兼顾了效率和可靠性,提供最大程度的内存资源抽象。如图1所示,云计算平台中 的各节点(节点1、节点2、……、节点η)中,虚拟机(VM)里低利用率的内存(比如图1里 节点1和节点2中VM#1的内存)集中到空闲资源池,再提供给高利用率内存所在的虚拟机 (比如图1里节点2和节点η中VM#k的内存)使用。
[0034] 本实施例的一种实施方式中,所述全局扩展地址空间包括远程空闲内存所在的远 程服务器标识及远程空闲内存在该远程服务器中的地址段。
[0035] 本实施方式中,所述全局扩展地址空间可以采用〈服务器ID,地址段〉来标示远 程空闲内存的地址构成;用于记录同一个远程服务器的多个远程空闲内存的全局扩展地址 空间中,远程服务器标识相同,而地址段各不相同。
[0036] 本实施方式中,可以根据空闲内存变化动态地调整全局扩展地址空间。远程服务 器的空闲内存采用全局扩展地址空间标示后,再被映射到逻辑扩展地址空间。
[0037] 本实施例的一种实施方式中,根据预定规则进行全局扩展地址空间与逻辑扩展地 址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址 空间;这样可以实现数据的冗余存储,提高远程内存的可靠性。
[0038] 本实施方式如图2所示,逻辑扩展地址空间中同一段地址空间可以通过全局扩展 地址空间分别与不同服务器、不同内存中的远程空闲内存相映射。
[0039] 远程内存系统的设计需要考虑两个方面的要求:(1)尽量缩短访存延迟,提高效 率;(2)分布式系统的可靠性问题,提供可靠稳定的基于内存的存储服务。本实施方式充分 考虑了这两个方面的要求,通过全局扩展地址空间到逻辑扩展地址空间的多对一映射机制 来达到高效可靠的目的。
[0040] 本实施例的一种实施方式中,采用地址映射组件提供全局扩展地址空间和逻辑扩 展地址空间之间的双向映射。
[0041] 本实施方式中,通过维护相关的映射关系来提供高效可靠的远程内存存储抽象。 地址映射组件支持两类基本的数据操作:数据存取和数据同步。其中,数据存取是基本的远 程内存操作,实现对于远程数据的读取和写入。数据同步操作为远程空闲内存的退出提供 支持。
[0042] 本实施例的一种实施方式中,所述方法还可以包括:
[0043] 当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务 器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展 地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
[0044] 本实施方式中,当一个远程服务器因为自身负载增加需要收回共享的内存或者远 程服务器无法正常提供内存服务时,系统会主动或被动地启动数据同步操作来迁移数据 备份到其它远程服务器上。采用数据同步方法从退出空闲内存的服务器迁移数据到其它远 程服务器,可以实现数据存储的高可靠性,保证数据的有效性。
[0045] 内存服务器页的状态转换如图3所示,对未初始化的页进行远程写或同步写后, 页状态变为脏;对未初始化的页进行同步读或对脏页进行远程读后,页状态变为空闲;对 空闲状态的页进行同步写后状态仍为空闲,进行远程写后变为脏;对脏页进行同步读后状 态仍为脏。
[0046] 本实施例的一种实施方式中,所述远程空闲内存除了包括未被分配的内存或虚拟 机主动共享的内存外,还可以包括虚拟机内部由于数据访问模式的限制所存在的部分已经 分配使用,但访问频率极低的内存空间。
[0047] 为了最大程度地增加内存的共享度,本实施方式引入了一种对虚拟机透明的空闲 页面回收技术。为了实现对于页面的透明回收,本实施方式扩展Xen (-种开放源代码虚拟 机监视器)虚拟机监控器以实现基于内存页面访问信息的动态"偷取"运行时系统。
[0048] 扩展的Xen虚拟机监控器如图4所示,完成两个核心功能:(1)引入了逻辑扩展地 址空间以支持远程内存访问;(2)对不在本地内存的页面提供透明寻址支持。
[0049] 为了支持逻辑扩展地址空间,本实施方式修改了 Xen虚拟机监控器中从虚假物理 地址到机器地址的映射(p2m机制)部分,增加了新的地址类型来标示逻辑扩展地址空间。
[0050] 当虚拟机访问逻辑扩展地址空间时,要么会触发一次缺页异常,要么触发逻辑扩 展地址空间寻址机制。通过缺页异常处理和指令运行回滚运行时,虚拟机被暂停执行以等 待页面重新被装入本地内存;当页面被重新装入本地内存时,p2m被重新设置以指向新装 入的内存页面。如果是半虚拟化情况,缺页异常的处理流程会继续。而在全虚拟化时,异常 重播机制将发挥作用以重新调度虚拟机执行,恢复异常的处理过程。
[0051] 指令运行回滚运行时系统截取在指令模拟执行过程中对逻辑扩展地址空间的访 问,触发逻辑扩展地址空间访问异常并逐级往上层函数传递,直到执行逻辑到达虚拟机陷 入到Xen的入口点。在那里,虚拟机被暂停,对逻辑扩展地址空间的操作命令通过共享内存 空间传递给DomainO。当数据返回后,指令模拟操作或异常处理操作被继续执行,虚拟机重 新被调度。
[0052] 本实施方式中,对远程空闲内存进行读写的命令通过Xen和DomainO之间的共享 缓冲区由Xen发出,DomainO中的Sw ap守护进程负责具体处理。这样做的原因在于Xen本 身缺乏网络协议栈,且这样的设计可以很大程度地提高系统弹性。
[0053] 在DomainO中,本实施方式实现了弹性的全局扩展地址空间管理机制。其中,每段 连续的地址空间(地址段)由一个地址空间描述符和空间范围来表示,每个远程服务器可 以包含一个或多个地址空间。通过映射多个地址空间到同一段逻辑扩展地址空间上,可以 实现数据的冗余存储。通过模块的形式,本实施方式支持两种形式的外部存储:远程空闲内 存和本地内存。把本地内存和远程内存叠加映射,可以获取具有高可靠性、高性能的附加 存储系统。
[0054] 本实施方式可以通过mmap的方式实现基于共享页的、与Xen之间的信息通信,Xen 通过共享的消息通道传递请求给DomainO。在DomainO中,守护进程KXenSw ap内核线程被 创建以相应从Xen中发出的控制命令,如远程内存的读写操作。当KXenSw ap通过驱动完 成了相关命令后,一个新的Hypercall被调用通知Xen完成后续的p2m表修改、页表更新等 过程以恢复虚拟机的调度执行。
[0055] 实施例二、一种基于云计算的内存管理装置,应用于云计算平台中,如图5所示, 包括:
[0056] 虚拟机监控器,用于采用逻辑扩展地址空间扩展本地的物理地址空间;
[0057] 控制台,用于采用全局扩展地址空间记录被本地使用的远程空闲内存;
[0058] 地址映射模块,用于根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地 址空间之间的双向映射。
[0059] 本实施例中,所述地址映射模块也可以作为地址映射组件集成在所述控制台中 (如图5所示);虚拟机的内存空间除了来源于本地内存外,还来源于逻辑扩展地址空间通 过全局扩展地址空间所映射的远程空闲内存;本地内存还可以为控制台提供内存空间。
[0060] 本实施例的一种实施方式中,所述全局扩展地址空间可以包括远程空闲内存所在 的远程服务器标识及远程空闲内存在该远程服务器中的地址段。
[0061] 本实施例的一种实施方式中,所述地址映射模块根据预定规则进行全局扩展地址 空间与逻辑扩展地址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到 一个逻辑扩展地址空间。
[0062] 本实施例的一种实施方式中,所述地址映射模块还用于当远程空闲内存退出时, 将该远程空闲内存中的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另 外的远程服务器提供的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远 程空闲内存原先所映射的同一段逻辑扩展地址空间上。
[0063] 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘 等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应 地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[〇〇64]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明的权利要求的保护范围。
【权利要求】
1. 一种基于云计算的内存管理方法,应用于云计算平台中,包括: 采用逻辑扩展地址空间扩展本地的物理地址空间; 采用全局扩展地址空间记录被本地使用的远程空闲内存; 根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。
2. 如权利要求1所述的方法,其特征在于: 所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程空闲内存在 该远程服务器中的地址段。
3. 如权利要求1所述的方法,其特征在于: 根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映射时,是将多 个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
4. 如权利要求1所述的方法,其特征在于,还包括: 当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务器提 供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展地址 空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
5. 如权利要求1所述的方法,其特征在于,还包括: 对所述远程空闲内存进行读写的命令通过Xen和DomainO之间的共享缓冲区由Xen发 出,由DomainO中的Sw ap守护进程进行处理。
6. -种基于云计算的内存管理装置,应用于云计算平台中,其特征在于,包括: 虚拟机监控器,用于采用逻辑扩展地址空间扩展本地的物理地址空间; 控制台,用于采用全局扩展地址空间记录被本地使用的远程空闲内存; 地址映射模块,用于根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空 间之间的双向映射。
7. 如权利要求6所述的装置,其特征在于: 所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程空闲内存在 该远程服务器中的地址段。
8. 如权利要求6所述的装置,其特征在于: 所述地址映射模块根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的 双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
9. 如权利要求6所述的装置,其特征在于: 所述地址映射模块还用于当远程空闲内存退出时,将该远程空闲内存中的数据逐页复 制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内 存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻 辑扩展地址空间上。
【文档编号】G06F3/06GK104102460SQ201410352763
【公开日】2014年10月15日 申请日期:2014年7月23日 优先权日:2014年7月23日
【发明者】侯德龙 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1