用于供给资源的方法、装置和系统的制作方法

文档序号:7970612阅读:249来源:国知局
专利名称:用于供给资源的方法、装置和系统的制作方法
技术领域
本发明涉及用于供给资源的方法。更具体地,本发明涉及用于在IT环境中供给资源的方法、系统和控制程序。
背景技术
在当前的IT环境中,尤其是在诸如资源集中于一处的数据中心的场所,需要有用于响应于服务的负载波动而有效地向各服务分配剩余资源(服务器、网络设备、存储器等)的机制(供给)。为了向服务分配这些剩余资源,需要有适合于该服务的硬件配置、OS/应用安装和设置操作。但是,发生在操作过程中的设置处理(安装OS/应用、切换VLAN(Virtual LAN,虚拟局域网)等)通常是相对需要时间的工作。
在这种情形下,作为执行即时的供给的方法,已经设计出通过为网络设备备份供给数据而上载数据的方法(专利文献1)。此外,已公开有“克隆安装”(例如,非专利文献1和2)。在“克隆安装”中,预先保存安装有预定的OS或应用的服务器的盘映像,并在供给时复制该盘映像。
日本专利申请公布特开平11-308302[非专利文献1]http://www.symantec.com/region/jp/products/ghost_enterprise/index.html[非专利文献2]http://www.symantec.com/content/product.cfm?productid=9在当前的数据中心和企业内部的IT系统中,单独地为每个服务(在数据中心的情况下为客户,而在企业内部IT系统的情况下为业务)确保IT资源,且在每个IT资源中,系统都被独立地构造及操作。此外,对于每个服务,预先提供在高峰时足够耐受住负载的IT资源。因此,IT资源的能力利用率除了在高峰时之外一般都变得较低。根据美国研究公司的研究,据报道,在全世界服务器的大约75%的CPU能力都未被利用。另一方面,当检测使用IT资源的各服务操作的高峰时间时,发现各服务的高峰时间很少完全彼此相符,而是其高峰时间在大多数情况下都是分散的。因此,即使当在一个服务中发生超出预期的负载时,资源的有效利用也可通过使用被分配给其他服务的资源来实现。但是,在当前系统中很难实现上述操作,因为这些系统并未被配置有假设上述的资源的利用的设置。
对于以上所描述的背景,需要有一种诸如按需计算系统或效用计算系统的系统。这是一种其中各服务按以下方式被完整地管理的机构各服务所独立地拥有的剩余IT资源被保存在由所有服务所共享的资源池中;在由某一服务所使用的资源的负载突然增加时,从该资源池动态地向该服务分配资源。这种从资源池向服务的资源的分配称作供给。在供给时,在开始利用要被分配的资源前必须将该资源的设置改为该服务所要求的设置。
图1示出传统的供给系统的示例的过程。尽管这里在该图中示出服务器作为资源的示例,但各种资源包括网络设备、存储器、其他硬件等。
图1示出从未安装有软件的所谓的裸机服务器开始顺续地安装服务所需的一些软件的过程。即,就服务A来说,以下述方式构造可应用于该服务A的服务器首先,安装Windows(注册商标)作为OS;随后安装WAS(Websphere(注册商标)应用服务器)作为中间件;此外,安装WAS-APP1作为在WAS上操作的应用。就服务B来说,直到将Windows(注册商标)和WAS安装在硬件(H/W)上的过程与服务A的过程是相同的,但WAS-APP2的过程是不同的。就服务C来说,OS是Linux(注册商标),而DB2(注册商标)代替WAS被安装作为应用。因此,除了H/W之外,该过程与服务A和服务B的过程不同。图1示出根据各服务所需的服务器的配置和数量顺序地安装各软件以及为每一服务A、服务B、和服务C部署(分配)三个服务器、两个服务器、和一个服务器的过程。
但是,在这样一个上述的简单的供给系统中,仅在对供给特定服务的请求出现之后,对资源池中的资源执行各种设置操作。然后,在所有的设置操作完成之后,将资源部署为服务。执行这些设置操作本身要花费较长时间,且在请求生成后,服务要保持暂停直到资源被部署为止。在这样一个简单系统的情况下,就时间方面来说很难响应突然增加的负载的波动。尤其是在服务器的供给的情况下,必须顺续地在服务器中安装服务所需的OS/应用,从而要花费大量时间来安装该OS/应用。
专利文献1中使用备份数据的方法和非专利文献1中的克隆安装是用于缩减这样的设置操作的技术。但是,在这两种方法中,都必须预先使与H/W相关联的信息、诸如设备驱动程序包含在备份数据中或原始盘映像中。例如,在克隆安装中,只能将盘映像安装在与从其提取该盘映像的服务器类型完全相同的服务器中。而且,由于诸如主机名和IP地址的、特定于每一服务器的多条信息被保留在盘映像中,所以在克隆安装后必须适当改变设置。这些条信息有时是由OS和应用各自持有的,且很难适当设立所有的信息项。此外,必须的盘映像的数量对应于将成为供给的目标的各种服务的数量。这样,存在以下的缺点,即不可能实现灵活的配置变化,诸如新应用一个修补程序或具有多级的修补程序。也就是说,在诸如备份数据的上载及盘映像的克隆的供给方法中,必须各自预先准备备份数据和盘映像,因此,响应于对资源的多个不同的请求而在短时间内执行资源的供给是很困难的。

