计算机集群中的数据采集的制作方法

文档序号:6484982阅读:174来源:国知局
专利名称:计算机集群中的数据采集的制作方法
技术领域
本发明一般地涉及包括多个计算机节点的计算机集群。更特别地,本发明涉及一种在集群内采集状态信息的机制。在本申请文件中,状态信息指的是指示计算机节点的资源怎样能够完成它们的在集群中的任务的数据。因而,该状态信息可能不但包括指示计算机节点的各种资源的当前负载的数据,而且包括关于在计算机节点中的资源的当前性能或容量的数据,也就是关于该资源完成它们的在集群中的任务的当前能力的数据。
背景技术
众所周知,计算机集群是一组共同工作以完成一个或多个任务的计算机。例如,计算机集群能够被用于负载均衡、改进的容错(也就是,改进的在出现错误情况下的可用性)或者并行计算。
典型的计算机集群包括多个计算机节点。在这里,计算机节点指的是装配了专用处理器、存储器和操作系统以及网络接口的实体,该计算机节点能够通过所述网络接口与集群的其它计算机节点通信。在集群中,至少一个计算机节点能够充当管理集群的管理员节点。为了在集群中检测故障,管理员节点周期性地向在集群中的其它计算机节点发送某些被称为心跳(heartbeat)的消息。典型地,在某时仅一个计算机节点充当管理员节点。
控制软件典型地驻留在管理员节点中,不得不监控属于集群的所有计算机节点。为了获得节点的状态的真实的和最新的picture,该控制软件不得不以相当高的频率从节点采集状态信息。这是一个问题,尤其在可能包括十个,乃至好几百个计算机节点的大型集群中。在这些大型计算机集群中,数据采集率不得不有利于网络和计算机节点的性能地予以折衷,以确保网络不会因为数据采集变得拥塞,并且尽管有被执行的数据采集,计算机节点的性能仍然保持在可接受的水平上。换言之,在大型集群中,为了不过度地降低网络或计算机节点的性能,数据采集率不得不予以折衷。
本发明的目的是消除或缓和这个缺点。

发明内容
本发明试图提出一种新的从计算机集群的计算机节点采集状态信息的机制。本发明试图提供一种即使在大型集群中也不需要有利于网络或节点性能地折衷状态信息的采集率的机制。
在本发明中,计算机集群的内部特性,即心跳机制被用于为了监控和控制的目的从计算机节点采集状态信息。如在下面所述,采集到的状态信息可以在计算机集群中内部地予以使用,或者由诸如网络监控或管理系统的外部实体使用。
依据本发明的一个实施例,一种在计算机集群中传送状态信息的方法使用了多个计算机节点。该方法包括从计算机集群的第一计算机节点向该计算机集群的第二计算机节点传输心跳消息的步骤,第二计算机节点包括至少一个执行至少一个特定于集群的任务的资源,以及在第二计算机节点中接收心跳消息的步骤。该方法还包括为作为对心跳消息的响应而被发送的心跳确认消息检索状态信息,该状态信息指示该至少一个资源执行至少一个特定于集群的任务的能力,以及向第一计算机节点发送在心跳确认消息中的状态信息。
在另一个实施例中,本发明提供了一种具有多个计算机节点的计算机集群。该计算机集群包括从该计算机集群的第一计算机节点向该计算机集群的第二计算机节点传输心跳消息的第一装置,第二计算机节点包括至少一个执行至少一个特定于集群的任务的资源,以及在第二计算机节点中接收心跳消息的第二装置。该计算机集群还包括为作为对心跳消息的响应而被发送的心跳确认消息获取状态信息的第三装置,该状态信息指示该至少一个资源执行至少一个特定于集群的任务的能力,以及向第一计算机节点发送在心跳确认消息中的状态信息的第四装置。
在另一个实施例中,本发明为计算机集群提供了一种计算机节点。该计算机节点包括至少一个执行至少一个特定于集群的任务的资源、从另一个计算机节点接收心跳消息的第一装置、为作为对心跳消息的响应而被发送的心跳确认消息检索状态信息的第二装置,该状态信息指示该至少一个资源执行至少一个特定于集群的任务的能力,以及响应第二装置而向另一个计算机节点发送在心跳确认消息中的状态信息的第三装置。
按照本发明,实时状态信息能够从计算机集群的计算机节点被采集到,而且不会过度地增加网络或计算机节点的负载,也就是信息采集率不需要由于采集导致的负载而予以折衷。由确认消息的增加的长度导致的开销比较低,尤其在不超出最小传输单元的长度的情况下。
在本发明的一个实施例中,接收心跳消息的计算机节点检查是否要为作为对心跳消息的响应予以发送的心跳确认消息获取状态信息。这样,状态信息的不必要的传送能够得以避免。
本发明其他的优点在于,采集到的信息能够同时为该计算机集群内部或外部的不同实体所用。
通过参考下面的详细描述和附图,本发明的其它特征和优势将变得直观。


