用于在分布式计算体系结构中执行作业的系统和方法.pdf

上传人:a2 文档编号:501041 上传时间:2018-02-19 格式:PDF 页数:32 大小:1.35MB
返回 下载 相关 举报
摘要
申请专利号:

CN200410049834.8

申请日:

2004.06.24

公开号:

CN1595360A

公开日:

2005.03.16

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F9/46

主分类号:

G06F9/46

申请人:

国际商业机器公司;

发明人:

U·巴赫尔; O·本克; B·贝茨勒; T·隆普; E·帕施

地址:

美国纽约

优先权:

2003.09.12 EP 03103377.2

专利代理机构:

北京市中咨律师事务所

代理人:

于静;李峥

PDF下载: PDF下载
内容摘要

本发明提供在使用工作者客户机的分布式计算体系结构中执行作业的系统和方法,所述工作者客户机的特征在于具有:检查点机制部件,用于产生被指派给至少一个工作者客户机的检查点信息;至少一个被指派给该工作者客户机的故障转接系统;用于在工作者客户机故障的情况下,自动向被指派给所述工作者客户机的故障系统指派至少一个现有的或新创建的故障转接系统的部件(故障转接系统选择部件),其中该所指派的故障转接系统提供所有功能部件,以便当所述所指派的工作者客户机发生故障时接管作业的执行,其中该所指派的故障转接系统进一步包括至少一个故障转接监视部件,其用于检测所述所指派的工作者客户机的故障转接情况。

权利要求书

1.  一种分布式计算体系结构中的工作者客户机(5),该分布式计算体系结构具有用于将处理任务分割为较小单元(作业)的指定计算机(分布式管理服务器,2),用于将每个所述作业传输给多个工作者客户机(5)中的一个以便执行所述所指派的作业的计算机网络,其中每个工作者客户机(5)的特征在于具有:
检查点机制部件(3),其用于产生被指派给至少所述工作者客户机(5)的检查点信息;
至少一个故障转接系统(8),其被指派给所述工作者客户机(5);
用于在所述工作者客户机故障的情况下,向至少指派给所述工作者客户机(5)的所述故障系统自动指派至少一个现有的或新创建的故障转接系统(8)的部件(故障转接系统选择部件,39),
其中所述所指派的故障转接系统提供所有的功能部件,以便当所述所指派的工作者客户机发生故障时接管作业的执行;
其中所述所指派的故障转接系统进一步包括至少一个故障转接监视部件(10),其用于检测所述所指派的工作者客户机(5)的故障转接情况。

2.
  根据权利要求1的工作者客户机,进一步具有所指派的与故障转接系统(8)相同的功能部件,以便可被选择作为用于其他工作者客户机(多个)或故障转接系统(多个)的故障转接系统。

3.
  根据权利要求2的工作者客户机,进一步具有所指派的故障转接监视部件(10),其用于检测一所指派的工作者客户机(5)的故障转接情况。

4.
  根据权利要求1的工作者客户机,其中每个工作者客户机(5)被指派了多个故障转接系统(8)。

5.
  根据权利要求3的工作者客户机,其中所述多个故障转接系统包括在所述多个故障转接系统(8)的其他每一个中确定一个作为新的工作者客户机(5)的部件(分组/定额部件38)。

6.
  根据权利要求5的工作者客户机,其中所述故障转接系统选择部件(39)通过所定义的与候选故障转接系统的通信协议,或通过访问提供具有所有候选故障转接系统的列表的服务,为它的所指派的工作者客户机(5)确定故障转接系统(8)。

7.
  根据权利要求1的工作者客户机,其中所述分布式计算基础架构是网格基础架构。

8.
  一种分布式计算基础架构中的故障转接系统(8),该分布式计算基础架构具有用于将处理任务分割为较小单元(作业)的指定计算机(2),用于将每个所述作业传输给多个工作者客户机(5)中的一个以便执行所述所指派的作业的计算机网络,其特征在于,
所述故障转接系统(8)被指派了至少一个特定工作者客户机(5),该工作者客户机具有所指派的检查点机制部件(3),其用于产生至少所述工作者客户机(5)的检查点信息;和用于在所述工作者客户机故障的情况下,自动地向被指派给所述工作者客户机(5)的所述故障系统指派至少一个现有的或新创建的故障转接系统(8)的部件(故障转接系统选择部件,39),其中所述故障转接系统进一步包括所有功能部件,以便当所述所指派的工作者客户机发生故障时接管作业的执行,以及至少一个故障转接监视部件(10),其用于检测所述所指派的工作者客户机的故障转接情况。