发明内容
因此,为了解决上述问题,本发明的目的在于提供更灵活地缩短响应于多个不同的请求而进行供给所需的时间的方法、系统及其控制程序。
在本发明的第一方面,提供一种用于供给多个服务所需的资源的方法,该用于供给的方法包括以下步骤在由上述多个服务所共享的资源池中、在供给的过程中进行分级,以设定至少一级作为中间状态;向至少一级分配至少一个资源的状态,作为预先设定的初始状态;以及根据使上述被分配的资源的状态变换到另一级所需的设置操作时间,使用预定的算法计算预定的成本,并向各级最优地分配所有的资源,以使上述预定的成本最小化。
在本发明的第二方面,提供一种用于供应多个服务所需的资源的分级引擎,该分级引擎包括图生成单元,其用于在由上述服务所共享的资源池中、在供给的过程中设定至少一级作为中间状态,并用于生成以每一级为节点、以这些节点之间的变换为边的图;变换计划单元,其用于找出上述资源池中所有资源的状态的最优分配,以使利用预定的算法所找出的预定的成本最小化;变换请求发布单元,其用于根据上述变换计划单元所发布的变换计划发布资源变换处理请求;事件处理器,其用于等待来自外部的事件;以及部署单元,其用于在上述事件为来自服务的请求时找出最接近于生成该请求的服务的节点。
在本发明的第三方面,提供一种使计算机执行用于分配多个服务所需的资源的供给的计算机程序,该计算机程序包括以下功能在由上述服务所共享的资源池中、在供给的过程中进行分级,以设定至少一级作为中间状态;向至少一级分配至少一个资源的状态,作为预先设定的初始状态;以及根据使上述被分配的资源的状态变换到另一级所需的设置操作时间,使用预定的算法计算预定的成本,并向各级最优地分配所有的资源,以使上述预定的成本最小化。
在上述的本发明中,设计出资源池以管理由某一数量的服务所共享的剩余资源,在从资源池对各服务进行供给的过程中,以虚拟的方式设立多个中间状态(级)。通过在供给的过程中预先有效地向中间的各级分配多个资源,而不是在来自外部的对服务的资源请求生成后一开始就开始供给所必须的设置操作,能够缩短从接收到来自外部的对服务的资源请求到供给的完成所需的时间。例如,假定服务器为资源,则可通过预先使OS安装在服务器中、然后响应于请求动态地安装在该OS上操作的多个应用,来缩短直到供给的完成为止所需的时间。
通过使用本发明的方法,与为作为分配资源的单位的每个群集保留资源池的传统情况比较,通过在多个服务之中共享该资源池,可相对地减少资源池中被分配的资源数量。另一方面,通过使用本发明的方法,当生成对于资源的供给请求时,可从最优级供给资源,由此与资源池由群集所共享的传统的情况比较,可缩短完成供给所需的时间。


