CN104102460A - 一种基于云计算的内存管理方法及装置 - Google Patents

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

Info

Publication number
CN104102460A
CN104102460A CN201410352763.2A CN201410352763A CN104102460A CN 104102460 A CN104102460 A CN 104102460A CN 201410352763 A CN201410352763 A CN 201410352763A CN 104102460 A CN104102460 A CN 104102460A
Authority
CN
China
Prior art keywords
address space
long
free memory
range free
logical extension
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410352763.2A
Other languages
English (en)
Inventor
侯德龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201410352763.2A priority Critical patent/CN104102460A/zh
Publication of CN104102460A publication Critical patent/CN104102460A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供了一种基于云计算的内存管理方法及装置,应用于云计算平台中;方法包括:采用逻辑扩展地址空间扩展本地的物理地址空间;采用全局扩展地址空间记录被本地使用的远程空闲内存;根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。本发明能够优化云计算中内存资源的利用。

Description

一种基于云计算的内存管理方法及装置
技术领域
本发明涉及计算机领域,具体涉及种基于云计算的内存管理方法及装置。
背景技术
云计算的兴起正在逐渐地改变整个计算机产业界和学术界,这种把计算机作为一种效能(utility)工具、把软件作为一种服务来使用计算机的方式为计算机软件和硬件设计都带来了巨大的挑战。在软件的构建和分发方式上,SOA(面向服务的软件结构)和SaaS(软件即服务)正越来越多地成为云计算模式下的软件构建和分发的核心方式。而对于支撑服务运行的底层计算基础设施,挑战主要集中在两个方面:***软件和硬件。其中,自适应性资源配置是***软件面临的最大挑战,如何分配资源又是这个挑战的最核心问题。根据峰值负载来静态分配资源,会带来资源的严重浪费。据统计,在当前的数据中心中,CPU资源的利用率平均在5%~20%之间,而内存资源的利用率也不超过60%。很明显,当前的资源分配模式具有很高的资源浪费度,增加了用户的总体拥有成本(TCO)。而以平均负载为基准来静态分配资源则会使得在峰值负载的情况下服务质量下降,并最终影响云用户的潜在利润。
发明内容
本发明要解决的技术问题是如何优化云计算中内存资源的利用。
为了解决上述问题,本发明提供了一种基于云计算的内存管理方法,应用于云计算平台中,包括:
采用逻辑扩展地址空间扩展本地的物理地址空间;
采用全局扩展地址空间记录被本地使用的远程空闲内存;
根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。
可选地,所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程空闲内存在该远程服务器中的地址段。
可选地,根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
可选地,所述的方法还包括:
当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
可选地,所述的方法还包括:
对所述远程空闲内存进行读写的命令通过Xen和Domain0之间的共享缓冲区由Xen发出,由Domain0中的Sw ap守护进程进行处理。
一种基于云计算的内存管理装置,应用于云计算平台中,包括:
虚拟机监控器,用于采用逻辑扩展地址空间扩展本地的物理地址空间;
控制台,用于采用全局扩展地址空间记录被本地使用的远程空闲内存;
地址映射模块,用于根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。
可选地,所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程空闲内存在该远程服务器中的地址段。
可选地,所述地址映射模块根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
可选地,所述地址映射模块还用于当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
本发明针对虚拟化云计算平台下的内存优化需要,构建了一种利用虚拟化技术来无缝聚合闲置内存资源的机制;在虚拟化云计算基础设施之上,引入了一种基于逻辑扩展地址空间和全局扩展地址空间的双层地址空间映射机制;利用该机制,重构了虚拟化云平台下内存层次结构,构建了基于冗余备份机制的高可靠性的扩展内存区来优化内存利用;通过扩展虚拟机监控器,实现了一种对虚拟机透明的闲置(及利用率不高的)页面回收机制,该机制对于不适合修改操作***代码而进行空闲内存回收的情形具有特别的意义。本发明通过跨越物理平台的寻址技术,实现对于远程空闲内存资源的访问,可以将低利用率的内存调配给内存利用率高的虚拟机使用,从而优化了整个内存资源的利用。
附图说明
图1为使用了实施例一的方法的***示意图;
图2为映射示意图;
图3是内存服务器页状态转换图;
图4是扩展的Xen***示意图;
图5是实施例二的装置的示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一、一种基于云计算的内存管理方法,包括:
采用逻辑扩展地址空间扩展本地的物理地址空间;
采用全局扩展地址空间记录被本地使用的远程空闲内存;
根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。
为了能够利用分布在整个平台各个物理服务器上的空闲内存资源,考虑到分布式平台的特性,本实施例引入了一个由双层地址空间映射构成的分布式内存池。双层地址空间的构建兼顾了效率和可靠性,提供最大程度的内存资源抽象。如图1所示,云计算平台中的各节点(节点1、节点2、……、节点n)中,虚拟机(VM)里低利用率的内存(比如图1里节点1和节点2中VM#1的内存)集中到空闲资源池,再提供给高利用率内存所在的虚拟机(比如图1里节点2和节点n中VM#k的内存)使用。
本实施例的一种实施方式中,所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程空闲内存在该远程服务器中的地址段。
本实施方式中,所述全局扩展地址空间可以采用<服务器ID,地址段>来标示远程空闲内存的地址构成;用于记录同一个远程服务器的多个远程空闲内存的全局扩展地址空间中,远程服务器标识相同,而地址段各不相同。
本实施方式中,可以根据空闲内存变化动态地调整全局扩展地址空间。远程服务器的空闲内存采用全局扩展地址空间标示后,再被映射到逻辑扩展地址空间。
本实施例的一种实施方式中,根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间;这样可以实现数据的冗余存储,提高远程内存的可靠性。
本实施方式如图2所示,逻辑扩展地址空间中同一段地址空间可以通过全局扩展地址空间分别与不同服务器、不同内存中的远程空闲内存相映射。
远程内存***的设计需要考虑两个方面的要求:(1)尽量缩短访存延迟,提高效率;(2)分布式***的可靠性问题,提供可靠稳定的基于内存的存储服务。本实施方式充分考虑了这两个方面的要求,通过全局扩展地址空间到逻辑扩展地址空间的多对一映射机制来达到高效可靠的目的。
本实施例的一种实施方式中,采用地址映射组件提供全局扩展地址空间和逻辑扩展地址空间之间的双向映射。
本实施方式中,通过维护相关的映射关系来提供高效可靠的远程内存存储抽象。地址映射组件支持两类基本的数据操作:数据存取和数据同步。其中,数据存取是基本的远程内存操作,实现对于远程数据的读取和写入。数据同步操作为远程空闲内存的退出提供支持。
本实施例的一种实施方式中,所述方法还可以包括:
当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
本实施方式中,当一个远程服务器因为自身负载增加需要收回共享的内存或者远程服务器无法正常提供内存服务时,***会主动或被动地启动数据同步操作来迁移数据备份到其它远程服务器上。采用数据同步方法从退出空闲内存的服务器迁移数据到其它远程服务器,可以实现数据存储的高可靠性,保证数据的有效性。
内存服务器页的状态转换如图3所示,对未初始化的页进行远程写或同步写后,页状态变为脏;对未初始化的页进行同步读或对脏页进行远程读后,页状态变为空闲;对空闲状态的页进行同步写后状态仍为空闲,进行远程写后变为脏;对脏页进行同步读后状态仍为脏。
本实施例的一种实施方式中,所述远程空闲内存除了包括未被分配的内存或虚拟机主动共享的内存外,还可以包括虚拟机内部由于数据访问模式的限制所存在的部分已经分配使用,但访问频率极低的内存空间。
为了最大程度地增加内存的共享度,本实施方式引入了一种对虚拟机透明的空闲页面回收技术。为了实现对于页面的透明回收,本实施方式扩展Xen(一种开放源代码虚拟机监视器)虚拟机监控器以实现基于内存页面访问信息的动态"偷取"运行时***。
扩展的Xen虚拟机监控器如图4所示,完成两个核心功能:(1)引入了逻辑扩展地址空间以支持远程内存访问;(2)对不在本地内存的页面提供透明寻址支持。
为了支持逻辑扩展地址空间,本实施方式修改了Xen虚拟机监控器中从虚假物理地址到机器地址的映射(p2m机制)部分,增加了新的地址类型来标示逻辑扩展地址空间。
当虚拟机访问逻辑扩展地址空间时,要么会触发一次缺页异常,要么触发逻辑扩展地址空间寻址机制。通过缺页异常处理和指令运行回滚运行时,虚拟机被暂停执行以等待页面重新被装入本地内存;当页面被重新装入本地内存时,p2m被重新设置以指向新装入的内存页面。如果是半虚拟化情况,缺页异常的处理流程会继续。而在全虚拟化时,异常重播机制将发挥作用以重新调度虚拟机执行,恢复异常的处理过程。
指令运行回滚运行时***截取在指令模拟执行过程中对逻辑扩展地址空间的访问,触发逻辑扩展地址空间访问异常并逐级往上层函数传递,直到执行逻辑到达虚拟机陷入到Xen的入口点。在那里,虚拟机被暂停,对逻辑扩展地址空间的操作命令通过共享内存空间传递给Domain0。当数据返回后,指令模拟操作或异常处理操作被继续执行,虚拟机重新被调度。
本实施方式中,对远程空闲内存进行读写的命令通过Xen和Domain0之间的共享缓冲区由Xen发出,Domain0中的Sw ap守护进程负责具体处理。这样做的原因在于Xen本身缺乏网络协议栈,且这样的设计可以很大程度地提高***弹性。
在Domain0中,本实施方式实现了弹性的全局扩展地址空间管理机制。其中,每段连续的地址空间(地址段)由一个地址空间描述符和空间范围来表示,每个远程服务器可以包含一个或多个地址空间。通过映射多个地址空间到同一段逻辑扩展地址空间上,可以实现数据的冗余存储。通过模块的形式,本实施方式支持两种形式的外部存储:远程空闲内存和本地内存。把本地内存和远程内存叠加映射,可以获取具有高可靠性、高性能的附加存储***。
本实施方式可以通过mmap的方式实现基于共享页的、与Xen之间的信息通信,Xen通过共享的消息通道传递请求给Domain0。在Domain0中,守护进程KXenSw ap内核线程被创建以相应从Xen中发出的控制命令,如远程内存的读写操作。当KXenSw ap通过驱动完成了相关命令后,一个新的Hypercall被调用通知Xen完成后续的p2m表修改、页表更新等过程以恢复虚拟机的调度执行。
实施例二、一种基于云计算的内存管理装置,应用于云计算平台中,如图5所示,包括:
虚拟机监控器,用于采用逻辑扩展地址空间扩展本地的物理地址空间;
控制台,用于采用全局扩展地址空间记录被本地使用的远程空闲内存;
地址映射模块,用于根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。
本实施例中,所述地址映射模块也可以作为地址映射组件集成在所述控制台中(如图5所示);虚拟机的内存空间除了来源于本地内存外,还来源于逻辑扩展地址空间通过全局扩展地址空间所映射的远程空闲内存;本地内存还可以为控制台提供内存空间。
本实施例的一种实施方式中,所述全局扩展地址空间可以包括远程空闲内存所在的远程服务器标识及远程空闲内存在该远程服务器中的地址段。
本实施例的一种实施方式中,所述地址映射模块根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
本实施例的一种实施方式中,所述地址映射模块还用于当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。

Claims (9)

1.一种基于云计算的内存管理方法,应用于云计算平台中,包括:
采用逻辑扩展地址空间扩展本地的物理地址空间;
采用全局扩展地址空间记录被本地使用的远程空闲内存;
根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。
2.如权利要求1所述的方法,其特征在于:
所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程空闲内存在该远程服务器中的地址段。
3.如权利要求1所述的方法,其特征在于:
根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
4.如权利要求1所述的方法,其特征在于,还包括:
当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
5.如权利要求1所述的方法,其特征在于,还包括:
对所述远程空闲内存进行读写的命令通过Xen和Domain0之间的共享缓冲区由Xen发出,由Domain0中的Sw ap守护进程进行处理。
6.一种基于云计算的内存管理装置,应用于云计算平台中,其特征在于,包括:
虚拟机监控器,用于采用逻辑扩展地址空间扩展本地的物理地址空间;
控制台,用于采用全局扩展地址空间记录被本地使用的远程空闲内存;
地址映射模块,用于根据预定规则进行所述全局扩展地址空间与所述逻辑扩展地址空间之间的双向映射。
7.如权利要求6所述的装置,其特征在于:
所述全局扩展地址空间包括远程空闲内存所在的远程服务器标识及远程空闲内存在该远程服务器中的地址段。
8.如权利要求6所述的装置,其特征在于:
所述地址映射模块根据预定规则进行全局扩展地址空间与逻辑扩展地址空间之间的双向映射时,是将多个远程服务器的远程空闲内存映射到一个逻辑扩展地址空间。
9.如权利要求6所述的装置,其特征在于:
所述地址映射模块还用于当远程空闲内存退出时,将该远程空闲内存中的数据逐页复制到另外的远程服务器提供的远程空闲内存中,将该另外的远程服务器提供的远程空闲内存加入所述全局扩展地址空间中,并映射到所退出的远程空闲内存原先所映射的同一段逻辑扩展地址空间上。
CN201410352763.2A 2014-07-23 2014-07-23 一种基于云计算的内存管理方法及装置 Pending CN104102460A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410352763.2A CN104102460A (zh) 2014-07-23 2014-07-23 一种基于云计算的内存管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410352763.2A CN104102460A (zh) 2014-07-23 2014-07-23 一种基于云计算的内存管理方法及装置

Publications (1)

Publication Number Publication Date
CN104102460A true CN104102460A (zh) 2014-10-15

Family

ID=51670642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410352763.2A Pending CN104102460A (zh) 2014-07-23 2014-07-23 一种基于云计算的内存管理方法及装置

Country Status (1)

Country Link
CN (1) CN104102460A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536905A (zh) * 2015-01-14 2015-04-22 浪潮(北京)电子信息产业有限公司 一种内存管理方法及***
CN104657198A (zh) * 2015-01-24 2015-05-27 深圳职业技术学院 Numa架构***在虚拟机环境中的访存优化方法及***
CN105278880A (zh) * 2015-10-19 2016-01-27 浪潮电子信息产业股份有限公司 一种基于云计算虚拟化的内存优化装置和方法
CN105988871A (zh) * 2015-01-27 2016-10-05 华为技术有限公司 一种远端内存分配方法、装置和***
CN106445691A (zh) * 2016-11-25 2017-02-22 郑州云海信息技术有限公司 一种面向虚拟化云计算平台的内存优化的方法
CN107786599A (zh) * 2016-08-26 2018-03-09 北京计算机技术及应用研究所 内存云***
WO2021218038A1 (zh) * 2020-04-28 2021-11-04 华为技术有限公司 一种存储***、内存管理方法和管理节点

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536905A (zh) * 2015-01-14 2015-04-22 浪潮(北京)电子信息产业有限公司 一种内存管理方法及***
CN104536905B (zh) * 2015-01-14 2018-02-02 浪潮(北京)电子信息产业有限公司 一种内存管理方法及***
CN104657198A (zh) * 2015-01-24 2015-05-27 深圳职业技术学院 Numa架构***在虚拟机环境中的访存优化方法及***
CN104657198B (zh) * 2015-01-24 2017-12-26 深圳职业技术学院 Numa架构***在虚拟机环境中的访存优化方法及***
CN105988871A (zh) * 2015-01-27 2016-10-05 华为技术有限公司 一种远端内存分配方法、装置和***
CN105278880A (zh) * 2015-10-19 2016-01-27 浪潮电子信息产业股份有限公司 一种基于云计算虚拟化的内存优化装置和方法
CN107786599A (zh) * 2016-08-26 2018-03-09 北京计算机技术及应用研究所 内存云***
CN107786599B (zh) * 2016-08-26 2020-07-17 北京计算机技术及应用研究所 内存云***
CN106445691A (zh) * 2016-11-25 2017-02-22 郑州云海信息技术有限公司 一种面向虚拟化云计算平台的内存优化的方法
WO2021218038A1 (zh) * 2020-04-28 2021-11-04 华为技术有限公司 一种存储***、内存管理方法和管理节点
US11861204B2 (en) 2020-04-28 2024-01-02 Huawei Technologies Co., Ltd. Storage system, memory management method, and management node

Similar Documents

Publication Publication Date Title
CN104102460A (zh) 一种基于云计算的内存管理方法及装置
US20220137849A1 (en) Fragment Management Method and Fragment Management Apparatus
US10909072B2 (en) Key value store snapshot in a distributed memory object architecture
AU2015211305B2 (en) Prioritizing data reconstruction in distributed storage systems
CN102467408B (zh) 一种虚拟机数据的访问方法和设备
CN108292235B (zh) 使用选择性资源迁移的网络附连存储器
CN104111897A (zh) 一种数据处理方法、装置及计算机***
US20140181042A1 (en) Information processor, distributed database system, and backup method
US9448934B2 (en) Affinity group access to global data
CN105051695A (zh) 不可变可共享零复制数据和流传输
CN108694076A (zh) 多节点存储操作
CN105103136A (zh) 共享和受管的存储器统一访问
US8943291B2 (en) Reorganization of software images based on predicted use thereof
CN113569508B (zh) 基于id进行数据索引与访问的数据库模型构建方法及设备
CN105468296A (zh) 基于虚拟化平台的无共享存储管理方法
CN102597972B (zh) 虚拟计算机***、区域管理方法
CN111727425A (zh) 通过日志记录对上层共享缓存的流入量以及下层缓存之间的缓存一致性协议转换来进行跟踪记录
CN105378673A (zh) 零复制高速缓存
CN107577492A (zh) 加速文件***读写的nvm块设备驱动方法及***
CN106445691A (zh) 一种面向虚拟化云计算平台的内存优化的方法
CN105278880A (zh) 一种基于云计算虚拟化的内存优化装置和方法
Bayati et al. Exploring benefits of nvme ssds for bigdata processing in enterprise data centers
CN104050093A (zh) 用于追踪统一虚拟存储器***中的页面故障的故障缓冲区
CN105183738A (zh) 一种基于血统和检测点技术的分布式内存文件***
Craddock et al. The Case for Physical Memory Pools: A Vision Paper

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20141015