9.
  根据权利要求8的故障转接系统,进一步具有与所述工作者客户机相同的功能部件,以便可另外被选择为工作者客户机。

10.
  根据权利要求9的故障转接系统,进一步具有所指派的检查点机制部件(3),其用于产生至少一个所指派的工作者客户机的检查点信息;及用于在所述工作者客户机发生故障的情况下,自动地向被指派给所述工作者客户机的所述故障系统指派至少一个现有的或新创建的故障转接系统的部件(故障转接系统选择部件,39)。

11.
  根据权利要求9的故障转接系统,进一步包括在该发生故障的情况下,在被指派给该相同工作者客户机的各故障转接系统之中确定一个新的工作者客户机的部件(分组/定额部件,38)。

12.
  根据权利要求8的故障转接系统,其中所述分布式计算基础架构是网格基础架构。

13.
  一种分布式计算基础架构,具有
分布式管理服务器,其用于接收处理任务,将它们分割为较小工作单元(作业),并为执行所述作业选择工作者客户机(5);计算机网络,其用于将每个所述作业传输给多个工作者客户机中的一个以执行所述所指派的作业;多个工作者客户机;
其特征在于具有,
检查点机制部件(3),其用于产生检查点信息,其中所述检查点机制被指派给至少一个所述工作者客户机(5);
至少一个故障转接系统(8),其被指派给所述工作者客户机(5),其中所述所指派的故障转接系统提供所有功能部件以便当所述所指派的工作者客户机发生故障时接管作业的执行;
用于在所述工作者客户机发生故障的情况下,自动向被指派给每个工作者客户机的所述故障系统指派至少一个现有的或新创建的故障转接系统的部件(故障转接系统选择部件,39);
其中所述所指派的故障转接系统进一步包括至少一个故障转接监视部件,其用于检测所述所指派的工作者客户机的故障转接情况。

14.
  一种在分布式计算基础架构中执行工作单元(作业)的方法,该分布式计算基础架构具有分布式管理服务器和工作者客户机,其中所述分布式管理服务器获得执行任务的请求,将该任务划分为较小单元(作业),为每一作业选择工作者客户机并将所述作业发送给所述选定的工作者客户机,在所述工作者客户机处的所述方法包括以下步骤:
为执行作业的所述工作者客户机确定至少一个所指派的故障转接系统;
向所述故障转接系统提供由所述工作者客户机产生的检查点信息;
允许监视所述工作者客户机以便检测故障;
其中在所述工作者客户机发生故障的情况下,所述故障转接系统接管并继续所述作业的执行,并自动向所述故障转接指派一现有的或新创建的故障转接系统。

15.
  一种在分布式计算基础架构中执行工作单元(作业)的方法,该分布式计算基础架构具有分布式管理服务器、工作者客户机、及可被选择为故障转接系统的系统,其中所述分布式管理服务器获得执行任务的请求,将该任务划分为较小单元(作业),为每一作业选择工作者客户机并将所述各作业发送给所述选择的工作者客户机,在所述可被选择为故障转接系统的系统处的所述方法包括以下步骤:
允许由工作者客户机选择为故障转接系统;
从所述所指派的工作者客户机接收检查点信息;
监视所述所指派的工作者客户机以便检测故障;
在检测到故障的情况下,通过使用所述检查点信息由所述所指派的故障转接系统接管并继续所述作业的执行;以及
向继续所述作业的执行的所述故障转接系统指派至少一个现有的或新创建的故障转接系统。

16.
  存储于一数字计算机内部存储器中的计算机程序产品,包括在该产品运行于该计算机上的情况下执行根据权利要求14或15的方法的软件代码部分。

说明书

