专利名称:一种服务器集群节能的方法、装置和服务器集群的制作方法
技术领域:
本发明涉及服务器技术,特别是指一种服务器集群节能的方法、装置和服务器集群。
背景技术:
随着对高性能服务器的需求越来越多,服务器集群由于其较高的性价比获得广泛了应用,目前服务器集群的规模也越来越大,而服务器集群中的服务器节点(简称节点)数量大幅增长带来了电力消耗的快速增长。服务器集群中的服务器节点数量在快速增长,但其使用效率却在低水平徘徊不前,以应用最普遍的X86服务器集群为例,普遍认为其利用率低于30%,Intel服务器平均利用率通常只有10%,从而造成大量电力资源的浪费。现有技术中,对于单台服务器可以通过处理器自动降频,关闭外设,服务器休眠等手段来实现节能;但对于服务器集群,现有的服务器集群节能办法中,通常是被动地检查节点上是否有作业在运行,如果没有则将该节点关闭。采用现有技术,在实际应用中如果有一个100台节点的集群,每个节点都有作业,但每个只有10%利用率,那么100台节点需要全开,这会浪费电力资源。发明人在实现本发明的过程中,发现现有技术中至少存在如下问题服务器集群中的服务器节点的利用率低,从而导致服务器集群电力资源浪费。
发明内容
本发明的目的是提供一种服务器集群节能的方法、装置和服务器集群,用于实现服务器集群的节能。一种服务器集群节能的方法,包括获取服务器机群中预定数目个节点所对应的的负载;在所述预定数目个节点中,若第一节点的负载小于或者等于第二节点的资源剩余量;将所述第一节点上的作业所对应的进程迁移到第二节点上运行。方法中,将所述第一节点上的作业所对应的进程迁移到第二节点上运行,具体为 将所述第一节点上的作业对应的进程的地址空间、所述进程对其它进程的访问参数、进程代码、所述进程的执行状态以及将对迁移之前的所述进程的所有访问,均重新链接到所述第二节点上运行的迁移后的所述进程。方法中,获取服务器机群中预定数目个节点的负载之前,还包括将所述服务器机群中的所有节点按照所述预定数目进行分组,形成至少一个节点组;获取服务器机群中预定数目个节点的负载的步骤具体为在每一个所述节点组内,获取节点组中预定数目个节点所对应的负载,并查询适合进行作业迁移的所述第一节点和所述第二节点。方法中,所述查询适合进行作业迁移的所述第一节点和所述第二节点,包括查询所述节点组内正在运行的编号最大的节点,获取该节点上正在运行的作业情况作为所述负载;获取所述节点组内正在运行的编号最小的节点的所述负载资源剩余量;当所述负载小于等于所述负载资源剩余量时,所述编号最大的节点作为所述第一节点,所述编号最小的节点作为所述第二节点。方法中,将所述第一节点上的作业对应的进程迁移到第二节点上运行之后还包括向所述第一节点发送控制指令,所述控制指令用以降低所述第一节点的功耗。方法中,所述负载包括CPU利用率或空闲率、内存利用率或空闲率,和/或网卡流量。一种服务器集群节能的装置,包括作业单元,用于获取服务器机群中预定数目个节点的负载;管理监控单元,用于在所述预定数目个节点中,选择第一节点,该第一节点的负载小于等于负载资源剩余量;并选择第二节点,该第二节点的负载资源剩余量大于等于所述负载;进程迁移单元,用于将所述第一节点上的作业对应的进程迁移到第二节点上运行。装置中,所述进程迁移单元包括第一获取单元,用于获取进程的地址空间;第二获取单元,用于获取所述进程对其它进程的访问参数;第三获取单元,用于获取进程代码; 第四获取单元,用于获取所述进程的执行状态;第五获取单元,用于获取将对迁移之前的所述进程的所有访问均重新链接到迁移之后的所述进程。装置中,所述管理监控单元,具体包括第一查询单元,用于查询所述节点组内正在运行的编号最大的节点,获取该节点上正在运行的作业情况作为所述负载;第一查询单元,用于获取所述节点组内正在运行的编号最小的节点的所述负载资源剩余量;对比单元, 用于当所述负载小于等于所述负载资源剩余量时,所述编号最大的节点作为所述第一节点,所述编号最小的节点作为所述第二节点。一种服务器集群,包括节点,用于完成各种计算任务;还包括服务器集群节能的装置,该服务器集群节能的装置中包括作业单元,用于获取服务器机群中预定数目个节点的负载;管理监控单元,用于在所述预定数目个节点中,选择第一节点,该第一节点的负载小于等于负载资源剩余量;并选择第二节点,该第二节点的负载资源剩余量大于等于负载;进程迁移单元,用于将所述第一节点上的作业所对应的进程迁移到第二节点上运行。应用所提供的技术方案,获取节点的负载以及负载剩余资源,当其他节点的负载剩余资源能够满足一个节点的负载需要时,能够将所述一个节点上的作业迁移到其他节点上,进行作业迁移后的节点处于空闲状态,甚至可以被关闭,如此则降低了整个服务器集群的电力消耗,节省了运行成本。
图1为本发明实施例服务器集群节能的方法流程示意图;图2为本发明实施例服务器集群结构图;图3为本发明实施例服务器集群节能流程示意图;图4为本发明实施例服务器集群节能的装置结构图。
具体实施例方式为使本发明的目的、技术特征和实施效果更加清楚,下面将结合附图及具体实施例对本发明的技术方案进行详细描述。本发明提供的实施例中,在服务器集群的各个服务器节点(简称节点)之间实现作业迁移。
本发明中,提供一种服务器集群节能的方法,如图1所示,包括步骤101,获取服务器机群中预定数目个节点的负载;步骤102,在所述预定数目个节点中,选择第一节点,该第一节点的负载小于等于第一阈值;并选择第二节点,该第二节点的负载资源剩余量大于等于第一阈值;步骤103,将所述第一节点上的作业所对应的进程迁移到第二节点上运行。应用所提供的技术方案,获取节点的负载以及负载剩余资源,当其他节点的负载剩余资源能够满足一个节点的负载需要时,能够将所述一个节点上的作业迁移到其他节点上,进行作业迁移后的节点处于空闲状态,甚至可以被关闭,如此则降低了整个服务器集群的电力消耗,节省了运行成本。上述实施例的技术方案中,将所述第一节点上的作业所对应的进程迁移到第二节点上运行,具体包括获取进程的地址空间;所述进程对其它进程的访问参数;进程代码; 所述进程的执行状态;以及将对迁移之前的所述进程的所有访问均重新链接到迁移之后的所述进程。获取服务器机群中预定数目个节点的负载,具体包括将所述服务器机群中的所有节点分组形成节点组,将每一个所述节点组内的所有节点作为所述预定数目个节点。在每一个所述节点组内,查询适合进行作业迁移的节点,包括查询所述节点组内正在运行的编号最大的节点,获取该节点上正在运行的作业情况作为所述负载;获取所述节点组内正在运行的编号最小的节点的所述负载资源剩余量,作为所述第一阈值;当所述负载小于等于所述第一阈值,且所述负载资源剩余量大于等于所述第一阈值时,所述编号最大的节点作为所述第一节点,所述编号最小的节点作为所述第二节点。所述将所述第一节点上的作业所对应的进程迁移到第二节点上运行之后还包括 向所述第一节点发送控制指令,所述控制指令用以降低所述第一节点的功耗。在本领域内, 通常是通过智能平台管理接口(IPMI,Integrated DellRemote Access Controller)将所述第一节点关掉。所述负载包括CPU利用率/空闲率,内存利用率/空闲率,以及网卡流量。应用上述各个实施例提供的技术方案,在如图2所示的一个服务器集群中,包括了多个节点组,每一个节点组包含了多个节点。由于整个服务器集群中包含了较多的节点, 并且其节点的数目是动态变化的,可以增加也可以减少,因此,本发明针对不同的情形提供了多种的技术方案。其中,包括步骤301,服务器集群开始运行时,集群管理系统向所有计算节点发出负载请求, 该负载请求用于获取CPU利用率/空闲率,内存利用率/空闲率,网卡流量等参数,并存放到环状数据库(RRD,Round Robin Database)里。步骤302,将各个计算节点进行分组,形成第一组,第二组,........第N组。在同组内,对各节点进行编号,在第一组中,编号从nodell至nodelN,其中,各节点node后面的编号,第一个表示所在的组的编号,第二个表示在组内的编号,如果存在较多的组,则采用多位表示组的编号,如果同一组内存在多个节点,则采用多位表示组内的编号,其表示形式也可以变化。步骤303,在一个节点组内,查询适合进行作业迁移的节点。
具体实现包括多种形式,以下为一种优选的方案通过作业系统查询组内正在运行的编号最大的节点,获取该节点上正在运行的作业情况,如CPU利用率/空闲率,内存利用率/空闲率;获取组内正在运行的编号最小的节点的负载资源剩余量。步骤304,将负载与负载资源剩余量进行比较,如果负载资源剩余量大于作业所需资源,转步骤305,否则转步骤306。步骤305,利用进程迁移将正运行在编号最大节点上的作业迁移到编号最小的节点上,转步骤307。步骤306,依照节点编号从小到大,在剩下的节点中再次确定一个编号最小的节点,转步骤303。步骤307,检查组内正在运行的编号最大的节点上的作业情况,如果已无运行的作业,则可远程将其关掉。具体可以采用智能平台管理接口(IPMI,Intelligent Platform Management Interface)将节点关掉,此时需要节点的主板支持基板管理控制器(BMC, Baseboard Management Controller)。如果该节点的负载增加,说明无其它节点有资源可供迁移,并且有新作业提交。可以在步骤301 步骤307所提供的技术方案的基础上,进行进一步的优化,步骤 303中,获取一个节点组内所有节点的负载,对负载进行排序,按照负载从小到大的次序依
次为Load1、Load2、Load3......Loadn72^ Loadn/2+1......Loadn0 在步骤304中将Load1的负
载与Loadn的负载资源剩余量,Load2的负载与Loadlri的负载资源剩余量,........,以及
Loadn72的负载与Loadn^1的负载资源剩余量依次比较,并执行后续的步骤。其中,负载资源剩余量通过负载能力减去负载得到。在步骤305中,通过进程迁移,将正运行在编号最大节点上的作业迁移到编号最小的节点上,具体包括进程迁移将一个正在执行的进程从一个节点迁移到通过网络连接的另一个节点上。要完成进程迁移需要获取待迁移的进程的进程状态,包括(1)进程的地址空间,(2)对其它进程的访问,如套接口、管道等,( 代码,该代码可以组成地址空间的一部分,(4)执行状态,如寄存器、堆栈等的当前值,以及( 将那些对迁移之前的进程的所有访问都重新链接到新的进程拷贝上,实现真正的无缝迁移,这是因为,非无缝迁移会导致错误。整个进程迁移操作必须是原子操作,这样才能避免进程的丢失或者是有两个拷贝;可以实现的同构的进程迁移系统包括V Charllote、DEM0S/MP、Sprite、Condor以及 Accent。其中DEM0S/MP可以实现进程迁移,在DEM0S/MP中的一个进程可以在其执行阶段迁移, 继续在另一个新处理器获得运行进程所需的资源,并迅速更新消息路径,在新处理器处接收传递来的消息。DEM0S/MP系统可以有效的进行进程迁移而不影响系统服务。Condor是计算密集型作业的资源管理系统,该系统由作业管理和资源管理两部分组成。作业管理部分负责管理用户作业,用户可以通过它了解作业队列,提交新的作业,或者查询作业完成的情况等。资源管理部分监视资源的可用情况,进行资源的分配与调度等;在资源管理部分中,Condor系统中资源所有者拥有对该资源使用的最高优先权,可以根据自己的实际情况,制定资源使用策略,其他用户提交给Condor系统执行的作业不会妨碍资源所有者对其资源的使用。换句话说,Condor系统是通过采用机会计算 (OpportunisticComputing),有效地利用所有权分布的微型机资源,创建了计算密集型作业环境。此外,Condor还具备如支持多种平台、检查点和进程迁移、远程系统调用、Condor 池之间实现互连,以及Condor池可以动态扩充等特点。其他的系统,虽然各有其特点,但同样可以实现进程迁移。对应的,如果服务器集群的规模并不是非常大,而且其规模是可以控制的,那么可以省去步骤302,如此,则整个服务器集群中的所有计算节点均作为同一个节点组中的节点进行处理。在一个应用到服务器集群的场景中,该集群有100台节点(服务器),如果采用现有的服务器集群节能办法,则被动地检查节点是否有作业在运行,如果该节点没作业在运行,将该节点关闭。如果每个节点都有作业,但每个只有10%利用率,那么100台节点需要全开,而如果采用本发明的技术方案,在不同的节点之间实现作业的进程迁移,假如将所有作业迁移到25台节点上,则平均每台的利用率约为40%,关闭其他的75台节点,功耗可大约降至原功耗的1/4。对应的,本发明提供了一种服务器集群节能的装置,如图4所示,包括作业单元401,用于获取服务器机群中预定数目个节点的负载;管理监控单元402,用于在所述预定数目个节点中,选择第一节点,该第一节点的负载小于等于第一阈值;并选择第二节点,该第二节点的负载资源剩余量大于等于第一阈值;进程迁移单元403,用于将所述第一节点上的作业所对应的进程迁移到第二节点上运行。应用所提供的技术方案,由于能够将一个节点上的作业迁移到另一个节点上,如此前一个节点由于处于空闲状态,甚至可以关闭,则整个服务器集群的电力消耗降低,节省了运行成本。其中,进程迁移单元403中包括第一获取单元,用于获取进程的地址空间;第二获取单元,用于获取所述进程对其它进程的访问参数;第三获取单元,用于获取进程代码;第四获取单元,用于获取所述进程的执行状态;第五获取单元,用于获取将对迁移之前的所述进程的所有访问均重新链接到迁移之后的所述进程。管理监控单元402,具体包括第一查询单元,用于查询所述节点组内正在运行的编号最大的节点,获取该节点上正在运行的作业情况作为所述负载;第一查询单元,用于获取所述节点组内正在运行的编号最小的节点的所述负载资源剩余量,作为所述第一阈值;对比单元,用于当所述负载小于等于所述第一阈值,且所述负载资源剩余量大于等于所述第一阈值时,所述编号最大的节点作为所述第一节点,所述编号最小的节点作为所述第二节点。
对应的,本发明提供了一种服务器集群,包括节点,用于完成各种计算任务;还包括服务器集群节能的装置,该服务器集群节能的装置中包括作业单元,用于获取服务器机群中预定数目个节点的负载;管理监控单元,用于在所述预定数目个节点中,选择第一节点,该第一节点的负载小于等于第一阈值;并选择第二节点,该第二节点的负载资源剩余量大于等于第一阈值;进程迁移单元,用于将所述第一节点上的作业所对应的进程迁移到第二节点上运行。本发明的实施例具有以下有益效果,由于能够将一个节点上的作业迁移到另一个节点上,如此前一个节点由于处于空闲状态,甚至可以关闭,则整个服务器集群的电力消耗降低,节省了运行成本。应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,所有的参数取值可以根据实际情况调整,且在该权利保护范围内。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。
9
权利要求
1.一种服务器集群节能的方法,其特征在于,包括 获取服务器机群中预定数目个节点所对应的的负载;在所述预定数目个节点中,若第一节点的负载小于或者等于第二节点的资源剩余量; 将所述第一节点上的作业所对应的进程迁移到第二节点上运行。
2.根据权利要求1所述的方法,其特征在于,将所述第一节点上的作业所对应的进程迁移到第二节点上运行,具体为将所述第一节点上的作业对应的进程的地址空间、所述进程对其它进程的访问参数、 进程代码、所述进程的执行状态以及将对迁移之前的所述进程的所有访问,均重新链接到所述第二节点上运行的迁移后的所述进程。
3.根据权利要求1所述的方法,其特征在于,获取服务器机群中预定数目个节点的负载之前,还包括将所述服务器机群中的所有节点按照所述预定数目进行分组,形成至少一个节点组; 获取服务器机群中预定数目个节点的负载的步骤具体为在每一个所述节点组内,获取节点组中预定数目个节点所对应的负载,并查询适合进行作业迁移的所述第一节点和所述第二节点。
4.根据权利要求3所述的方法,其特征在于,所述查询适合进行作业迁移的所述第一节点和所述第二节点,包括查询所述节点组内正在运行的编号最大的节点,获取该节点上正在运行的作业情况作为所述负载;获取所述节点组内正在运行的编号最小的节点的所述负载资源剩余量; 当所述负载小于等于所述负载资源剩余量时,所述编号最大的节点作为所述第一节点,所述编号最小的节点作为所述第二节点。
5.根据权利要求1所述的方法,其特征在于,将所述第一节点上的作业对应的进程迁移到第二节点上运行之后还包括向所述第一节点发送控制指令,所述控制指令用以降低所述第一节点的功耗。
6.根据权利要求1所述的方法,其特征在于,所述负载包括 CPU利用率或空闲率、内存利用率或空闲率,和/或网卡流量。
7.一种服务器集群节能的装置,其特征在于,包括作业单元,用于获取服务器机群中预定数目个节点的负载;管理监控单元,用于在所述预定数目个节点中,选择第一节点,该第一节点的负载小于等于负载资源剩余量;并选择第二节点,该第二节点的负载资源剩余量大于等于所述负载;进程迁移单元,用于将所述第一节点上的作业对应的进程迁移到第二节点上运行。
8.根据权利要求7所述的装置,其特征在于,所述进程迁移单元包括 第一获取单元,用于获取进程的地址空间;第二获取单元,用于获取所述进程对其它进程的访问参数; 第三获取单元,用于获取进程代码; 第四获取单元,用于获取所述进程的执行状态;第五获取单元,用于获取将对迁移之前的所述进程的所有访问均重新链接到迁移之后的所述进程。
9.根据权利要求7所述的装置,其特征在于,所述管理监控单元,具体包括第一查询单元,用于查询所述节点组内正在运行的编号最大的节点,获取该节点上正在运行的作业情况作为所述负载;第一查询单元,用于获取所述节点组内正在运行的编号最小的节点的所述负载资源剩余量;对比单元,用于当所述负载小于等于所述负载资源剩余量时,所述编号最大的节点作为所述第一节点,所述编号最小的节点作为所述第二节点。
10.一种服务器集群,包括节点,用于完成各种计算任务;其特征在于,还包括 服务器集群节能的装置,该服务器集群节能的装置中包括作业单元,用于获取服务器机群中预定数目个节点的负载;管理监控单元,用于在所述预定数目个节点中,选择第一节点,该第一节点的负载小于等于负载资源剩余量;并选择第二节点,该第二节点的负载资源剩余量大于等于负载; 进程迁移单元,用于将所述第一节点上的作业所对应的进程迁移到第二节点上运行。
全文摘要
本发明提供一种服务器集群节能的方法、装置和服务器集群,其中方法包括获取服务器机群中预定数目个节点所对应的的负载;在所述预定数目个节点中,若第一节点的负载小于或者等于第二节点的资源剩余量;将所述第一节点上的作业所对应的进程迁移到第二节点上运行。应用所提供的技术方案,获取节点的负载以及负载剩余资源,当其他节点的负载剩余资源能够满足一个节点的负载需要时,能够将所述一个节点上的作业迁移到其他节点上,进行作业迁移后的节点处于空闲状态,甚至可以被关闭,如此则降低了整个服务器集群的电力消耗,节省了运行成本。
文档编号H04L29/08GK102158513SQ20101011197
公开日2011年8月17日 申请日期2010年2月11日 优先权日2010年2月11日
发明者王鹏飞 申请人:联想(北京)有限公司