资源迁移方法、装置及系统转让专利

申请号 : CN201180001882.8

文献号 : CN102369511B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶炎钟王伟郭寒军裘稀石

申请人 : 华为技术有限公司

摘要 :

本发明实施例公开了一种资源迁移方法、装置及系统,涉及处理器领域,避免了跨节点内存访问及跨节点cache访问,节省了节点间高速带宽,提高了系统性能。本发明包括:在节点被移除时,获取所述节点内的进程;根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点;将所述节点内的进程及其对应的内存迁移到所述目标节点。本发明实施例主要应用于资源迁移的过程中。

权利要求 :

1.一种资源迁移方法,其特征在于,包括:

在节点被移除时,获取所述节点内的进程信息,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性;

根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点;

将所述节点内的进程及其对应的内存迁移到所述目标节点。

2.根据权利要求1所述的资源迁移方法,其特征在于,所述目标节点为待迁入节点,所述节点为待迁出节点,所述待迁入节点与待迁出节点不是同一个节点。

3.根据权利要求1所述的资源迁移方法,其特征在于,所述根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点,包括:分析所述进程与所述进程对应的内存之间的映射关系;

若发现所述对应的内存被多个进程使用,则将所述多个进程分为一组;

搜索满足分为一组的多个进程的亲缘性的节点,确定为所述分为一组的多个进程以及所述对应的内存迁移的目标节点。

4.根据权利要求3所述的资源迁移方法,其特征在于,在所述分析所述进程与所述进程对应的内存之间的映射关系之后,还包括:若发现多个进程对应的内存在所述节点以外的另一节点上,则将所述多个进程分为一组;

若所述另一节点满足所述分为一组的多个进程的亲缘性,则将所述另一节点确定为所述分为一组的多个进程迁移的目标节点;

若所述另一节点不满足所述分为一组的多个进程的亲缘性,则搜索满足所述分为一组的多个进程的亲缘性的节点,确定为所述分为一组的多个进程以及所述对应的内存迁移的目标节点。

5.根据权利要求1所述的资源迁移方法,其特征在于,所述将所述节点内的进程及其对应的内存迁移到所述目标节点,包括:根据携带在所述进程内的优先级,将所述节点内的进程及其对应的内存迁移到所述目标节点。

6.根据权利要求1所述的资源迁移方法,其特征在于,所述将所述节点内的进程及其对应的内存迁移到所述目标节点,包括:若所述节点内的进程及其对应的内存均不在所述目标节点,则先将所述节点内的进程对应的内存迁移到所述目标节点,再将所述节点内的所述进程迁移到所述目标节点;

若与所述节点内的进程对应的内存在所述目标节点,则将所述节点内的进程迁移到所述目标节点。

7.根据权利要求1-6任一项所述的资源迁移方法,其特征在于,在所述将所述节点内的进程及其对应的内存迁移到所述目标节点之后,该方法还包括:扫描所述节点内的所有内存,获取未处理的内存;

根据内存及其对应的进程的映射关系,获取所述未处理的内存对应的进程的运行情况;

若所述运行情况为处理中,则确定所述未处理的内存对应的进程所在的节点为所述未处理的内存迁移的目标节点;

若所述运行情况为阻塞,则搜索满足所述未处理的内存对应的进程亲缘性的节点,确定为所述未处理的内存迁移的目标节点;

将所述未处理的内存迁移到所述目标节点。

8.一种资源迁移装置,其特征在于,包括:

第一获取单元,用于在节点被移除时,获取所述节点内的进程信息,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性;

第一确定单元,用于根据所述第一获取单元获取的所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点;

第一迁移单元,用于将所述节点内的进程及其对应的内存迁移到所述第一确定单元确定的所述目标节点。

9.根据权利要求8所述的资源迁移装置,其特征在于,该装置还包括:第二获取单元,用于扫描所述节点内的所有内存,获取未处理的内存;

第三获取单元,用于根据所述第二获取单元获取的所述未处理的内存及其对应的进程的映射关系,获取所述第二获取单元获取的所述未处理的内存对应的进程的运行情况;

