[发明专利]一种内存迁移方法、装置及设备在审
申请号: | 201310239708.8 | 申请日: | 2013-06-17 |
公开(公告)号: | CN103324582A | 公开(公告)日: | 2013-09-25 |
发明(设计)人: | 符德煌;朱朋志 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/06 | 分类号: | G06F12/06 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 迁移 方法 装置 设备 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存迁移方法、装置及设备。
背景技术
在服务器系统中,内存是系统运行的关键模块之一,部署在操作系统上的应用业务以进程的形式存在,在其运行的过程中需要依据应用业务的负载量来动态的向系统申请定量的内存才能够正常运行。
图1所示为现有技术中应用业务使用内存的示意图,图1的应用系统100中应用业务(简称为APP)以进程的形式存在,一个应用业务系统可以包含数个业务进程,如102-1,…102-N,这些进程在运行时必须要向操作系统OS管理下的内存模块申请一定量的内存才能运行,在OS下,OS给内存编排地址,如模块103中的地址是从0x00000到0xfffff。当应用业务进程向OS申请内存时,OS将其中的某一段内存如103-1,103-3,103-4的内存段分给进程APP1,即给102-1使用,其它的APP进程亦是如此分到相应的内存。
而OS管理的内存是由系统中的物理内存101提供的,可用物理内存的总和通过基本输入输出系统BIOS上报给OS,OS由此感知到可用的内存总量,总物理内存由各个物理服务器节点上的物理内存组成,如101-1至101-N。
对OS而言,其通过BIOS能获取当前系统可用的内存的总容量,并将这个容量编排好地址,如103中的地址,从0x00000至0xfffff。从而将该地址分段,当进程向OS申请内存时,OS根据申请内存的大小,将这些内存段再分配给进程使用。
但是现有的内存也是最常发生故障的模块,如若正在被应用业务使用到的内存发生了故障,如内存硬件失效的致命故障,这将会引发使用该内存的应用业务产生异常,应用业务对应的进程丢失该内存上的数据,并造成业务的中断,而在如电信级别的应用业务中,业务中断是致命性的事件。
为了避免内存失效导致业务中断,现有技术中提供了一种内存保护方案,即:采用内存主备的方式,该种方式将系统的总体内存容量划分为2组容量一致的内存组,其中一组内存为主内存,而另一组内存为备内存,在应用业务运行时,应用业务使用的是主内存,应用业务的进程对主内存上进行的所有更新的数据都会同步的写入到备份内存中,当主内存失效时,即刻切换到备份内存上,从而可以避免在内存上数据的丢失。
但是,上述的主备内存的实现方式必须牺牲掉内存容量的一半,导致内存占用过大,并且该主备内存的实现方式也无法避免在主备内存同时失效时业务进程的中断。
发明内容
本发明实施例提供了一种内存迁移方法、装置及设备,能够将异常内存段中的进程相关数据迁移至分配的非异常状态的内存段中,从而解决了现有技术中存在的由于内存失效而导致内存中业务进程中断的技术问题,其具体的技术方案如下:
本发明实施例一方面,提供了一种内存迁移方法,所述方法包括:
检测是否存在处于异常状态的至少一个第一内存段;
当存在所述至少一个第一内存段时,生成内存迁移指令;
解析所述内存迁移指令,获取所述内存迁移指令中的内存信息参数,所述内存信息参数用于指示所述至少一个第一内存段是否对应有至少一个进程;
在确定所述至少一个第一内存段对应有所述至少一个进程时,将所述至少一个进程对应的进程相关数据从所述至少一个第一内存段迁移至处于非异常状态的至少一个第二内存段中保存。
结合第一方面,在第一种可能实现的方式,在所述检测是否存在处于异常状态的至少一个第一内存段之前,所述方法还包括:
按照内存分割规则,对系统的内存进行分割,生成M段内存段,其中,M为大于等于2的正整数;
获取所述M段内存段中每段内存段各自对应的物理地址,共计M个所述物理地址;
分别对应所述M段内存段中的每段内存段设置一个标签值,获得M个标签值,并将每段内存段对应的物理地址以及标签值添加到预设的内存管理列表中。
结合第一种可能实现的方式,在第二种可能实现的方式中,所述按照内存分割规则,对系统的内存进行分割,生成M段内存段,具体为:
按照预设内存分割单位,将所述系统中的内存分割为所述预设内存分割单位对应的所述M段内存段。
结合第一种可能实现的方式,在第三种可能实现的方式中,在所述将每段内存段对应的物理地址以及标签值添加到预设的内存管理列表中之后,所述方法还包括:
分别为所述系统中当前运行的每个进程分配所述M段内存段中的至少一个内存段;
获取每个进程分配到的所述至少一个内存段对应的物理地址以及标签值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310239708.8/2.html,转载请声明来源钻瓜专利网。