自主的基于群集的最优化系统和方法

文档序号:6407173阅读:174来源:国知局
专利名称:自主的基于群集的最优化系统和方法
技术领域
本发明涉及自主计算领域,更具体地说涉及群集配置的自主最优化。
背景技术
自主计算代表了当今计算机科学的主要挑战。在著名宣言《自主计算IBM对信息技术的状态的看法》(Autonomic ComputingIBM’sPerspective on the State of Information Technology)中,IBM研发部门的资深副总裁Paul Horn评述道,“这不是关于要赶上摩尔定律的步伐,而是要处理它几十年统治的后果。”由于这个观点,Horn提出了一种与生物科学中的自主神经系统相似的计算。就是说,正如一人的自主神经系统在没有该人的任何有意识努力的情况下监视和响应改变的条件并进行调节和修复一样,在自主计算系统中,该系统必须自我调节、自我修复并响应改变的条件,而无需该计算系统的操作员的任何有意识的努力。
因此,正如自主神经系统可使该人摆脱应对复杂性的负担一样,一自主计算系统也能这样。也就是说,计算系统本身可以承担起应对其自身复杂性的责任。上述IBM宣言的关键涉及自主计算系统的八个主要特征I.系统必须“知道自己”,包括也拥有一系统身份的那些系统组件。
II.系统必须能够在变化的和不可预测的条件下配置和重新配置自己。
III.系统必须永不安于现状,并且系统必须总是寻找最优化其运行的方法。
IV.系统必须是自我修复的,并有能力从可能造成其某些部件发生故障的常规和非常规的事件中恢复过来。
V.系统必须是自我保护的专家。
VI.系统必须知道它的环境和在它的活动周围的情境,并据此采取行动。
VII.系统必须遵循公开的标准。
VIII.系统必须预期所需的最优化资源,同时对用户隐藏它自己的复杂性。
遗传编程(genetic programming),尽管是独立于自主计算的概念而发展起来的,却通过提供一种用于从问题的高层问题陈述自动地生成工作计算机程序的方法而着手解决自主计算的挑战。遗传编程通过运用达尔文的自然选择的原则和受生物启发的操作而遗传地繁殖计算机程序群体,而达到了自动编程(有时也称为程序合成或程序导出)的目标。可归属于遗传编程的一般操作包括复制、交叉(有性的重新组合)、变异、以及模仿自然界中的基因复制和基因删除的改变体系结构的操作。
标准遗传算法(Standard Genetic Algorithm)代表了遗传编程的一般化概念的一种具体实现,其中单倍体有性复制的模型被应用于生成电子信息的诸连续世代。在标准遗传算法中,有待转化的群体包括一组电子信息。在该组中的每一个别元素可代表生命形式的染色体的类似物。在这方面,可选择两个或更多个别元素来参与一复制循环。在该循环期间,所选的元素可以交叉和再次分裂,从而形成附加的新元素。下一步,所述附加的新元素随后可进行变异,并且该过程可重复,直到已经产生电子数据的一新世代。
从算法上讲,标准遗传算法包括七个众所周知的方法步骤1.开始是一个由n个随机个体组成的群体,每一个体具有一些1位的染色体。
2.计算该群体中每一个体的适应性f(x)。
3.基于“适应性”,选择两个个体,并将所选个体重新标记为“父母”。将所述父母从所述群体中移除。
4.使用一随机过程来确定是否要进行交叉。如果是,则将该交叉的结果称为“孩子”。如果否,则简单地把父母称为孩子。
5.使用每一位的一变异概率对孩子进行变异。
6.将所述孩子置于一空集,该空集称为“新世代”。
7.返回步骤2,直到所述新世代包含n个个体。如果n是奇数,则随机地删除一个孩子。然后以新世代来代替旧世代。返回步骤1。
值得注意的是,标准遗传算法和一般的遗传编程已被应用于计算机科学领域中的若干问题。例如,英国德蒙福特(De Montfort)大学的MarkFolker已将遗传编程概念应用于计算机系统性能的某些方面的预测。作为比较,瑞典哥德堡的查尔姆斯(Chalmers)技术大学理论物理学院的HenrikBorgvall已将遗传编程概念应用到Java字节码的导出。作为进一步的比较,爱立信-惠普电信公司的Eduard Lukschandl已将遗传编程的概念应用于电信网络中的路由问题。
然而,迄今尚未把遗传编程的概念应用于网络组件的最优化配置—特别是在计算群集中。如本领域的技术人员可了解的,计算群集在高可获得性和高性能计算领域已变得普遍起来。基于群集的系统表现出三种重要和根本的特点或属性可靠性、可获得性和可用性。当设计新的健壮的群集系统的软件和硬件时,这些特征中的每一个都是极端重要的。
与伸缩性有限并且随着向系统添加处理器可导致回报极大减少的对称多处理(SMP)系统不同,基于群集的系统由多个计算机组成,这些计算机通过高速网络通信链接连接起来。群集中的每个计算机享有自己的存储器,可能还有自己的盘空间,并且容有自己的本地操作系统。群集系统中的每个节点可被视为一处理器/存储器模块,该模块与其它节点合作,以便它可向用户应用提供系统资源和服务。
可把群集的特征描述为提高的可获得性,因为一特定节点发生故障并不影响其余节点的运行。相反,任何一发生故障的节点都可被隔离,从而不再为基于群集的系统所利用,直到该节点可被修复并重新纳入群集中。此外,在群集中发生故障的节点的负荷可以公平地在群集中起作用的诸节点之中分担。因此,群集已被证明是用于在分布式环境中部署应用的一种合理的体系结构,并且群集目前是可伸缩的高性能计算的优选平台。
在典型的群集环境中,群集中的每个节点可被相同地配置,以改进可管理性。然而,为群集选择一特定配置可证明是具有挑战性的,因为可能难以知道整个群集是否运行在最优状态中。但是,自主计算的一主要原则要求自主系统不断地寻求更好的操作状态。尽管在目前,基于群集的系统并非通过重新配置而不断寻求更好的操作状态。