第二确定单元,用于在所述第三获取单元获取的所述运行情况为处理中时,确定所述未处理的内存对应的进程所在的节点为所述未处理的内存迁移的目标节点;

第三确定单元,用于在所述第三获取单元获取的所述运行情况为阻塞时,搜索满足所述未处理的内存对应的进程亲缘性的节点,确定为所述未处理的内存迁移的目标节点;

第二迁移单元,用于将所述未处理的内存迁移到所述第二确定单元或所述第三确定单元确定的所述目标节点。

10.一种资源迁移系统,所述系统包括多个节点,每个节点包括CPU和内存,所述多个节点包括:待迁入节点,待迁出节点及控制节点,其特征在于,包括:控制节点上的CPU,用于在待迁出节点被移除时,获取所述待迁出节点内的进程信息,根据所述进程信息,确定所述进程及其对应的内存迁移的所述待迁入节点,将所述待迁出节点内的进程及其对应的内存迁移到所述待迁入节点;

其中,所述进程信息包括进程与其对应的内存的映射关系及所述进程的亲缘性。

11.根据权利要求10所述的资源迁移系统,其特征在于,包括:所述控制节点上的CPU,还用于扫描所述待迁出节点内的所有内存,获取未处理的内存,根据所述未处理的内存及其对应的进程的映射关系,获取所述未处理的内存对应的进程的运行情况,在所述运行情况为处理中时,确定所述未处理的内存对应的进程所在的节点为所述未处理的内存迁移的待迁入节点;在所述运行情况为阻塞时,搜索满足所述未处理的内存对应的进程亲缘性的节点,确定为所述未处理的内存迁移的待迁入节点,将所述未处理的内存迁移到所述待迁入节点。

说明书 :

资源迁移方法、装置及系统

技术领域

[0001] 本发明涉及处理器技术领域,尤其涉及资源迁移方法、装置及系统。

背景技术

[0002] 服务器系统在运行的情况下,在系统里将某个设备或节点进行插入或移除时,不能影响系统的正常运行。目前,Linux内核实现了对逻辑CPU的插入或移除操作,以及以section(区域)为单位的内存上插入或移除移除。目前,将所述两种技术方案被应用在节点被移除过程中,节点被移除时,所述节点内的内存信息将以section为单元迁移到其它空闲的内存中;同时,所述节点内的逻辑CPU内的进程迁移到其它逻辑CPU内。所述内存信息和所述进程是分开进行迁移的。
[0003] 在实现上述资源迁移方法、装置及系统的过程中,发明人发现现有技术中至少存在如下问题:目前,节点被移除过程中,由于所述节点内的进程与所述节点内的内存信息是分开进行迁移的,会造成所述节点内的进程及其对应的所述节点内的内存信息迁移到不同节点上,造成跨节点内存访问及跨节点cache(高速缓存存储器)访问,占用了节点间高速带宽,降低了系统性能。

发明内容

[0004] 本发明的实施例提供一种资源迁移的方法、装置及系统,避免了跨节点内存访问及跨节点cache访问,节省了节点间高速带宽,提高了系统性能。
[0005] 为达到上述目的,本发明的实施例采用如下技术方案:
[0006] 一种资源迁移的方法,包括:
[0007] 在节点被移除时,获取所述节点内的进程信息,所述进程信息包括进程与所述对应的内存之间的映射关系及所述进程的亲缘性;
[0008] 根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点;
[0009] 将所述节点内的进程及其对应的内存迁移到所述目标节点。
[0010] 一种资源迁移的装置,包括:
[0011] 第一获取单元,用于在节点被移除时,获取所述节点内的进程信息,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性;
[0012] 第一确定单元,用于根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点;
[0013] 第一迁移单元,用于将所述节点内的进程及其对应的内存迁移到所述目标节点。
[0014] 一种资源迁移的系统,所述系统包括多个节点,每个节点包括CPU和内存,所述多个节点包括:待迁入节点,待迁出节点及控制节点,包括:
[0015] 控制节点上的CPU,用于在待迁出节点被移除时,获取所述待迁出节点内的进程信息,根据所述进程信息,确定所述进程及其对应的内存迁移的所述待迁入节点,将所述待迁出节点内的进程及其对应的内存迁移到所述待迁入节点。
[0016] 其中,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性。
[0017] 本发明实施例提供的资源迁移方法、装置及系统,在节点被移除时,根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点,并将所述节点内的进程及其对应的内存迁移到所述目标节点,使得所述节点内的进程及其对应的内存可以迁移到同一个目标节点上,避免了跨节点内存访问及跨节点cache访问,节省了节点间高速带宽,提高了系统性能。