图1是示出传统的供给过程的图;图2是示出本发明的优选实施例中的供给系统的概观的图;图3是本发明的优选实施例的系统的整体配置图;图4是示出表示分级引擎中的处理步骤的流程图的图;图5是示出图生成的流程图的图;图6是示出共享资源池的服务的示例的图;图7是示出步骤S110的示例的图,在该步骤中将对于每个服务的供给过程划分为中间状态;图8是示出步骤S120的示例的图,在该步骤中通过组合彼此相同的中间状态而生成图;图9是示出步骤S130的示例的图,在该步骤中将边添加到之间可能有变换的状态之间的每个位置;图10A和10B是示出服务器分配的变换的具体示例的图(部分1);图11C和11D是示出服务器分配的变换的具体示例的图(部分2);图12E和12F是示出服务器分配的变换的具体示例的图(部分3);图13G和13H是示出服务器分配的变换的具体示例的图(部分4);图14I是示出服务器分配的变换的具体示例的图(部分5);图15是示出有向图的模型的概念图;图16是示出节点间的距离的具体示例的图;图17是示出算法1的流程图的图(部分1);图18是示出算法1的流程图的图(部分2);图19是示出算法1的具体示例的图;图20是示出图19中的每一状态下的服务器的状态的图;
图21是示出在资源数为1的情况下算法2的计算的示例的图;图22是示出在资源数为2的情况下算法2的计算的示例的图;图23A和23B是示出算法3的过程的具体示例的图(部分1);图24C和24D是示出算法3的过程的具体示例的图(部分2);图25E是示出算法3的过程的具体示例的图(部分3);以及图26F和26G是示出算法3的过程的具体示例的图(部分4)。
符号说明1初始节点(节点1),2中间节点(节点2),3中间节点(节点3),4最终节点(节点4),5最终节点(节点5),6中间节点(节点6),7最终节点(节点7),2a从节点2到节点1的变换,3a从节点3到节点2的变换,4a从节点4到节点1的变换,5a从节点5到节点1的变换,6a从节点6到节点1的变换,7a从节点7到节点1的变换,10分级引擎,20供给管理器,30数据中心。
具体实施例方式
下面,参照附图对本发明的优选实施例进行描述。
在本发明的优选实施例中,在以每一阶段中的每一资源的状态为节点(级)、以设置操作为边的有向图中标识和表示开始于每一资源的初始状态、结束于对于服务的其部署的过程。但是,在某些情况下,即使在对于不同的服务部署的情况下,初始状态和一些中间状态也是相同的。在这些情况下,将那些共同的中间状态表示为相同的节点。
例如,假定服务器为资源,而假定OS或应用的安装任务为设置操作。作为其中还未安装OS的裸机服务器(H/W)的状态对应于初始节点;只有OS被安装在服务器中的状态对应于中间节点1;中间件等被安装在服务器中的状态对应于中间节点2;以及服务所需的应用被安装在服务器中的状态对应于最终节点。此外,存在其他各种中间状态,诸如无中间件存在的状态;大量应用被安装的状态;以及相同的应用以不同的设置被安装的状态。
此处,由于显然地可能引起初始节点和中间节点1之间、中间节点1和中间节点2之间、中间节点2和最终节点之间的变换,所以在它们之间画出有向边。此外,在另一个服务利用同一OS的情况下,中间节点1将由该服务和前述的服务所共享。此外,由于可能从任何一个节点返回并重新开始OS的安装的过程,所以画出从每个节点到初始节点的边。此外,当设置操作能够被取消时(例如,当应用能够被卸载时),在它们之间以反方向画出边。
图2示出有向图,在该图中将以上描述的初始、中间、和最终状态(级)表示为节点,且其中这些节点由边所连接。换句话说,该有向图被配置为具有以下节点表示只有OS被安装在初始状态1下的裸机服务器(H/W)中的状态的节点;表示中间件被另外安装在其中的状态的节点;以及每一个均表示应用进而被安装在其中的状态的节点。在这里,该有向图意谓着具有有向边的图。此外,图2示出对初始节点1、中间节点3、以及最终节点4、5和7中的每一个分配一个服务器的状态。在这里,最终节点意味着对于一个服务能够照原样部署一个服务器的状态。在此情况下,将“最接近”于服务A的节点定义为节点4,而次“最接近”于服务A的节点为节点3。词语“接近”并不意谓着空间距离上的接近,而是意谓着用于建立资源的总时间的时间短,以使该资源从一个节点变换到另一个节点。
资源池中的每个资源被分配给任意一个节点,并能够处于对应于每个资源所分配到的节点(级)的状态。此外,通过执行与边相关的处理或设置操作(处理操作),使得每个资源在两个节点之间沿着该边变换。当大量资源被分配给接近于服务被提供的状态的节点(例如,图2中的节点4、5和7)时,有可能减少对于该服务的供给所需的时间。另一方面,当该资源被分配给远离该服务的节点(例如,图2中的节点1、2和6)时,该资源能响应对于更多种服务的供给。因此,考虑每一个服务的资源请求模式和SLA(Service Level Agreement,服务级别协议),通过使得当前资源变换并被分配到适当的节点,能够使供给所需的时间减少。
当某个服务生成请求时,便向该服务供给资源,该资源被分配给最接近于该服务所被提供的状态的节点。在供给之后,池中便减少一个资源。响应于此,再次计算最优分配,籍此来改变资源的分配。
下面,描述根据本发明的系统配置的示例。
在图3中示出了作为本发明的实施例的其中的整体配置。如图3所示,该系统包括用于生成以上所描述的图、用于计划资源变换并用于发布节点间的变换处理请求的分级引擎(staging engine)10和用于对数据中心30(资源池)中的资源执行设置操作的供给管理器20。
在图4中示出了分级引擎10中的整体处理流程。首先,在步骤S100生成图(图生成单元)。该图生成的具体细节将在后面描述。
在图被生成之后,步骤S200是寻找资源池中的诸如服务器等的每个资源被引起变换(变换计划单元)到的图中的那个节点(级)的步骤。变换计划的具体算法将在后面描述。
步骤S300是根据在步骤S200计算的变换计划发布从当前资源分配开始的资源的变换处理(与沿着变换的边相关的设置操作)的指令的步骤(变换请求发布单元)。所发布的指令由实际控制设置操作的供给管理器20所执行。在步骤S300,仅执行发布该处理指令的操作,且在发布该指令之后处理立即前进到步骤S400。如果不需要使任何资源变换,则不进行任何处理。
步骤S400是等待来自外部单元(供给管理器、服务请求系统等)的事件的步骤(事件处理器)。在这里,作为各种事件,假设下列三种1)资源请求事件,其指示由一服务生成了对某一资源的请求;2)变换过程完成事件,其指示被发布给供给管理器的变换指令(设置操作)被完成;以及3)向资源池中添加或从其中删除某一资源的事件,该事件指示资源池中资源数的变化。
如果以上任何一种事件发生,则处理就前进到步骤S500。
在步骤S500,判断所发生的一种事件是否是以上三种之一。在是资源请求事件的情况下,处理前进到步骤S600,或在其他情况下处理返回到步骤S200。
在步骤S600,向供给管理器20等发布指令,以便为生成该请求的服务部署资源,该资源位于最接近于服务(直到部署的完成为止需要最短处理时间)的级(部署单元)。供给管理器20可能并不实际部署资源,而是可由另一个系统来进行。在分级引擎10中,在发布部署指令(步骤S600)之后,处理立即返回到步骤S200。
图5示出了图生成单元在步骤S100中被执行的过程。此外,图6示出了资源池和利用该资源池的服务A、B和C,作为解释说明的示例。
首先,在步骤S110,关于资源池和利用该资源池的服务A、B和C,对于每个服务的供给的过程被划分成中间状态(级)。划分的结果在图7中示出。
接着,在步骤S120,将所划分的中间状态中彼此相同的那些中间状态组合成一个,以生成如图8所示的图。
此外,在步骤S130,在设置操作可逆的情况下(在可以取消设置操作的情况下,或在存在返回到前一级的操作的情况下),添加反向边,在OS/应用安装中添加到初始状态的边(可能是通过删除操作)。
图9示出了通过上述的步骤生成的有向图的结构(拓扑)。
下面,在图中示出了具体的情形。10A到14I基于简单的示例。这些图示出了响应于由服务生成的资源请求而使得三个服务器顺续地变换到四个节点的过程。下面,在图中,通过用圆形包围参考标号来指示节点的参考标号。在该示例中,初始级是节点1,中间级是节点2,最终级是节点3和4。此外,图中位于每一边(箭头)之上的下划线数字指示使得一个服务器在两个节点间变换所需的设置操作时间。
假定所有三个服务器处于初始状态的节点1。在这一点,首先,生成诸如以上的图,并执行最优服务器分配计算(图10A)。在该示例中,假定最优分配处于节点2到4中的每一个被分配了一个服务器的状态(图10A的右手侧所示)。
随后,基于分配计算的结果,使服务器变换(在级间移动)(图10B)。其后,假定服务A生成一服务器请求(图11C)。由于服务器请求的事件生成,所以最接近于服务A的服务器(直到部署为止该服务器需要最短的处理时间)被分配给服务A(图11D)。由于该服务器请求生成且资源池中的服务器数量减少到2,所以执行另一个服务器分配计算。根据计算的结果,使服务器变换(图12E和12F)。其后,假定当一个服务器从服务A(图13G)返回到资源池时发生向资源池添加一服务器的事件。随后,执行另一个服务器分配计算(图13H)。根据该分配计算,使所有的服务器变换(在级间移动)到最优状态(图14I)。
图15示出了这些图的模型。如已描述的,通过用圆形包围参考标号来指示节点的参考标号,并且用箭头指示在之间能够引起变换的节点。在这里,如箭头2a到7a所示,假定从每个节点到初始节点的变换都是可能的(因为在一个处理中删除了由供给所处理的设置)。此外,如虚线箭头3a所示,存在在中间节点之间可能有双向变换的情况。
在图4的资源变换计划(步骤S200或变换计划单元)中,为了解决上述的为节点分配资源的问题,将该问题概括并表达如下。
输入-图的拓扑(图的结构)-边的权重每一边的权重被定义为节点间的变换所需的时间(设置操作所需的时间)-当前分配给每个节点的资源的数量-每个服务的部署请求的生成分布基于以前的部署请求的跟踪记录数据,估计对于n个资源的部署请求分布。作为该估计的前提,假定以前的请求的跟踪记录数据是可应用的(以对于n个资源的部署请求分布与以前的部署请求分步相同或以很少的误差与之相符为前提,例如,就像一周从星期天变化到星期一,或一天从0:00变化到23:00)。可选地,在每种情况下,可使用预测技术等动态地估计对于n个资源的部署请求分布。(一般地,假定生成可能性对于每一单位时间来说可具有不同的生成可能性。此外,单位时间被设置在与节点间的变换的时间相同的级别。)-对于服务x的部署的延迟的代价(penalty)以下述的方式来设立代价,即由于通常重要性级别依服务而不同,所以对于重要服务的延迟导致较大的损失,而对于不重要服务的延迟则导致较小的损失。其值由SLA来确定。
输出-分配给每个节点的最优资源数目标函数-因部署的延迟导致的成本的最小化。
成本由从部署请求的生成到部署的完成的时间与对于为其执行部署的服务的代价的乘积来确定。
下面,描述具体的三种算法,即算法1到3。在下文中,使用下列的参数或表达式。
d(i,j)表示从节点i到节点j的变换所需的时间(边的权重)。
S(n1,n2,n3,…,nm)表示n1资源、n2资源、n3资源、和nm资源分别被分配给节点1、节点2、节点3和节点m。
X(n1,n2,n3,…,nx)指示分别由服务1、服务2和服务X生成对于n1资源、n2资源、和nx资源的请求。
ωx表示服务X的代价。
例如,在图16中示出的示例中,服务X的代价被表示为对应于各边的数值,即从节点1到节点2的变换的d(1,2)=60、从节点2到节点3的变换的d(2,3)=10,从节点2到4到节点1的全部变换的d(i,1)=0。此外,如果服务A与服务B之间的代价没有差别,则其被表示为ωA=ωB=1。
<算法1>
在该部分,描述第一个算法。
算法1寻找当前分配模式之前的一步或两步且通过基于各服务的资源请求分布进行模拟而使成本最小化的分配模式。
从每个资源是否从该当前资源分配变换到邻近节点的观点看,考虑所有可能的资源变换的组合。例如,考虑图16中的示例,如果当前资源分配是S(2,0,0,0),且如果资源之间没有区别,则会获得以下三种分配候选两种资源变换没有一个存在的情况下为S(2,0,0,0);仅有一种资源变换的情况下为S(1,1,0,0);两种资源变换均有的情况下为S(0,2,0,0)。
对于每个分配候选,基于随机数或基于特定的可能性分布,在某一时间段(0≤t≤T)内从服务生成资源请求。然后,模拟部署时的移动,并计算部署所需的成本。如果进行模拟的次数表示为N,则该计算重复N次。从而,将候选中使成本的平均最小化的候选设为下一个分配目标,且为了实现其状态,执行变换过程。
具体地,根据如下的OptimalAllocation函数,找到最优分配。OptimalAllocation输入参数当前资源分配(s_cur)当前时间(t_cur)输出参数成本(c)最优资源分配(s_opt)(当“c”为最小成本时)方法从当前资源分配(s_cur)开始,计算由一步或两步前的资源分配候选组成的组(S)。“S”包括其中没有变换发生的“s_cur”。foreach(s_nextS){c(s_ext)=0for(count=0;count<N;count++){c(s_next,count)=0{
if(资源分配候选(s_next)与当前资源分配(s_cur)不同){开始资源的变换以实现该资源分配候选。
for(t=t_cur;t<T;t++){通过模拟,确定服务是否生成请求。
if(在时间t生成请求){部署最接近于生成该请求的服务的资源;此时将部署所需的成本与c(s_next,count)相加;且在部署一个资源之后将资源分配定义为“s_removed”。
If(下一个计算){//在下一个计算之后计算OptimalAllocation(s_removed,t);且将因此要被输出的成本与c(s_next,count)相加。
}}elseif(变换完成){计算OptimalAllocation(s_next,t);并将因此要被输出的成本与c(s_next,count)相加。
}}}}(s_next)=(c(s_next,0)+…+c(s_next,N))/N}将最小成本c(s_next)和资源分配s_next设置并输出为c和s_opt。
图17和18中的流程图示出了在上述的算法中对于某一“s_next”的处理(在本文中OptimalAllocation中以第一个“for”开始的处理)。
图19示出了上述算法的简单具体示例。此外,图20示出了图19中的各状态下的服务器的分配。在图19和20中,阴影椭圆指示变换完成的状态,而椭圆轮廓指示变换期间的状态。
首先,在初始状态S1,两个服务器被分配。作为可能接着状态S1实现的状态(一步之前的状态),考虑状态S1-1和S1-2a。在状态S1-1,没有变换发生(即S1-1=S1),而在状态S1-2a,一个服务器处于变换到节点2的途中。在这里,作为S1下的成本C(S1),采用S1-1和S1-2a的成本中较小的成本。也就是说,如果写在数学表达式中,则应将此表示为C(S1)=Min(C(S1-1),C(S1-2)),其中C(S1-2)=C(S1-2a)。
在这里,假定在S1-1下由一服务生成对一个服务器的请求,则首先为该服务部署一个服务器,随后,在排除该已部署的服务器之后再次考虑余下的其他服务器的变换候选。在这种情况下,作为可能接着S1-1实现的状态,有两种余下的服务器没有发生变换的状态S1-1-1(=S1-1);以及余下的服务器处于从节点1向节点2变换的途中的状态S1-1-2。在这里,当上述的部署所需的成本表示为C1时,采用通过将S1-1-1和S1-1-2的成本中较小的成本与成本C1相加而获得的值,作为状态S1-1下的成本C(S1-1)。即,这被表示为C(S1-1)=C1+Min(C(S1-1-1),C(S1-1-2))。
另一方面,在从S1-2a到S1-2的变换完成时,考虑随后的变换候选。作为后续的变换候选,可能有三种S1-2-1(没有变换发生的状态,即=S1-2);S1-2-2(一个服务器处于从节点2到节点3的变换的途中的状态);和S1-2-3(一个服务器处于从节点2到节点4的变换的途中的状态)。此时,作为S1-2下的成本C(S1-2),采用S1-2-1、S1-2-2和S1-2-3的成本中最小的成本。即,这被表示为C(S1-2)=Min(C(S1-2-1),C(S1-2-2),C(S1-2-3))。
通过模拟生成N次请求,且对于每个请求执行以上的计算以找到最小成本和使成本最小化的资源分配。该资源分配便被设定为最优分级下的分配。
<算法2>
在该部分,描述第二个算法。在算法2中,以下述的方式考虑所有的资源分配的组合。考虑到所有可能的供给请求,计算每个组合的期望值,以找出使期望值最小化的资源分配的组合。
1.对于每一分配S={所有的资源的分配模式}(1)对于每一请求X={资源数内的所有的生成请求模式}(a)E(S)=0(b)计算对于所生成的请求X的分配S下的成本c(S,X)。
在分配S的状态下,对于该服务部署最接近于生成该请求的服务的资源。将权重与在该资源变换到该服务时的代价的积设定为c(S,X)。
(c)计算E(S)+=p(X)×c(S,X),其中p(X)表示请求X的生成的可能性。也就是说,E(S)可通过下式来得到[等式1]E(S)=Σxp(X)×c(S,X)]]>c(S,X)=Σi,jωx×d(i,j)]]>其中p(X)表示请求X的生成的可能性;ωx表示对请求X的部署的延迟的代价;而d(i,j)表示从资源当前所处的节点i到对应于请求X的节点j的变换所需的时间。
2.找出使E(S)最小化的分配S。
3.为了实现在2.中找出的资源分配,确定应使哪些资源从当前资源分配进行变换及如何变换。通过使用图匹配问题的现有解决方法、使用用于使变换成本最小化的方法和用于为高优先级的服务优先考虑变换的方法的解决方法来进行该确定。
在图21中示出了在资源数为1的情况下的算法2的计算作为示例,在图22中示出了在资源数为2的情况下的算法2的计算作为示例。
图21的上部的图示出了在只有一个服务器被分配给节点2的状态下的情况、即S(0,1,0,0)之下,服务A生成对于一个服务器的请求,即X(1,0)。当时间d(2,3)表示从节点2到节点3的变换所需的时间时,此时的成本c(S,X)是通过服务A的代价ωA乘以时间d(2,3)而获得的值。也就是说,给定ωA=1和d(2,3)=10,则c(S,X)=10。
图21的下部的表是以上所述的对于所有的资源分配模式和所有的请求模式的计算的结果总结。在这里,假定各请求模式的生成可能性均为1/2,且例如根据上述的计算、S(0,1,0,0)下的成本关于X(1,0)被计算为10、而关于X(0,1)则被计算为20。因此,期望值为(1/2)×(10+20)=30/2。通过逐个地计算所有资源分配模式的期望值,来找出使期望值最小化的分配模式。
图22示出了在服务器数为2的情况下的计算。图22的上部的图示出了在一个服务器和另一个服务器分别被分配给节点2和节点3的状态下的情况、即S(0,1,0,1)之下,服务A生成对于一个服务器的请求,即X(1,0)。成本计算与图21的情况相同。但是,在这种情况下,仅需要照原样为服务A部署位于节点3处的服务器。因此,在该场合,不管代价ωA如何,成本均为0。
图22的下部的表是以上所述的对于所有的资源分配模式和所有的请求模式的计算的结果总结。在这里,该表指示在各三个请求模式的生成可能性相等的情况下,S(0,2,0,0)的分配模式的期望值最小。
因为算法2分析性地找出结果,所以其牵涉到比算法3要小的计算量。但是,在对于2.中计算出的分配执行变换的期间生成另一个资源请求的情况下,成本有时可能会过高,且所得到的分配有时可能会稍不同于最优分配。在这里,当池中的资源数、节点数、和群集数分别被表示为n、m和r时,分别构成图21和图22的每个矩阵中的元素数变为(资源请求的组合)×(资源分配的组合)[等式2]rHn×mHn<算法3>
在该部分中,描述第三个算法。在算法3中,以下列方式对于由每个服务所生成的供给请求、独立于由另一个服务所生成的供给请求来进行处理,由此减少计算量。
1.对于每一分配S={所有的资源的分配模式}(1)对于每一服务X={所有的服务}(a)根据节点到服务X的距离按升序对所有节点进行排序。
(b)假定当服务X生成对于n个资源的请求时,按从最近的资源开始到该服务的距离的顺序供给n个资源。假定服务X对i个资源的请求的生成的可能性是Px(i),则最接近于该服务X的资源被部署可能性Px(1),而次接近于该服务X的资源被部署可能性Px(2)。同样,第i个最接近于其的资源被部署可能性Px(i)。因此,成本的期望值表示如下。
E(S,X)=ωX×Σi=1Nci*PX(i)]]>其中,如果Σj=1k-1nj+1≤i≤Σj=1knj,]]>则ci*=ck;ωx表示对于服务X的部署的延迟的代价;Px(i)表示服务X对于i个资源的请求的生成可能性;nj表示被分配给第j个最接近于服务X的节点的资源数;而ck表示从第k个最接近于服务X的节点到服务X的变换的权重。
(c)计算E(S)+=E(S,X)。
2.找出使E(S)最小化的分配S。这是有效的分配S。
3.为了实现在2.中找出的资源分配,确定哪些资源应从当前资源分配进行变换及怎样变换。通过使用用于图匹配问题的现有的解决方法,诸如用于使变换成本最小化的方法和用于为具有高优先级的服务优先考虑变换的方法,来进行该确定。
由于该算法3中的计算量仅变为(资源分配的组合)[等式4]mHn所以计算量与算法2相比较减少了。但是,取决于图的拓扑,可能存在极其无效的分配被输出的情况。
在图23至26中示出了算法3的具体的示例。首先,在图23A中,考虑当节点数和服务数分别是4和2时在资源池中有10种资源的情况。在这里,假定服务A和B的代价都为1。
在图23B中,这10个资源被分配给各节点。在这里,假定对节点1、节点2、节点3和节点4分别分配4个资源、1个资源、3个资源和2个资源。
其次,如图24C所示,讨论服务A,且这些节点被根据该节点到服务A的距离(权重)按升序进行排序。也就是说,在该示例中,因为对服务A可按原样部署位于节点3的服务器,所以节点3与服务A之间的距离为0。随后,因为从节点2到节点3的变换所需的时间为10,所以节点3与服务A之间的距离也为10。同样,从节点1到服务A的距离为从节点1到节点2的变换及从节点2到节点3的变换所需的时间之和,该和为60+10=70。此外,因为位于节点4的服务器必须返回到节点1、再变换到节点2、然后到节点3,所以从节点4到服务A的距离为60+10=70。
图25E示出了计算期望值E(A)的过程。在这里,节点3处的资源被用于对于首先3个资源的请求,而节点2处的资源被用于对于下一个一个资源的请求。同样,在生成对10个资源的请求的情况下,通过使用图中所示的等式计算期望值,该等式基于服务A对i个资源的请求的生成的可能性PA(i);第i个最接近于服务A的节点的距离d(k);和服务A的代价ωA。
在图26F中,计算E+=E(A),然后改变所讨论的服务。也就是说,对代替服务A的服务B同样地执行从图24D至图25E的图中的计算。
此外,在图26G中改变资源的部署,且处理返回到图23B,其中期望值E被重新计算。在该示例中,分配被改变,以致在节点1处有一个资源、在节点2处有两个资源、在节点3处有2个资源、在节点4处有5个资源。但是,该分配可以是任意的模式。通过重复以上的对所有资源分配模式的计算,来找出使期望值E最小化的资源模式。
下面,以使用IBM公司的名为Tivoli(注册商标)IntelligentOrchestrator(TIO)的软件产品的按需计算领域中的系统为例进行描述。该示例使用通过使用TIO作为供给管理器执行供给的系统。
假定为服务利用多个群集系统的数据中心由TIO所管理。各服务用于不同的目的和不同的客户,且因此具有不同的高峰。如果能够完全地预测高峰,则通过提前执行供给有可能使系统预先为高峰做好准备。但是,提前完全地预测高峰是困难的,此外,不可能响应超过预期的负载。
首先,根据在对各群集供给服务器时执行的安装过程(设置操作)生成有向图。在生成该有向图时,节点指示某一OS或应用被安装的状态,而边指示用于安装该OS或应用的操作步骤。
每一边的权重表示该操作步骤的处理时间(例如,用于组件的安装和改变的时间),且通过测试安装操作自动地获得权重作为初始值。可选地,该初始值可由管理员手动提供。基于过去在每一群集中生成的、且随着时间流逝不断地被更新的对于服务器的请求,来确定每个群集的请求的生成的可能性。此外,依据每一服务的SLA确定对于在对群集的供给的时间上的延迟的代价,由此对具有较高的SLA的群集给予较大的代价,对没有较高的SLA的群集给予较低的代价基于这些数据,确定当前池中的服务器应分配给哪些节点,且执行实际的安装操作以实现所确定的状态。当在该时间点有来自于任意一个群集的对资源(服务器)的请求时,供给处于供给所需的时间最短的那一级的服务器。
如果系统具有对各群集的高峰时间的预测功能,则通过改变来自各服务的请求的生成可能性,会实现更有效的供给。
尽管上面参照实施例和示例对本发明进行了描述,但本发明的技术范围并不限于在上述的实施例中所描述的范围。各种替换或改进可被添加到上述的实施例中。从权利要求的范围可明显看出,包括这些替换或变形的实施例可包括在本发明的技术范围内。
作为本发明的一个实施例所描述的用于供给的方法可通过程序来实现,该程序使计算机上的系统或计算机能够执行该方法的功能。此外,用于存储以上程序的存储器介质可以是电的、磁的、光的、电磁的、红外线的、或半导体系统(或设备或装置)、或传播介质。计算机可读介质的示例包括半导体、固态存储设备或/和磁带。可移动的计算机可读介质的示例包括半导体或固态存储设备、磁带、可移动计算机盘、随机存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。当前已有的光盘的示例包括只读存储光盘(CD-ROM)、读/写光盘(CD-R/W)和DVD。
权利要求
1.一种用于分配多个服务所需的资源的供给方法,包括以下步骤在由上述多个服务所共享的资源池中、在供给的过程中进行分级,以设定至少一级作为中间状态;向至少一级分配至少一个资源的状态,作为预先设定的初始状态;以及根据使每个上述被分配的资源的状态变换到另一级所需的设置操作时间,使用预定的算法计算预定的成本,并将所有的资源最优地分配给各级,以使上述预定的成本最小化。
2.根据权利要求1的供给方法,其中在上述分级步骤,生成以每一级为节点、以每一设置操作时间为边的权重的有向图。
3.根据权利要求2的供给方法,其中上述预定的成本由对于某一服务完成资源的部署所需的时间和对该服务的部署的延迟的代价的乘积来确定,该资源部署是由从该服务生成的资源请求所引起的。
4.根据权利要求3的供给方法,其中上述预定的算法通过基于每一服务的资源请求生成分布的模拟来找出将所有的资源分配给各级的模式,该分配模式使预定的成本最小化且其是所有资源的当前分配模式的一步之前和两步之前的模式中的任意一个。
5.根据权利要求3的供给方法,其中上述预定的算法使用下式来计算将所有的资源分配给各级的每一模式的期望值E(S)E(S)=ΣXp(X)×c(S,X),]]>其中c(S,X)=Σi,jωX×d(i,j);p(X)]]>表示请求X的生成可能性;ωX表示对请求X的部署的延迟的代价;而d(i,j)表示从资源当前所处的节点i到对应于请求X的节点j的变换所需的时间;该算法找出将所有的资源分配给各级的模式,该分配模式使上述期望值E(S)最小化;以及该算法使用图匹配问题来确定从当前资源分配到上述分配模式的资源分配的变换。
6.根据权利要求3的供给方法,其中上述预定的算法对于将所有的资源分配给各级的每一模式及对于所有服务中的每一个计算通过下式找出的E(S,X)E(S,X)=ωX×Σi=1Nci*PX(i)]]>其中如果Σj=1k-1nj+1≤i≤Σj=1knj,]]>则ci*=ck;ωX表示对于服务X的部署的延迟的代价;PX(i)表示服务X对i个资源的请求的生成可能性;nj表示被分配给第j个最接近于服务X的节点的资源数;而ck表示从第k个最接近于服务X的节点到服务X的变换的权重;该算法进一步计算作为所有服务X的E(S,X)的总和的期望值E(S),并找出将所有的资源分配给各级的模式,该分配模式使E(S)最小化;以及该算法使用图匹配问题来确定从当前资源分配到上述分配模式的资源分配的变换。
7.根据权利要求4的供给方法,其中上述模拟根据特定的可能性分布引发资源请求。
8.一种用于供应多个服务所需的资源的分级引擎,该分级引擎包括图生成单元,其用于在由上述服务所共享的资源池中、在供给的过程中设定至少一级作为中间状态,并用于生成以每一级为节点、以这些节点之间的变换为边的图;变换计划单元,其用于找出上述资源池中所有资源的状态的最优分配,以使通过使用预定的算法所找出的预定的成本最小化;变换请求发布单元,其用于根据上述变换计划单元所发布的变换计划发布资源变换处理请求;事件处理器,其用于等待来自外部的事件;以及部署单元,其用于在上述事件为服务请求的情况下找出最接近于生成该请求的服务的节点。
9.根据权利要求8的分级引擎,其中上述变换计划单元进一步包括以下功能接收每一被分配的资源的状态到另一个节点的变换所需的设置操作时间的输入;以及使用预定的算法、根据上述设置操作时间计算预定的成本。
10.根据权利要求8的分级引擎,其中上述事件是资源请求、变换处理完成、向资源池的资源的添加以及从资源池的资源的删除中的任意一种。
11.一种供给系统,包括根据权利要求8至10中的任意一项的分级引擎的,该供给系统进一步包括供给管理器,其用于响应于来自上述分级引擎的资源变换处理请求,执行资源的设置操作。
全文摘要
在当前的IT环境中,尤其是在诸如资源集中于一处的数据中心的场所,需要有用于响应于服务的负载波动而向服务分配剩余资源(服务器、网络设备、存储器等)的机制(供给)。在某些情况下,发生在供给的过程中的设置操作是需要时间的。在此情况下,不可能响应突然的负载波动。本发明识别从资源的初始状态开始、以每一资源被部署给每一服务的状态结束的过程,将其表示为以每一阶段中的资源状态为节点(级)、以设置操作为边的有向图。但是,存在一些情况,即使对于针对不同服务的部署,初始状态和一些中间状态也是相同的。在此情况下,将相同的中间状态表示为单个节点。当资源被分配给接近于服务被部署的状态的节点时,能够减少对服务供给所需的时间。
文档编号H04L12/24GK1963769SQ20061014383
公开日2007年5月16日 申请日期2006年11月9日 优先权日2005年11月10日
发明者益满健, 串田高幸 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1