发明内容
本发明解决了本领域在对诸节点的一群集进行最优化方面的缺陷,并提供了一种新的和非显而易见的方法、系统和装置,其用于使用遗传编程技术自主地对在一群集中的诸节点的配置进行最优化。一种用于自主地对节点群集进行最优化的系统包括工作负荷描述和相关的配置参数的知识库、被编程为基于所述知识库中的一组现有配置参数为一特定工作负荷产生所选择的一组配置参数的遗传计算处理器、以及与所述知识库和所述节点群集耦合的控制器。所述控制器包括用于监视所述节点群集和用于将所述所选择的一组配置参数中的各个配置参数应用到所述节点群集以获得改进的运行状态的程序单元。
值得注意的是,所述知识库在所述配置参数和工作负荷描述之外,还包括与所述工作负荷描述相关的性能测量。所述知识库还包括可接受的配置参数的一列表,这些配置参数当被应用时将获得超出预定的基线目标的性能水平。相反地,所述知识库可包括不可接受的配置参数的一列表,这些配置参数当被应用时将无法获得超出预定的基线目标的性能水平。最后,所述知识库可被配置为耦合到一个或多个控制器,而这些控制器进一步地耦合到一个或多个相应的节点群集。
一种用于自主地对节点群集进行最优化的方法包括检测该群集中需要重新配置的节点。确定由所述节点所承担的工作负荷,并获取与所述工作负荷相关的一组配置参数。使用一遗传计算过程,基于所获取的一组配置参数,产生配置参数的一新世代。最后,使用配置参数的所述新世代中的所选配置参数,重新配置所述节点。重要的是,所述检测步骤包括检测选自这样一组的至少一个条件,该组包括节点崩溃、节点空闲、节点性能达不到要求、以及该节点所承担的工作负荷的变化。
根据本发明,可以将一遗传计算过程应用到一组配置参数,以产生配置参数的一新世代,从该世代中选择一新配置以应用到该节点。在这方面,所述产生步骤包括对于所述所获取的一组配置参数执行一交叉操作。此外,变异所述所获取的一组配置参数的至少一个元素,以产生配置参数的一新世代。最后,随机地从配置参数的所述新世代中选择一新配置。基于所述随机选择,确定所述随机选择的新配置是否是可行的。在这方面,只有当确定了所述新配置是可行的,才可使用所述随机选择的新配置对该节点进行重新配置。
本发明的其他方面将部分地在以下说明中提出,并且部分地,从该说明将变得清楚起来,或者可通过实施本发明而学到。本发明的各方面将通过在所附权利要求中特别指出的诸部件和组合来实现和达到。应当理解,前述一般说明和以下详细说明二者都只是示例性的和解释性的,而不是对如权利要求所主张的本发明的限制。