附图说明

[0018] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0019] 图1为本发明实施例1提供的一种资源迁移的方法流程图;
[0020] 图2为本发明实施例2提供的一种资源迁移的方法流程图;
[0021] 图3为本发明实施例2提供的另一种资源迁移的方法流程图;
[0022] 图4为本发明实施例2提供的另一种资源迁移的方法流程图;
[0023] 图5为本发明实施例2提供的一种资源迁移方法的举例示意图;
[0024] 图6为本发明实施例3提供的另一种资源迁移装置的组成框图;
[0025] 图7为本发明实施例3提供的另一种资源迁移装置的组成框图;
[0026] 图8为本发明实施例3提供的另一种资源迁移装置的组成框图;
[0027] 图9为本发明实施例3提供的另一种资源迁移装置的组成框图;
[0028] 图10为本发明实施例3提供的另一种资源迁移装置的组成框图;
[0029] 图11为本发明实施例3提供的一种资源迁移系统的组成框图。

具体实施方式

[0030] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031] 实施例1
[0032] 本发明实施例提供了一种资源迁移方法,如图1所示,该方法包括:
[0033] 101、在节点被移除时,获取所述节点内的进程信息,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性。其中,所述进程可根据所述VMA(Virtual Memory Area,虚拟内存区域)映射关系查找到与所述进程对应的内存;所述亲缘性为所述进程被强制在某些特定节点上的某些特定CPU上执行的特性。
[0034] 102、根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点。
[0035] 103、将所述节点内的进程及其对应的内存迁移到所述目标节点。
[0036] 需要说明的是,在将所述节点内的进程及其对应的内存迁移到所述目标节点时,可以但不局限于由以下方法实现:根据携带在所述进程内的优先级将所述节点内的进程及其对应的内存迁移到所述目标节点,对于优先级较高的进程优先进行迁移。本发明实施例对此不做限制,用户可以根据具体要求进行设置。
[0037] 本发明实施例提供的资源迁移方法,在节点被移除时,根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点,并将所述节点内的进程及其对应的内存迁移到所述目标节点,使得所述节点内的进程及其对应的内存可以迁移到同一个目标节点上,避免了跨节点内存访问及跨节点cache访问,节省了节点间高速带宽,提高了系统性能。
[0038] 实施例2
[0039] 本发明实施例提供了一种资源迁移方法,如图2所示,具体以图5为例进行说明,该方法包括:
[0040] 201、在节点被移除时,获取所述节点内的进程信息,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性。
[0041] 具体的,在图5中,节点6为所述待被移除的所述节点,进程1000、1001、1005、2001、2003、2004、2006为所述节点内的进程。
[0042] 202、分析所述进程与所述进程对应的内存之间的映射关系。
[0043] 具体的,在图5中,与进程1000、1001、1005对应的内存在内存1上;与进程2001、2003对应的内存在内存1上;与进程2004、2006对应的内存在节点1的内存上。
[0044] 203、若发现所述对应的内存被多个进程使用,则将所述多个进程分为一组。
[0045] 其中,需要说明的是,所述将多个进程分为一组可以但不局限于根据以下方法,该方法包括:为每个分组内的所述多个进程分配相同的标识符。本发明实施例对此不进行限制,用户可根据实际情况具体设置。
[0046] 具体的,在图5中,由于内存1上有一部分内存被进程1000、1001、1005使用,则将进程1000、1001、1005分为一组,并标识为组1;由于内存1上有一部分内存被进程2001、2003使用,则将进程2001、2003分为一组。并标识为组2。
[0047] 204、搜索满足所述分为一组的多个进程的亲缘性的节点,确定为所述分为一组的多个进程以及所述对应的内存迁移的目标节点。
[0048] 具体的,在图5中,节点6及节点5为满足组1内进程1000、1001、1005亲缘性的节点;节点6及节点4为满足组1内进程2001、2003亲缘性的节点。
[0049] 优选的,为了避免节点6内的进程及与其对应的内存在节点6内进行迁移,选择节点5为满足组1内进程1000、1001、1005亲缘性的节点,并确定为组1内进程迁移的目标节点;选择节点4为满足组1内进程2001、2003亲缘性的节点,并确定为组2内进程迁移的目标节点。
[0050] 205、先将所述节点内的进程对应的内存迁移到所述目标节点,再将所述节点内的所述进程迁移到所述目标节点。
[0051] 具体的,在图5中,将组2内的进程2001、2003迁移到节点4;先将与组1内的进程1000、1001、1005对应的在内存1上的一部分内存迁移到节点5,然后将组1内的进程1000、
1001、1005迁移到节点5。
[0052] 由于根据所述进程与其对应的内存的映射关系及所述进程的亲缘性,确定的所述目标节点不包括所述节点,避免了所述进程及与其对应的内存在所述节点内进行迁移,缩短了所述节点被移除的时间。
[0053] 进一步的,为了减少不必要的内存迁移,缩短所述节点被移除时间,如图3所示,具体以图5为例进行说明,该方法还包括:
[0054] 301、若发现所述多个进程对应的内存在除所述节点以外的另一节点上,则将所述多个进程分为一组。
[0055] 具体的,在图5中,由于与进程2004、2006对应的内存在节点1上,则将进程2004、2006分为一组,并标记为组3。
[0056] 302、若所述另一节点满足所述分为一组的多个进程的亲缘性,则执行步骤303;否则执行步骤305。
[0057] 303、将所述另一节点确定为所述分为一组的多个进程迁移的目标节点。
[0058] 具体的,在图5中,若节点1满足进程2004、2006的亲缘性,则将节点1确定为组3内进程迁移的目标节点。
[0059] 304、将所述分为一组的多个进程迁移到所述目标节点。
[0060] 具体的,在图5中,将组3内的进程2004、2006迁移到节点1。
[0061] 305、搜索满足所述分为一组的多个进程的亲缘性的节点,确定为所述分为一组的多个进程以及所述对应的内存迁移的目标节点。
[0062] 具体的,在图5中,若节点1不满足进程2004、2006的亲缘性,则搜索除本节点外的满足组3内进程亲缘性的节点,并将该节点确定为组3内进程迁移的目标节点。
[0063] 306、将所述分为一组的多个进程以及所述对应的内存迁移到所述目标节点。
[0064] 具体的,在图5中,先将与组3内的进程2004、2006对应的在节点1上的内存迁移到所述目标节点,然后将组3内的进程2004、2006迁移到所述目标节点。
[0065] 由于将对应的内存在除所述节点外的另一节点的多个进程分为一组,并将所述多个进程迁移到所述另外一个节点,减少了不必要的内存迁移,缩短了所述节点被移除的时间。
[0066] 进一步的,为了保证所述节点被移除时所述节点内所有进程及内存迁移出去,在所述节点内的所有进程及其对应的内存迁移结束之后,如图4所示,具体以图5为例进行说明,该方法还包括:
[0067] 401、扫描所述节点内的所有内存,获取未处理的内存。
[0068] 具体的,在图5中,内存2及内存3为未处理的内存。
[0069] 402、根据所述未处理的内存及其对应的进程的映射关系,获取所述未处理的内存对应的进程的运行情况;若所述运行情况为处理中,则执行步骤403;若所述运行情况为阻塞,则执行步骤405。
[0070] 403、确定所述未处理的内存对应的进程所在的节点为所述未处理的内存迁移的目标节点。
[0071] 具体的,在图5中,由于与内存3对应的进程正在节点2上进行处理,则将节点2确定为内存3迁移的目标节点。
[0072] 404、将所述未处理的内存迁移到所述目标节点。
[0073] 具体的,在图5中,将内存3迁移到节点2。
[0074] 405、搜索满足所述未处理的内存对应的进程亲缘性的节点,确定为所述未处理的内存迁移的目标节点。
[0075] 具体的,在图5中,由于与内存2对应的进程出于阻塞状态,则搜索满足与内存2对应的进程亲缘性的节点;搜索到节点3为满足与内存2对应的进程亲缘性的节点,则将节点3确定为内存2迁移的目标节点。
[0076] 406、将所述未处理的内存迁移到所述目标节点。
[0077] 具体的,在图5中,将内存2迁移到节点3。
[0078] 由于在所述节点内的所有进程及与其对应的内存全部迁移之后,扫描所述节点,获取未处理的内存,确定所述未处理的内存迁移的目标节点,并进行迁移,使得所述节点被移除时,所述节点内所有进程及内存全部迁移出去,保证了所述节点被移除时信息不丢失。
[0079] 本发明实施例提供的资源迁移方法,在节点被移除时,根据所述进程与其对应的内存的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点,并将所述节点内的进程及其对应的内存迁移到所述目标节点,使得所述节点内的进程及其对应的内存可以迁移到同一个目标节点上,避免了跨节点内存访问及跨节点cache访问,节省了节点间高速带宽,提高了系统性能。
[0080] 实施例3
[0081] 本发明实施例提供了一种资源迁移装置,如图6所示,该装置包括:第一获取单元51、第一确定单元52、第一迁移单元53。
[0082] 第一获取单元51,用于在节点被移除时,获取所述节点内的进程信息,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性。
[0083] 第一确定单元52,用于根据所述第一获取单元51获取的所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点;其中,所述目标节点不包括所述节点。
[0084] 第一迁移单元53,用于将所述节点内的进程及其对应的内存迁移到所述第一确定单元52确定的所述目标节点。
[0085] 需要说明的是,在将所述节点内的进程及其对应的内存迁移到所述目标节点时,可以但不局限于由以下方法实现:根据携带在所述进程内的优先级将所述节点内的进程及其对应的内存迁移到所述第一确定单元52确定的所述目标节点,对于优先级较高的进程优先进行迁移。本发明实施例对此不做限制,用户可以根据具体要求进行设置。
[0086] 本发明实施例提供了一种资源迁移装置,如图7所示,所述第一确定单元52包括:第一分析模块521、第一分组模块522、第一确定模块523。
[0087] 第一分析模块521,用于分析所述进程与其对应的内存的映射关系。
[0088] 第一分组模块522,用于在所述第一分析模块521发现所述对应的内存被多个进程使用时,将所述多个进程分为一组。
[0089] 第一确定模块523,用于搜索满足由所述第一分组模块522分为一组的所述多个进程的亲缘性的节点,确定为由所述第一分组模块522分为一组的所述多个进程以及所述对应的内存迁移的目标节点。
[0090] 本发明实施例提供了一种资源迁移装置,如图8所示,所述第一确定单元52还包括:第二分组模块524、第二确定模块525、第三确定模块526。
[0091] 第二分组模块524,用于在所述第一分析模块521发现多个进程对应的内存在除所述节点外的另一节点时,将所述多个进程分为一组。
[0092] 第二确定模块525,用于在所述另一节点满足所述多个进程的亲缘性时,将所述另一节点确定为由所述第二分组模块524分为一组的所述多个进程迁移的目标节点。
[0093] 第三确定模块526,用于在所述另一节点不满足所述多个进程的亲缘性时,搜索满足由所述第二分组模块524分为一组的所述多个进程的亲缘性的节点,确定为由所述第二分组模块524分为一组的所述多个进程以及所述对应的内存迁移的目标节点。
[0094] 本发明实施例提供了一种资源迁移装置,如图9所示,所述第一迁移单元53包括:第一迁移模块531、第二迁移模块532。
[0095] 第一迁移模块531,用于在所述节点内的进程及其对应的内存均不在所述第一确定单元52确定的所述目标节点时,先将所述节点内的进程对应的内存迁移到所述第一确定单元52确定的所述目标节点,再将所述节点内的所述进程迁移到所述第一确定单元52确定的所述目标节点。
[0096] 第二迁移模块532,用于在与所述节点内的进程对应的内存在所述第一确定单元52确定的所述目标节点时,将所述节点内的进程迁移到所述第一确定单元52确定的所述目标节点。
[0097] 本发明实施例提供了一种资源迁移装置,如图10所示,该装置还包括:第二获取单元54、第三获取单元55、第二确定单元56、第三确定单元57、第二迁移单元58。
[0098] 第二获取单元54,用于扫描所述节点内的所有内存,获取未处理的内存。
[0099] 第三获取单元55,用于根据所述第二获取单元54获取的所述未处理的内存及其对应的进程的映射关系,获取所述第二获取单元54获取的所述未处理的内存对应的进程的运行情况。
[0100] 第二确定单元56,用于在所述第三获取单元55获取的所述运行情况为处理中时,确定所述未处理的内存对应的进程所在的节点为所述未处理的内存迁移的目标节点。
[0101] 第三确定单元57,用于在所述第三获取单元55获取的所述运行情况为阻塞时,搜索满足所述未处理的内存对应的进程亲缘性的节点,确定为所述未处理的内存迁移的目标节点。
[0102] 第二迁移单元58,用于将所述未处理的内存迁移到所述第二确定单元56或所述第三确定单元57确定的目标节点。
[0103] 本发明实施例提供了一种资源迁移系统,所述系统包括多个节点,每个节点包括CPU和内存,如图11所示,该系统包括:待迁入节点61、待迁出节点62、控制节点63。
[0104] 控制节点63上的CPU,用于在待迁出节点62被移除时,获取所述待迁出节点62内的进程信息,所述进程信息包括进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性;根据所述进程与其对应的内存的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的所述待迁入节点61;将所述待迁出节点62内的进程及其对应的内存迁移到所述待迁入节点61。
[0105] 所述控制节点63上的CPU,还用于扫描所述待迁出节点62内的所有内存,获取未处理的内存,根据所述未处理的内存及其对应的进程的映射关系,获取所述未处理的内存对应的进程的运行情况,在所述运行情况为处理中时,确定所述未处理的内存对应的进程所在的节点为所述未处理的内存迁移的待迁入节点61;在所述运行情况为阻塞时,搜索满足所述未处理的内存对应的进程亲缘性的节点,确定为所述未处理的内存迁移的待迁入节点61,将所述未处理的内存迁移到所述待迁入节点61。
[0106] 值得说明的是,所述控制节点63上的CPU执行本技术方案的具体方式可参照对所述资源迁移装置执行本技术方案的描述方式,此处不再赘述。
[0107] 本发明实施例提供的资源迁移装置及系统,在节点被移除时,根据所述进程与所述进程对应的内存之间的映射关系及所述进程的亲缘性,确定所述进程及其对应的内存迁移的目标节点,并将所述节点内的进程及其对应的内存迁移到所述目标节点,使得所述节点内的进程及其对应的内存可以迁移到同一个目标节点上,避免了跨节点内存访问及跨节点cache访问,节省了节点间高速带宽,提高了系统性能。
[0108] 进一步的,将对应的内存在除所述节点外的另一节点的多个进程分为一组,并将所述多个进程迁移到所述另外一个节点,减少了不必要的内存迁移;同时,根据所述进程与其对应的内存的映射关系及所述进程的亲缘性,确定的所述目标节点不包括所述节点,避免了所述进程及预期对应的内存在所述节点内进行迁移;由于减少了不必要的内存迁移及避免了在所述节点内的迁移,缩短了所述节点被移除的时间。
[0109] 进一步的,在所述节点内的所有进程及与其对应的内存全部迁移之后,扫描所述节点,获取未处理的内存,确定所述未处理的内存迁移的目标节点,并进行迁移,使得所述节点被移除时,所述节点内所有进程及内存全部迁移出去,保证了所述节点被移除时信息不丢失。
[0110] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0111] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。