用于在分布式计算体系结构中执行作业的系统和方法
技术领域
本发明涉及用于在分布式计算体系结构(例如,网格体系结构)中执行作业的系统和方法,更具体地,涉及在故障情况下,保证完成被指派给分布式计算体系结构中的特定工作者客户机(worker client)的作业的执行。本专利申请中使用的术语“分布式计算体系结构”意指诸数据处理系统(工作者客户机)的任何大型协作,在该协作中单个数据处理系统的所有者允许将他们的计算机的一些处理时间用于服务于大型问题。分布式计算体系结构包括至少一个分布式管理服务器和n个工作者客户机。分布式管理服务器获得执行任务的请求,将该任务划分为较小的工作单元(作业),为每个作业选择工作者客户机,将所述作业发送给所述选定的工作者客户机,接收来自单个工作者客户机的结果,并将整合的结果返回给请求者。
本专利申请中使用的术语“网格体系结构”是一种允许将第三方系统注册为工作者客户机的特定分布式计算体系结构。
背景技术
更详细地,分布式计算体系结构(见图1)包括安装在若干工作者客户机(5)上的软件代理、及一个或多个专用的分布式计算管理服务器(2)。还可能存在请求工作者客户机,其具有允许请求工作者客户机将作业随同其所需资源的列表一起提交的软件。
运行于处理工作者客户机上的代理检测系统何时空闲,通知管理服务器(2)该系统可用于处理,并向服务器请求应用包且当其具有空闲CPU周期时运行该软件,并将结果回送给服务器。
分布式计算管理服务器(2)具有几个职能。它们接受分布式计算请求(1),将它们的大型处理任务划分为能够运行于单个系统上的较小工作单元(作业,17),将应用包和一些客户机管理软件发送给请求它们的空闲工作者客户机(15、16),监视正由该工作者客户机运行的作业的状态,并且对该客户机发回的结果进行组合(18)。
如果管理服务器在某一时间段之内没有从处理工作者客户机收到回复,因为很长一段时间以来,该用户已经断开了他的系统或他正繁重地使用该系统,则管理服务器可将该相同应用发送给另一空闲系统。或者,它可能一次向几个系统发出了该包,并设想将有多组结果被返回。该服务器还根据需要管理任何安全、策略、或其他管理功能。
分布式计算体系结构的复杂性随着它的大小和环境类型而增加。包括遍布于Web的多个部门、合伙人、或参与者的较大型环境需要复杂的资源识别、策略管理、验证、加密等。
显然地,应用本身必须适合于分布式计算。
在具有众多工作者客户机的分布式计算环境中,如果特定工作者客户机发生故障,例如由于网络连接失败或它的过分使用,则存在着保证指派给该特定客户机的作业的完成的问题。当前解决该问题的方案是将该作业指派给另一个工作者客户机(故障转接系统),并在该新工作者客户机上从头重新启动该作业。一个根本的缺点是已由故障工作者客户机完成的至少直到检查点(checkpoint)的作业计算被丢失,如果实现了检查点操作的话。
本专利申请中使用的术语检查点意指程序中的指定点,在此点处理被中断且所有状态信息被记录以便在此点重新启动该进程,由此不必从头重复此处理。
此外,该方法需要或者通过所谓的心跳(heartbeat)(非常资源密集且很难在分布式计算基础架构中实现)或者通过被设置为估计完成时间加上附加安全余量的超时来检测工作者客户机的故障。然而,这意味着分布式计算管理服务器在计算应该已经完成的时间点上重新启动该计算。其结果是在完成计算方面存在大的延迟。
如果实现了检查点操作,则存在它可实现于其上的两个可能的层次。
在工作者客户机上的检查点操作防范应用软件故障。工作者客户机可以自动地重新启动所指派的工作负载的计算。
在中央分布式管理服务器上的检查点操作防范分布式计算基础架构中的所有故障。然而,它在资源消耗方面是非常昂贵的。每个工作者客户机都需要与中央分布式管理服务器保持联系,例如,这需要可靠的网络连接和该管理服务器上的大的计算能力。
发明内容
由此,本发明的目的在于提供用于在分布式计算体系结构中执行作业的改进的方法和系统,其避免了现有技术方案的不足。
本发明提供了用于在使用工作者客户机的分布式计算体系结构中执行作业的系统和方法,这些工作者客户机特征在于具有:检查点机制组件,其用于产生被指派给至少一个工作者客户机的检查点操作信息;至少一个故障转接系统,其被指派给该工作者客户机;用于在工作者客户机发生故障的情况下,自动向被指派给所述工作者客户机的故障系统指派至少一个现有的或新创建的故障转接系统的部件(故障转接系统选择部件),其中所指派的故障转接系统提供所有地功能部件,以便当所述所指派的工作者客户机发生故障时接管作业的执行,其中该所指派的故障转接系统进一步包括至少一个故障转接监视部件,其用于检测所述所指派的工作者客户机的故障转接情况。
附图说明
在下面详细描述的说明中,本发明的上述及其他目的、特征和优点将是显而易见的。
在所附权利要求中陈述了本发明的新颖特征。然而,通过结合附图参考下述对示例实施例的详细说明,将对本发明本身、及其优选使用模式、进一步的目的和优点有更好的理解,其中:
图1显示现有技术的分布式计算体系结构;
图2A显示本发明在根据图1的分布式计算体系结构中的基本实现;
图2B显示本发明在根据图2A的体系结构中的诸方法步骤的流程图;
图2C显示在本发明的分布式管理服务器中的处理流程;
图2D显示在本发明的工作者客户机中的处理流程;
图2E显示在本发明的故障转接系统中的处理流程;
图2F显示本发明的优选地作为分布式管理服务器的一部分的合并器中的处理流程;
图2G显示本发明的在简化的分布式计算体系结构中的故障转接情形;
图3A显示本发明在网格体系结构中的优选实现;
图3B显示作为根据图3A的网格体系结构中一部分的工作者客户机的结构的更详细视图;
图3C显示作为根据图3A的网格体系结构中一部分的故障转接系统的结构的更详细视图;以及
图3D显示作为根据图3A的网格体系结构中一部分的网格代理(broker)的结构的更详细视图。
具体实施方式
参考图2A,其中显示了在根据图1的包括n个工作者客户机5和至少一个分布式管理服务器2的分布式计算体系结构中本发明的基本实现。向每个本发明的工作者客户机5至少指派了一个检查点机制3、n个故障转接系统8、和一个故障转接系统选择部件39。
检查点机制3向所有它的所指派的故障转接系统8提供检查点信息。
故障转接系统8是后援系统,其可在工作者客户机5出现故障的任何时间接管该工作者客户机的作业的执行。工作者客户机5可具有多个故障转接系统8。故障转接系统8能够访问监视着至少一个工作者客户机5的监视部件10,并且一旦工作者客户机发生故障,则一个故障转接系统8接管作业并继续该作业的执行。在故障转接系统8相互之间存在通信,以便确保只有一个故障转接系统8接管该作业(见分组/定额部件38)。应该指出,如同对于工作者客户机5,故障转接系统8也可以是虚拟工作者客户机5。故障转接系统8可充当对于多个工作者客户机5上的多个作业的监视器。故障转接系统8′也可以是并行地运行的多个作业的工作者客户机5。在此情况下,每个故障转接系统8′还另外包括作为任何其他工作者客户机工作所需的所有功能部件,例如另外包括如下所述的检查点机制3和故障转接系统选择部件39。
从工作者客户机到故障转接系统的连接20-22可以是使用HTTP或IP协议的任何网络连接。但是,使用任何其他现有技术的通信协议的任何其他连接都可替代使用。
故障转接系统选择部件39提供了选择故障转接系统并将它们指派给特定工作者客户机的功能。将结合图3C对故障转接系统选择部件的特定实现细节进行更详细的描述。
在本发明的一个优选实施例中,每个工作者客户机5′另外还提供了作为故障转接系统工作所需的所有功能部件,这意味着这样它便可被另一个工作者客户机5选择作为故障转接系统8。在上述优选实施例中,还向每个工作者客户机5′另外指派了监视/心跳服务部件10,部件10提供了用于检查要被指派的工作者客户机5的状态并答复来自工作者客户机的状态请求,例如工作或未工作的状态信息的机制。
分布式管理服务器2至少包括工作者客户机选择服务部件15,其提供了确定运行作业的工作者客户机5的机制;工作单元传输部件16,其提供了发送应用本身、作业参数和输入文件,并从工作者客户机5接收作业结果的机制;作业分割服务部件17,其提供了将处理任务分割为较小工作单元(作业)的机制;以及合并/任务组合部件18,其提供了创建合并的结果并将其提供给请求系统1的机制;调度器服务部件19,其提供了将作业指派给作为分布式体系结构的一部分且由工作者客户机选择服务部件预先选定的工作者客户机的机制。
本发明的分布式计算体系结构不需要任何中央实例。工作负载的分割和合并、调度、工作者客户机的指派及工作者客户机的选择不是单一故障点(single point of failure)且不需要中央实例。只要求诸工作者客户机通过某一公共网络连接。只有当该网络的主要区域停止服务时,所提出的高可用性系统才会失败。
可以分布式方式完成每个管理动作。以分布式方式可以很容易地实现分发和重新组合工作负载所需的、可能具有如负载平衡那样的优化的管理。因此,本发明的可伸缩性是无限的,因为不存在限制本发明可伸缩性的任何中央实例。
本发明的系统可以自主地修复自身并达到给定冗余级别(如每个工作者客户机3个故障转接系统)。
可使用现有技术以各种方式进行工作者客户机/故障转接系统的本地优化和选择。
参考图2B,其中显示了由根据图2A的体系结构执行的本发明的方法的流程图。
步骤1:工作负载提交(见图2C)
分布式管理服务器获得执行任务的请求。将这一任务划分为可以被发派到该分布式体系结构中的若干工作者客户机上的工作单元(作业)是可能的。分布式管理服务器为每个作业选择一工作者客户机并将该作业发送给这一工作者客户机以执行它(工作负载提交)。之后,调度器等待来自每个工作者客户机的确认。如果分布式管理服务器在一预定时间段内没有接收到确认,则其再次启动针对特定任务提交该工作负载并选择另一工作者客户机。在接收到确认之后,分布式管理服务器指示合并器准备收集所有工作者客户机的结果。
步骤2:工作者客户机和故障转接系统的初始化(见图2D)
当工作者客户机从分布式管理服务器接收到作业时,确定它的故障转接系统。在工作者客户机确认该工作之前它先联系其故障转接系统。例如,故障转接系统可能拒绝其被选择作为故障转接系统,因为它已被安排提供服务,或它有太多工作要做等。作为下一步骤,工作者客户机的确认被发送给分布式管理服务器,如在上述工作负载提交步骤中描述的那样。
步骤3:工作负载执行
工作者客户机开始处理该作业。完成该作业后,工作者客户机将结果返回给合并器。当该合并器确认了一个结果时,向故障转接系统通知该作业完成并解除故障转接系统的职责。
步骤4:故障转接情况(见图2E)
由于故障转接系统监视着工作者客户机,所以它们能够检测到工作者客户机故障。在这样的情况下,必须确定哪一故障转接系统将接管该工作者客户机的职责。
当指派了新的工作者客户机时,该新客户机首先需要确定其他的故障转接系统(也参见“初始化步骤”)。然后,该工作者客户机执行该作业。
步骤5:合并(见图2F)
在完成作业后,每一工作者客户机将它的结果发送给合并器。合并器将该组结果重新组合为原始任务的总结果。将总结果回送给请求发出者。
存在着几种可能情况,需要处理结果停滞了一较长时间段的事实。如果在一段时间之后,一个或多个结果未得到,则合并器可使分布式管理服务器或请求发出者重新提交该作业。在故障转接的情况下,可以将故障转接的通知广播给相关方,以使其明白该计算可能花费比起初预期更长的时间。
参考图2G,其示出了在简化的分布式计算基础架构中的故障转接情形。
常规是每一工作者客户机5应该确切地具有来自系统池的3个故障转接系统8。故障转接系统8本身可以是对于不同工作负载的工作者客户机。
在上述例子的开始时,两个系统是有故障的:一个故障转接系统8和一个工作者客户机5。剩余的两个故障转接系统8仍然可以相互通信,因此它们可以开始它们的选举过程。它们不知道关于发生故障的故障转接系统8或关于前一个工作者客户机5的任何情况,因为那两个系统发生了故障并且不再能对网络请求做出反应。剩余的故障转接系统8不能与故障系统进行通信的事实可能是由网络故障或是由故障转接系统故障引起的。
现在,诸剩余的故障转接系统能够例如基于节点IP地址或某些其他唯一的参数选举出新的工作者客户机。新的工作者客户机必须创建/指派两个新的故障转接系统,以便维持问题情况之前的冗余级别。
参考图3A,其中显示了本发明在网格体系结构中的优选实现,该网格体系结构包括若干工作者客户机5(见图3B中更详细的视图)、一个网格代理2(见图3D中更详细的视图)、以及n个故障转接系统8(见图3C中更详细的视图)。
被提交给网格的作业通常是可以分布在网格中的工作负载,如算法运行于其上的大型数据集或者大型事务,但出于各种原因(数据复制、安装工作、软件的基于使用的许可条件等)的较小的事务或通用工作负载也是有意义的。
请求发出者向网格代理2提供任务,该任务可被分割为工作单元或所谓的作业。在网格完成了该作业的计算之后,请求发出者1接收结果。请求发出者1可被看作“网格的顾客”。
网格代理2具有接待员的职责。请求发出者1与网格代理2取得联系并请求执行随后的任务。网格代理2将该任务分割为作业并把它们给予诸工作者客户机5。
如果该任务不需要分割为作业,则网格代理2可弱化为这样的一实例,该实例例如使用SLP标准因特网协议选择网格的具有合适特征(如位置和当前负载)的任何工作者客户机5。网格中的每个工作者客户机5可使用现有协议通告其充当工作者客户机5和/或故障转接系统8而工作的能力,且发出者1可选择这些工作者客户机5中的任何一个。
工作者客户机5是网格中的一系统,其从网格代理2接收作业并计算结果。工作者客户机5可从网格代理2并行地接受多个作业。工作者客户机5还可以是针对另一工作者客户机5的故障转接系统8。
故障转接系统8是后援节点,其可在当工作者客户机5故障的任何时间接管该工作者客户机的作业的执行。工作者客户机5可具有多个故障转接系统8。故障转接系统监视工作者客户机5,且一旦某工作者客户机故障,一个选定的故障转接系统8将进行接管。在诸故障转接系统8之间存在通信,以确保只有一个故障转接系统8接管该作业。如同对于工作者客户机5,故障转接系统8也可以是虚拟工作者客户机5。故障转接系统8可充当对于多个工作者客户机5上的多个作业的监视器。故障转接系统8还可以是并行地运行的多个作业的工作者客户机5。
合并器的职责是接收所有结果并将总结果返回给请求发出者1。取决于所执行的工作负载,合并器可以很简单;在最简单的情况下,它可被弱化为向请求发出者1传输结果的数据传输者。
网格代理2与合并器实现于如图3A所示的相同系统上是可能的。
参考图3B,其中显示了作为根据图3A的本发明的网格体系结构中一部分的工作者客户机5的结构的更详细视图
一般地,工作者客户机5是网格中的一系统,其从网格代理2接收作业并计算结果。应该指出,工作者客户机5可从网格代理2并行地接受多个作业。工作者客户机5还可作为其他工作者客户机5的故障转接系统8。
每个作为网格体系结构的一部分的工作者客户机5可以被用作一个或多个工作者客户机5的故障转接系统8。每个工作者客户机5优选地包括工作者客户机的操作系统31、运行时环境32、网格基础架构33、网格通信部件34、工作者客户机基础架构35、网格策略储存库36、监视/心跳服务部件10、分组/定额服务部件38、故障转接系统选择服务部件39、工作单元传输服务部件40、工作引擎任务处理服务部件41、检查点服务部件42、及故障转接服务部件43。
工作者客户机的操作系统31可以是例如Windows、AIX等。
运行时环境32包括例如库、Java虚拟机等。
网格基础架构33提供了用于在诸参与者(例如其他工作者客户机5、网格代理2)之间创建、管理、及交换信息的机制。
网格通信部件34提供了用于与其他参与者(例如工作者客户机5、网格代理2)进行通信的机制,该通信机制可使用基于TCP/IP的协议来实现。
工作者客户机基础架构35包括执行所指派的作业的环境,例如应用库、应用代码本身、应用服务器、用于存储检查点信息的永久存储器。
网格策略储存库36是一数据库,它包含用于操作该网格,例如工作者客户机5的验证和注册、作业配置(例如用于特定作业的存储容量、用于特定作业的CPU时间)的规则。
监视/心跳部件10提供了用于检查其他工作者客户机5的状态并答复来自其他作为网格的一部分的工作者客户机的状态请求例如工作或未工作的状态信息的机制。可利用目前的HA技术,例如工作者节点或故障转接系统的心跳,来实现工作者客户机故障的检测,或者可依靠监视基础架构来执行这一检测。
分组/定额部件38提供了这样的机制,该机制确定将变为新的工作者客户机的故障转接系统8,例如在一组所指派的故障转接系统8中确定故障转接系统8。在分组/定额部件38的一优选实现中,如果当前工作者客户机5发生故障,则剩余的故障转接系统8必须使用某种现有算法选出一个新的工作者客户机5。可能的算法包括基于工作者客户机的最低IP地址的选择。如果不可能在所有剩余的故障转接系统8之间进行通信,则必须确保为某些应用只创建一个新的工作者客户机,因为工作者客户机的两个实例可能是有害的。在这种情况下,可使用如下述的规则:当且仅当该工作者客户机发生故障,一故障转接系统了解大多数剩余的故障转接系统,并且其具有例如最低IP地址的特殊特征时,该故障转接系统才可变为新的工作者客户机。
在刚刚选出一个新的工作者客户机之后,这一工作者客户机必须通知剩余的工作者客户机它已接管了一工作者客户机的职责。此外,这一工作者客户机必须启动新的故障转接系统的创建,以代替其自身;否则,该网格中的冗余级别将会降级。每个工作者客户机的故障转接系统数量依赖于期望的可靠性并可以调整。可以这样的方式来实现本发明,其中基于可用性的原因,网格设法保持每个工作者客户机具有给定数量的故障转接系统。故障转接系统的选择可由工作者客户机自身执行,或者当网格代理向该工作者客户机指派任务时由该网格代理来执行。在后一种情况中,网格代理将选出故障转接系统的候选者并将这些故障转接系统推荐给工作者客户机,该工作者客户机可遵从或不遵从这一建议。
当在故障情形下要创建新的故障转接系统的时候,也可使用这一过程。
故障转接系统选择部件39提供了为它的工作者客户机5确定n个故障转接系统8的机制。故障转接系统选择部件39的一个可能实现是询问候选故障转接系统8它是否能执行这一任务。另一实现可以是将任何能够计算该任务的工作者客户机5保存在一集中目录中。在请求后,该目录服务返回一组节点。当然,该目录服务本身的实现可基于几个可选算法。另一实现可以是工作者客户机5的选择可基于位置。位置可以例如意指选择具有最近网络距离的节点。
又一实现可以是选择工作者客户机5是由于这一事实,即这些工作者客户机能够访问与该工作者客户机5相同的存储空间。此处的一个例子是NUMA体系结构。另一实现可以是只能选择能够访问与该工作者客户机5相同的存储设备的工作者客户机5。这种实现的理由可以是在故障情形下工作者客户机5能够访问那个工作者客户机5先前使用的数据空间。又一实现可以是基于工作负载的(根据工作客户机的工作负载使用)。
可基于有关网格中的工作者客户机5的工作负载信息来选择故障转接系统8。例如,只选定那些具有最低工作负载的工作者客户机5。另一实现可以是QoS服务质量。QoS服务质量可以是工作者客户机的一个基础。此处的一个可能性是只能选择具有最高服务质量(可用性、性能)的节点作为工作者客户机。又一实现可以是选择诸工作者客户机是由于这一事实,即这些工作者客户机没有位于该工作者节点运行于其上的相同站点,或者是根据要执行的工作负载的优先级。
工作单元传输部件40提供了接收应用本身、作业参数和输入文件,并向网格代理发送作业结果的机制。
工作引擎任务处理部件41提供了向网格代理2通知有关作业接受的信息并执行该作业的机制。
检查点部件42提供了向所有所指派的故障转接系统8提供检查点信息的机制。进行检查点操作的很可能最普遍和最容易的方法是对正运行在工作者客户机上的整个进程进行检查点操作。当使用Beowulf API时,使用bproc_vmadumP()和bproc_vmaundump()API函数,这会是可能的。如果工作者客户机正运行于虚拟服务器环境中,则一替代方案将是使工作者节点的整个操作系统休眠并在以后将其恢复。
如果工作者客户机5发生故障,则需要特别注意开放TCP/IP套接字连接。这里的一个解决方案是作为IBMz/OS操作系统的一部分而分发的z/OS虚拟IP寻址能力(VIPA)。
故障转接部件43提供了在所指派的故障转接系统8中的一个上重新启动作业的机制。故障转接系统8接管一工作者客户机作业的最简单的情形是通过从头开始重新启动该作业。例如检查点操作、事务处理或其他的更复杂的实现可以改进故障转接的效率。诸故障转接系统8可以互相监视。甚至在工作者客户机5上,它自己的作业的故障转接系统8可以监视其他故障转接系统8以提高可用性。
参考图3D,其中显示了作为根据图3A的网格体系结构中一部分的网格代理2的结构的更详细视图。
网格代理2具有接待员的职责。请求发出者1与网格代理2取得联系并请求执行随后的任务。网格代理将该任务分割为作业并把它们给予工作者客户机5。如果该任务不需要分割为作业,则网格代理2可弱化为这样的一实例,该实例例如使用SLP标准因特网协议选择网格的具有合适特征(如位置和当前负载)的任何节点。网格中的每个工作者客户机5都可使用现有协议通告其作为工作者客户机5和/或故障转接系统而工作的能力,且发出者可选择这些节点中的任何一个。
网格代理2优选地包括工作者客户机选择部件15、工作单元传输部件16、作业分割部件17、合并/任务组合部件18、及调度器部件19。
工作者客户机选择服务部件15提供确定工作者客户机以运行作业的机制。
工作单元传输部件16提供发送应用本身、作业参数及输入文件,并从工作者客户机5接收作业结果的机制。
作业分割部件17提供将处理任务分割为较小工作单元(作业)的机制。可通过分而治之的手段将大型作业划分为若干部分。作业的任何可并行化部分都可由网格代理2发派到若干工作者客户机5上。这一分割是依赖于工作负载的,且可包括依据独立的或大部分独立的数据范围进行的分割或通过使用事务系统的共同方法将事务剖析为诸并行任务进行的分割。分配工作负载的一种不同方法是不将其分割,而是向若干工作者节点分配同样的任务。这可用于增加可靠性,且如果执行速度比资源利用更重要话—即使某些任务由于故障并退回到影子节点(ghost node)上的最后一个检查点而被延迟,另一个工作者节点也可以没有问题地运行下去。
合并/任务组合部件18提供了创建合并的结果并将其提供给请求者系统的机制。网格代理2必须为每个作业指派一合并器。这可使用任何上述选择故障转接系统8的算法来进行。可使用目前的HA方法使得合并器18高度可用,或合并器18可部署它自己的故障转接系统。
调度器部件19提供了将作业指派给作为网格的一部分的且先前由工作者客户机选择部件选定的工作者客户机5的机制。此外,可基于任何上述用于选择故障转接系统8的方法来实现工作者客户机的选择。
参考图3C,其中显示了作为根据图3A的网格体系结构的一部分的故障转接系统的结构的更详细视图。
故障转接系统8优选地使用与工作者客户机相同的部件,因为它们是潜在的工作者客户机5(见图3B)。
故障转接系统8是后援系统,其可在当工作者客户机5故障的任何时间接管该工作者客户机作业的执行。工作者客户机5可具有多个故障转接系统8。故障转接系统8监视该工作者客户机5,且在一工作者客户机发生故障的情况下,将由从诸故障转接系统中选出的一个来接管。在诸故障转接系统8之间存在通信以确保只有一个(或指定数量的)故障转接系统8接管该任务。应该指出,如同对于工作者客户机5,故障转接系统8也可以是虚拟工作者客户机5。故障转接系统8可充当对于多个工作者客户机5上的多个任务的监视器。故障转接系统也可以是并行地运行的多个任务的工作者客户机。

用于在分布式计算体系结构中执行作业的系统和方法.pdf_第1页
第1页 / 共32页
用于在分布式计算体系结构中执行作业的系统和方法.pdf_第2页
第2页 / 共32页
用于在分布式计算体系结构中执行作业的系统和方法.pdf_第3页
第3页 / 共32页
点击查看更多>>
资源描述

《用于在分布式计算体系结构中执行作业的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于在分布式计算体系结构中执行作业的系统和方法.pdf(32页珍藏版)》请在专利查询网上搜索。

本发明提供在使用工作者客户机的分布式计算体系结构中执行作业的系统和方法,所述工作者客户机的特征在于具有:检查点机制部件,用于产生被指派给至少一个工作者客户机的检查点信息;至少一个被指派给该工作者客户机的故障转接系统;用于在工作者客户机故障的情况下,自动向被指派给所述工作者客户机的故障系统指派至少一个现有的或新创建的故障转接系统的部件(故障转接系统选择部件),其中该所指派的故障转接系统提供所有功能部。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1