纳入本说明书之中并构成其一部分的附图描绘了本发明的各实施例,并与说明一起,用于解释本发明的原理。这里描绘的实施例在目前是优选的,然而应当理解,本发明并不限于所显示的精确安排和手段,其中图1是已使用本发明的自主最优化系统进行了配置的一节点群集的示意图。
图2是描绘了用于自主地最优化一群集中的各个节点的过程的流程图。
图3是一组群集的示意图,这些群集已使用本发明的自主最优化系统的一种全局实现进行了配置。
具体实施例方式
本发明是一种自主的基于群集的最优化系统、方法和装置。根据本发明的安排,一遗传计算过程可与配置参数、工作负荷描述和性能测量的一知识库结合起来,以提供对改变的工作负荷的在线的、实时的适应性。该遗传计算过程可以为该群集的各个节点产生各世代不同的配置。可以试验性地检验在一世代的各配置中的所选的配置以为该群集确定一更好的运行状态。因此,本发明遵循了一系统应当不断地寻求更好的操作状态的自主原则。比较而言,使用一知识库可确保对一更好的运行状态的适应能够快而有效,以及系统进行随时间而越来越集中的试验,来确定更好的运行状态。
图1是已使用本发明的自主最优化系统进行了配置的节点群集。所述自主最优化系统包括一控制器150,其既与知识库160又与节点140(为了描绘简单的目的,只显示了两个节点)的群集130耦合。所述控制器150是一监视系统,其可监视群集130中的各节点140的运行。特别地,所述控制器150可检测何时一节点140是运行的、该运行的节点140的性能特征、何时该节点140“崩溃”、以及何时该节点空闲。值得注意的是,通过监视一节点140的性能特征,所述控制器150进一步可检测由该节点140所处理的工作负荷的显著变化。
比较起来,知识库160可包括配置参数、工作负荷描述和性能测量之间的关系170。作为这些关系170的一部分,知识库160可以存储粒度数据(granular data),其包括节点140的各个工作负荷描述和节点140的各个性能测量。重要的是,知识库160还可存储应优选的一组配置参数以及应避免的一组配置参数。在这方面,知识库160可包括有效配置的一列表、历史上使用过的配置、以及尚未使用的配置。与每个配置相联系地,可存储这样的数据,该数据可指出一节点140的、与该特定配置有关的实际性能,以及该配置是应优选的还是应避免的。
除了群集130和知识库160,控制器150进一步可被耦合到一遗传计算过程120。该遗传计算过程120可执行一遗传算法,以从一些现有的配置参数世代产生一些新的配置参数世代。在所述遗传计算过程中可实施若干已知的遗传计算算法,包括与在本领域中已知的标准遗传算法一致的那些遗传算法。控制器150可访问在所产生的配置参数的一新世代中的各个配置参数,以便为群集130试验性地寻求一更好的运行状态。
最后,所述控制器150还可进一步地耦合到一组目标110。该组目标可包括所述群集130的性能以及在所述群集130中的各节点140的性能的基线目标。示例性基线目标可包括,例如,“该应用的响应时间在X秒的时间间隔中应当不超过Y毫秒。”试验性地,当一节点140未能满足目标140中的任何一个时,它的配置就可被标记为应受冷遇的,于是可应用一不同配置。可将满足了最低要求的各运行目标的试验添加到知识库10中,以形成对未来试验和配置改变的指导。这样,通过结合各目标110以及通过试验性地确保对在群集130中的各节点140所应用的不同配置达到了这些目标110,群集130的目标函数就可由遗传计算过程120和知识库160的联合行动所最优化。
图2是一流程图,其示出了对一群集中的各个节点自主地进行最优化的过程。该过程开始于块205,可监视诸节点的该群集以确定何时配置的改变是适宜的。当未达到性能目标,当一节点发生故障时,当一节点变为空闲的时,当工作负荷已发生显著的变化时,当已经过了一定量的时间时,或当发生任何其他适当的判据时,配置的改变就可以是适宜的。在判断块210,如果配置的改变是不适宜的,则该过程可返回到块205,于是可继续监视该群集。否则,该过程可继续进行到块215。
当判断配置的改变是适宜的时,在块215可为受影响的节点确定其当前工作负荷。在块220,可基于所确定的工作负荷产生各可能配置的一初始群体。更具体地说,在所述知识库中,可包括一组记录,在这种记录中,配置、工作负荷描述和性能测量可彼此相关。因此,获取初始的一组可能配置可包括扫描所述知识库,以根据所述所确定的工作负荷寻找相关的配置。
在任何情况下,除了从所述知识库中获取已知的可能配置外,在块225可随机地产生附加的配置。在块230,可对这些配置应用如在遗传编程领域已知的一交叉操作,以产生一组子配置。此外,在块235,可对所述一组子配置应用一语义驱动的选择性的变异,以产生可能配置的一新世代。最后,在块240,可从所述可能配置的新世代选择一新的配置。
在判断块245,可确定所述随机选择的新配置是否在语义上是相关的并因而是可行的。如果否,则在块250,可从所述可能配置的新世代中再随机地选择另一配置,并且再次地,在块245,可确定所述随机选择的新配置是否是可行的。块245和250的这一过程可以重复下去,直到一配置被确定为可行的。在这种情况下,在块255,可将所述可行的配置应用到所述受影响的节点,并在块260,可将所述配置写入所述知识库中。
重要的是,尽管图2的过程特别涉及了一群集中的一单个节点的配置,本领域的技术人员将认识到,这一限制只是为了说明简单的目的而显示的。事实上,本领域的技术人员应当进一步认识到,图2的过程可被扩展到在一群集中的全部或一部分节点,并且还可跨越多个群集。此外,本发明的知识库无需被限制为严格地耦合到监视一单个群集的一单个控制器。而是,该知识库可被全局化,并耦合到监视着多个各自的群集的多个控制器,以致于可以为整个企业而利用存储在该知识库中的配置的范围和意义。
在这方面,图3是已使用本发明的自主最优化系统的一全局实现进行了配置的一组群集的示意图。如从对图3的考察可看到的,多个群集330A、330B(为了说明的简单只显示了两个)可由各自的控制器350A、350B监视。每个控制器可耦合到各自的遗传计算过程320A、320B,尽管本发明在这方面是不受限制的。相反地,一单个共享的遗传计算过程(未示出)可构成用于创建配置参数的新世代的基础,或者各实施着相同或不同的遗传算法的不同遗传计算过程可耦合到他们各自的控制器350A、350B。
在任何情况下,基于每个群集的目标310A、310B,不同的配置参数可被应用于在每个群集330A、330B中的各节点以获得更优化的状态。当试验性地发现各配置参数的某种组合是最优的和应优选的或应受冷遇的时,可将这些配置如此这般地写入全局知识库360中。这样,可对全局知识库360本身进行数据挖掘,以不仅产生用于在群集330A、330B中的各节点的配置的各最佳实践370的一列表,而且产生用于在群集330A、330B中的各节点的配置的各最差实践的一列表380。
本发明可在硬件、软件或硬件和软件的结合中实现。本发明的方法和系统的一种实施方式可以一集中方式在一个计算机系统中实现,或者以一分布方式实现,其中不同部件分布在若干个互连的计算机系统中。任何种类的计算机系统,或适应于完成这里描述的方法的其他装置,都适合于完成这里描述的功能。
硬件和软件的一种典型结合可以是带有一计算机程序的一通用计算机系统,当该计算机程序被载入和执行时,控制所述计算机系统,以使其执行这里描述的方法。本发明也可以被嵌入一计算机程序产品中,该计算机程序产品包括使能实施这里描述的方法的所有功能,并且当被载入一计算机系统中时能够执行这些方法。
在这里的上下文中,计算机程序或应用意味着以任何语言、代码或符号表示的、一组指令的任何表达式,该组指令旨在使得具有信息处理能力的一系统或者直接地或者在完成了以下步骤中的任何一个或二者之后执行一特定功能a)转换成另一种语言、代码或符号;b)在一不同材料形式中复制。重要的是,本发明可以体现在其他特定形式中,而不脱离本发明的精神和本质特征,因此,当指出本发明的范围时,应当参照以下权利要求,而不是以上说明书。
权利要求
1.一种用于自主地配置一节点群集的系统,该系统包括工作负荷描述和相关的配置参数的知识库;遗传计算处理器,被编程为基于在所述知识库中的一组现有的配置参数,为一特定工作负荷产生一组所选的配置参数;以及,耦合于所述知识库和所述节点群集的控制器,所述控制器包括用于监视所述节点群集和用于将所述一组所选的配置参数中的各个配置参数应用到所述节点群集以获得改进的操作状态的程序单元。
2.权利要求1的系统,其中所述知识库进一步包括与所述工作负荷描述相关的性能测量。
3.权利要求1的系统,其中所述知识库进一步包括可接受的配置参数的列表,这些配置参数当被应用时将获得超过预定的基线目标的性能水平。
4.权利要求1的系统,其中所述知识库进一步包括不可接受的配置参数的列表,这些配置参数当被应用时将无法获得超过预定的基线目标的性能水平。
5.权利要求1的系统,其中所述知识库被配置为耦合到多个控制器,所述多个控制器进一步耦合到多个相应的节点群集。
6.一种用于自主地最优化一节点群集的方法,该方法包括以下步骤检测在所述群集中的需要重新配置的一节点;确定由所述节点承担的工作负荷,并获取与所述工作负荷相关的一组配置参数;使用一遗传计算过程基于所述已获取的一组配置参数产生配置参数的一新世代;以及,使用配置参数的所述新世代中的所选择的配置参数重新配置所述节点。
7.权利要求6的方法,其中所述检测步骤包括检测选自这样一组的至少一个条件的步骤,该组包括节点崩溃、节点空闲、节点性能未达到要求和所述节点所承担的工作负荷的改变。
8.权利要求6的方法,其中所述产生步骤包括以下步骤对所述已获取的一组配置参数执行交叉操作;以及,变异所述已获取的一组配置参教中的至少一个元素,以产生配置参数的一新世代。
9.权利要求8的方法,其中所述重新配置步骤包括以下步骤从配置参数的所述新世代中随机地选择一新配置;确定所述随机选择的新配置是否是可行的;以及只有当所述新配置被确定为是可行的时,才使用所述随机选择的新配置来重新配置所述节点。
10.权利要求9的方法,进一步包括当所述随机选择的新配置被确定为是可行的时,将所述随机选择的新配置写入一知识库中的步骤。
11.权利要求9的方法,进一步包括以下步骤对于所述重新配置的节点测量其节点性能;以及如果所述重新配置的节点未能满足用于所述重新配置的节点的性能的各基线目标,则为所述节点选择一新的配置,并为所述所选择的新配置执行所述确定和重新配置步骤。
12.一种机器可读的存储装置,具有存储于其上的用于自主地对一节点群集进行最优化的计算机程序,所述计算机程序包括用于使得机器执行以下步骤的例行的一组指令检测在所述群集中的需要重新配置的一节点;确定由所述节点承担的工作负荷,并获取与所述工作负荷相关的一组配置参数;使用一遗传计算过程基于所述已获取的一组配置参数产生配置参数的一新世代;以及,使用所述配置参数的新世代中的所选择的配置参数重新配置所述节点。
13.权利要求12的机器可读的存储装置,其中所述检测步骤包括检测选自这样一组的至少一个条件的步骤,该组包括节点崩溃、节点空闲、节点性能未达到要求和所述节点所承担的工作负荷的改变。
14.权利要求12的机器可读的存储装置,其中所述产生步骤包括以下步骤对所述已获取的一组配置参数执行一交叉操作;以及,变异所述已获取的一组配置参数中的至少一个元素,以产生配置参数的一新世代。
15.权利要求14的机器可读的存储装置,其中所述重新配置步骤包括下步骤从所述配置参数的新世代中随机地选择一新配置;确定所述随机选择的新配置是否是可行的;以及只有当所述新配置被确定为是可行的时,才使用所述随机选择的新配置来重新配置所述节点。
16.权利要求15的机器可读的存储装置,进一步包括当所述随机选择的新配置被确定为是可行的时,将所述随机选择的新配置写入一知识库中的步骤。
17.权利要求15的机器可读的存储装置,进一步包括以下步骤对于所述重新配置的节点测量其节点性能;以及如果所述重新配置的节点未能满足用于所述重新配置的节点的性能的各基线目标,则为所述节点选择一新的配置,并为所述所选择的新配置执行所述确定和重新配置步骤。
全文摘要
一种用于自主地配置节点群集的系统,包括有关工作负荷描述以及相关的配置参数的知识库、被编程为基于在所述知识库中的一组现有的配置参数为一特定工作负荷产生所选的一组配置参数的遗传计算处理器、以及耦合到所述知识库和所述节点群集的控制器。所述控制器包括用于监视所述节点群集和用于将所述所选的一组配置参数中的各个配置参数应用到所述节点群集以获得改进的运行状态的程序单元。
文档编号G06F15/173GK1598803SQ200410048318
公开日2005年3月23日 申请日期2004年6月17日 优先权日2003年9月16日
发明者D·L·卡明斯基, J·M·莱克, D·M·奥格尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1