在下面,参考在附图中的图1-5所示的例子,本发明和它的优选实施例得以更加严密地描述。
图1表示依据本发明的一个计算机集群;图2是表示考虑到一个心跳消息的管理员节点的具备操作的流程图;图3a是表示从计算机节点发送状态信息的一个实施例的流程图;图3b是表示从计算机节点发送状态信息的另一个实施例的流程图;图4是表示在计算机节点中的状态信息的采集的示意性框图;图5是依据本发明的心跳消息的表示方法。
具体实施例方式
图1示意了计算机集群100的例子,在所述计算机集群100中使用了本发明的机制。该集群包括N个计算机节点110i(i=1、2、3,...N)。每个计算机节点都是配备了处理器、存储器和它自己的操作系统副本的独立的实体。每个计算机节点还配备了将它连接至网络120的网络接口,典型地,所述网络120是基于因特网协议(IP)的网络。在这里要注意,本发明的机制不依赖于该传输协议,而可能在许多不同的环境中得以应用。然而,IP网络为本发明构成了典型的环境。
每一次,计算机节点之一,在这个例子中是节点1101担当管理该集群和其资源的管理员节点。为了检测在集群中发生的故障,管理员节点向在该集群中的其它计算机节点周期性地发送心跳消息HB。尽管该集群可能包括多个能够充当管理员节点的节点,但是每次仅这种节点之一担当管理员节点。典型地,单个心跳消息是以该集群的所有节点为目的地的组播消息,两个连续的心跳消息之间的周期主要取决于应用环境。
当计算机节点接收来自管理员节点的心跳消息时,它向管理员节点返回心跳确认消息HB_ACK,向管理员节点指示它是活动的,并且因此能够保留在该集群中。如果管理员节点没有从计算机节点接收心跳确认消息,它立即启动恢复措施。典型地,已经被检测出通信故障的计算机节点从该集群中予以删除,并且该节点的特定于集群的动作被重新分配给一个或多个其它节点。
该集群可以执行各种不同的任务,实际的应用可以在该集群内以各种方式予以分布。对于该集群的外部单元,一个或多个该集群节点可以呈现为单一的实体。例如,如果计算机节点执行路由,一个或多个计算机节点可以构成路由网络单元,如从该集群外部所见。在另一个例子中,对于外部观察者,所有计算机节点呈现为单一的实体。
如果在该集群中利用了负载共享组,一个或多个计算机节点还可以担当因特网协议导向器(IPD)节点,所述节点是在负载共享组内路由呼入任务请求的负载共享控制节点。在图1的例子中,计算机节点1102担当接收来自该计算机集群外部的任务请求的IPD节点。
在本发明中,为了从计算机节点采集状态信息,使用了计算机集群的固有心跳机制。可以仅为了该集群的目的,或者为该集群外部的诸如被连接至该网络的网络监控或管理系统160的实体采集数据。心跳确认消息被用以将状态信息从集群节点运载至管理员节点,所述管理员节点随后将该信息存储在管理信息库(MIB)150中。
在本发明的一个实施例中,对于在该计算机集群内的实体和该计算机集群外部的实体,MIB都是可用的。例如,该集群的内部故障管理可以利用采集到的数据。可以利用位于管理员节点中的代理130将故障管理逻辑分布在该集群中,以便故障管理系统能够从MIB读取数据。换言之,故障管理系统可以包括具有位于管理员节点中的服务器部分和位于计算机节点中的客户机部分的客户机/服务器机制。另一个能够利用MIB的集群实体是向执行所述任务的计算机节点分配进入任务的计算机节点。除了在上面提及的IPD节点之外,任何其它集群节点都可以担当这种负载均衡实体。
取决于是MIB构成独立的网络节点,还是它被连接至管理员节点,访问MID能够以任何方式直接地或通过管理员节点予以实现。除管理员节点之外,MID也可以被连接至计算机节点。
图2是示意管理员节点的关于被发送至另一个计算机节点的一个心跳消息的基本操作的例子的流程图。因而,在这里要注意,图2示意了关于被发送的一个心跳消息的操作,也就是,心跳消息的周期性的发送在图中没有予以显示。当管理员传输心跳消息时,它设置定时器(步骤201),并且开始监控是否接收了作为来自所述另一个计算机节点的响应的心跳确认消息(步骤202)。如果这个确认消息在定时器期满之前达到了,管理员节点检查该消息(步骤204)。如果管理员节点检测到该消息包含状态信息,它从该消息中提取所述信息,并且基于该信息更新MIB(步骤207)。在确认消息不含状态信息的情况下,管理员节点以常规的方式继续进行下去。
如果在接收到心跳确认消息之前,定时器期满了,管理节点断定该与计算机节点发生了通信故障,并且启动恢复措施(步骤205)。实际上,由定时器措施的时间周期很长,以至于在那个周期内不只一个心跳消息能够得以传输。随后,为任何一个消息接收到的心跳确认都会触发该处理转移至步骤204。通常,当N个连续心跳消息仍然没有来自那个计算机节点的确认时,管理员节点声明计算机节点有故障。因而,在启动恢复措施之前,管理员节点可以被允许丢失一定数量的心跳消息。特别在UDP(用户数据报协议)的情况下,所述协议常常被用于运载心跳消息,既便网络中不存在真正的问题,消息也可能被丢失。考虑到上述内容,图2仅被看作为在管理网络中的进入心跳确认消息的处理原理的表示,而有关的管理节点算法的实际实现在很多方面可以不同。
图3a是表示计算机节点的关于从管理员节点接收到的一个心跳消息的操作的例子的流程图。当接收到该心跳消息时,该计算机节点检查是否满足预定条件。为了不在确认消息中不必要地传送状态信息,设置了这个预定条件。如果满足该条件,该计算机节点从其存储器获取状态信息(步骤303),并且生成包含获取的状态信息的心跳确认消息。如果不满足预定条件,该计算机节点产生标准的心跳确认消息,也就是没有状态信息的心跳确认消息(302)。随后,产生的消息被发送回管理员节点(步骤305)。
典型地,为状态信息的获取而设置的预定条件是这样的自最近的至管理员节点的状态信息的传输以后,必须经过某个最小时间周期。如果已经超出了这个时间限制,就获取新的状态信息,并且插入心跳确认消息。否则,就发送标准的心跳确认消息。为了检测何时超出了时间限制,该计算机节点在步骤305启动计数器。随后,在步骤301检查计数器的当前值,以及其后的心跳消息。因而典型地,该计算机节点即发送标准的心跳确认消息,又发送包含状态信息的心跳确认消息,这两种消息类型的比例取决于接收到的心跳消息的速率。
为状态信息的检索而设置的预定条件还包括多个在检索状态信息之前必须满足的多个子条件。如果使用计算机节点的负载作为这种子条件,仅当自最近的状态信息的传输以后,经过了某个最小时间周期,并且计算机节点的当前负载处于某个最大水平之下的时候,状态信息的检索才可能发生,例如。
如在图3b中所示,也有可能该节点响应心跳消息的接收而确定要被检索的状态信息的类型(步骤311)。因而,连续的心跳确认消息可能运载不同类型的信息。例如,如果足够频繁地传输心跳消息,某些参数组能够由N个连续的心跳确认消息予以携带,相同的组可以由接下来的N个心跳确认消息再次予以运载等等。此外,较之于其它信息,可以不那么频繁地发送某些信息(参数)。
从存储器检索的状态信息通常取决于在该计算机节点上允许的应用。然而,对于所有计算机节点,某些涉及计算机操作系统的基本参数是相同的。这些参数包括指示CPU空闲时间和某个I/O操作的数量的数字,例如。基本上,状态信息能够被分成两组涉及应用的性能的参数和涉及节点平台的性能和/或状态的参数。
图4示出了在计算机节点中的心跳确认的生成的软件体系结构的例子。位于内核空间的内核模块400直接从计算机节点的内核空间接收涉及操作系统的参数。在执行应用的用户空间,每个应用401可以具有库402,通过所述库402,应用401能够向内核模块写入有关的参数。如果满足预定条件,位于用户空间的管理代理403从核心模块获取状态信息,并且构造包含了获取的信息的心跳确认消息。因而,在图4的实施例中,在操作系统中实现了状态信息的存储,所述实现方式提供了较快的操作。然而,状态信息也可以被存储在诸如磁盘的大容量存储器中。
图5表示了包含状态信息的心跳确认消息的一般结构。该消息包含三个连续的部分包含有关协议的协议首标(诸如以太网、IP和TCP/IP首标)的首标部分501、确认标识符502和包含在计算机节点中获取的状态信息的有效载荷部分503。因而,该消息不同于常规的心跳确认消息,它包括了包含状态信息的有效载荷部分。在本发明的一个实施例中,使用ASN.1(抽象语法表示法1)和PER(压缩编码规则)编码对有效载荷部分进行编码。这样,状态信息能够被有效地压缩,并且更多的信息能够被插入相同的消息空间。取决于所使用的协议,部分状态信息可以不在网络中导致任何额外的负载地予以传输。这是如果常规的心跳消息的长度小于最小传输单元的长度的情况,在所述情况中,状态信息可以被用作为插入比特。
与由常规的心跳确认消息导致的负载相比较,由本发明的心跳确认消息导致的负载增加是相对小的。这是因为既然在短消息中协议首标占用了被传输消息的较大部分,那么由稍长的消息导致的开销是相对低的。此外,由于短于最小消息长度的消息通常要被填满,它们现在可以利用状态信息予以填充。这样,部分状态信息可以不在网络中导致额外的负载地予以传输。因此,由本发明的方法导致的额外的负载也取决于本发明所应用的环境。在以太网中,例如,这个最小消息长度是64个字节,所述最小消息长度大于501和502部分需要的长度。
尽管本发明在上面参考在附图中所示的例子予以了描述,显然本发明不局限于此,而是可以由本领域的技术人员在不偏离本发明的范围和精神的前提下予以修改。例如,没有必要检查是标准的心跳确认消息,还是包含状态信息的心跳确认消息要被发送,相反地,能够响应每个心跳消息而发送包含状态信息的确认消息。
权利要求
1.一种在包括多个计算机节点的计算机集群中传递状态信息的方法,所述方法包括如下步骤从计算机集群的第一计算机节点向所述计算机集群的第二计算机节点传送心跳消息,其中所述第二计算机节点包括用于执行至少一个特定于集群的任务的至少一种资源;在所述第二计算机节点中接收所述心跳消息;为作为对所述心跳消息的响应而被发送的心跳确认消息检索状态信息,所述状态信息指示所述至少一种资源执行所述至少一个特定于集群的任务的能力;以及向所述第一计算机节点发送所述心跳确认消息中的状态信息。
2.根据权利要求1所述的方法,还包括响应于所述接收步骤,检查是否要为所述心跳确认消息检索状态信息的步骤。
3.根据权利要求2所述的方法,其中所述检查步骤包括检查是否满足预定条件。
4.根据权利要求3所述的方法,其中当所述检查步骤指示所述预定条件得以满足时,执行所述检索和发送步骤,并且所述方法还包括当所述检查步骤指示所述预定条件未能得以满足时,传送不带有状态信息的心跳确认消息的步骤。
5.根据权利要求1所述的方法,还包括确定要为所述心跳确认消息检索的状态信息的类型的步骤。
6.根据权利要求1所述的方法,还包括将发送到所述第一计算机节点的状态信息存储在管理信息库(MIB)中的步骤。
7.根据权利要求6所述的方法,还包括从所述管理信息库向所述计算机集群的外部实体传递数据的步骤。
8.一种包括多个计算机节点的计算机集群,所述计算机集群包括从所述计算机集群的第一计算机节点向所述计算机集群的第二计算机节点传送心跳消息的第一装置,其中所述第二计算机节点包括用于执行至少一个特定于集群的任务的至少一种资源;在所述第二计算机节点中的接收心跳消息的第二装置;为作为对所述心跳消息的响应而被发送的心跳确认消息检索状态信息的第三装置,所述状态消息指示所述至少一个资源执行所述至少一个特定于集群的任务的能力;和向所述第一计算机节点发送所述心跳确认消息中的状态信息的第四装置。
9.根据权利要求8所述的计算机集群,还包括可操作地连接到所述第一计算机节点的管理信息库(MIB),用于存储被发送到第一计算机节点的状态信息。
10.根据权利要求9所述的计算机集群,还包括从所述计算机集群访问所述管理信息库的第一访问装置。
11.根据权利要求9所述的计算机集群,还包括从所述计算机集群的外部访问所述管理信息库的第二访问装置。
12.根据权利要求11所述的计算机集群,其中所述第二访问装置包括所述第一计算机节点中的网络接口。
13.一种计算机集群的计算机节点,所述计算机节点包括执行至少一个特定于集群的任务的至少一种资源;从另一个计算机节点接收心跳消息的第一装置;为作为对所述心跳消息的响应而被发送的心跳确认消息检索状态信息的第二装置,其中所述状态信息指示所述至少一个资源执行所述至少一个特定于集群的任务的能力;以及响应于所述第二装置而向所述另一个计算机节点发送所述心跳确认消息中的状态信息的第三装置。
14.根据权利要求13所述的计算机节点,还包括检查是否要为所述心跳确认消息检索状态信息的第四装置。
15.一种在包括多个计算机节点的计算机集群中获得状态信息的方法,所述方法包括如下步骤从所述计算机集群的第一计算机节点向所述计算机集群的第二计算机节点传送心跳消息,其中所述第二计算机节点包括用于执行至少一个特定于集群的任务的至少一种资源;等待接收来自所述第二计算机节点的心跳确认消息;以及接收包含指示所述至少一个资源执行所述至少一个特定于集群的任务的能力的状态信息的心跳确认消息。
16.根据权利要求15所述的方法,还包括将发送到所述第一计算机节点的状态信息存储在管理信息库(MIB)中的步骤。
17.根据权利要求16所述的方法,还包括从所述管理信息库向所述计算机集群的外部实体传递数据的步骤。
18.根据权利要求15所述的方法,其中所述接收心跳确认消息的步骤还包括当在预定时间周期内没有接收到心跳确认消息时,将所述第二计算机节点从所述集群中删除。
19.一种在包括多个计算机节点的计算机集群中提供状态信息的方法,所述方法包括如下步骤由所述计算机集群的第二计算机节点等待接收来自所述计算机集群的第一计算机节点的心跳消息;接收来自所述第一计算机节点的心跳消息,其中所述心跳消息包含用于执行至少一个特定于集群的任务的至少一种资源;以及传送包含指示所述至少一个资源执行所述至少一个特定于集群的任务的能力的状态信息的心跳确认消息。
20.根据权利要求19所述的方法,还包括响应于所述接收步骤而检查是否要为心跳确认消息检索状态信息的步骤。
21.根据权利要求20所述的方法,其中所述检查步骤包括检查是否满足预定条件。
22.根据权利要求21所述的方法,其中当所述检查步骤指示所述预定条件得以满足时,执行为所述心跳确认消息检索状态信息的步骤以及所述传输步骤,并且所述方法还包括当所述检查步骤指示所述预定条件未能得以满足时,传送不带有状态信息的心跳确认消息的步骤。
23.根据权利要求19所述的方法,还包括确定将为所述心跳确认消息检索的状态信息的类型的步骤。
全文摘要
本发明公开了一种在具有多个计算机节点的计算机集群中传输状态信息的机制。在所述方法中,心跳消息被周期性地从计算机集群的第一计算机节点向所述集群中的其它计算机节点发送。每个其它节点包括至少一个执行至少一个特定于集群的任务的资源。为了甚至可以在大型集群中采集最新的关于所述资源执行特定于集群的任务的能力的状态信息,而不过度地增加计算机节点和网络的负载,当前状态信息得以在心跳确认消息中返回发送心跳消息的节点。
文档编号G06F15/173GK1795446SQ200480014430
公开日2006年6月28日 申请日期2004年5月24日 优先权日2003年5月27日
发明者朱卡·A.·维尼奥, 蒂姆·V.·杰龙恩 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1