随通信故障的分布式工作负载重新分配制造技术

技术编号:15190806 阅读:124 留言:0更新日期:2017-04-19 23:52
生成标识符与各种系统和方法一起使用,以便标识其中工作负载已经被重新分配给新节点以及其中工作负载在节点之间的故障期间仍然在由旧节点处理的情形。主节点可以将工作负载分配给工作者节点。工作者节点发送用以访问目标数据的请求。该请求可以与标识节点和工作负载的生成标识符和工作负载标识符相关联。在某个时刻,主节点与工作者节点之间发生故障。主节点将工作负载重新分配给另一工作者节点。新的工作者节点以不同的生成标识符访问目标数据,以向存储系统指示工作负载已经被重新分配。旧工作者节点从存储系统接收工作负载已经被重新分配的指示,并且停止处理工作负载。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
集群环境(例如,工作负载分布在多个机器上的环境)通常用于提供分布式工作负载的故障转移和高可用性处理。集群环境允许将工作负载分发给作为环境的部分的一个或多个节点。集群环境可以充当客户端、服务器或两者。在集群中,工作负载可以由主节点分发给组成集群的工作者节点。工作者节点可以发布对于由存储系统存储的目标数据的访问请求。如果在主节点与工作者节点之间发生错误,则工作者节点可以在没有主节点的知识的情况下继续处理工作负载。此外,主节点可以在没有工作者节点的知识的情况下将工作负载重新分配给不同的节点。一些示例正是关于这些和其他考虑而给出。此外,虽然已经讨论了相对具体的问题,但是应当理解,这些示例不应当限于解决
技术介绍
中所确定的具体问题。
技术实现思路
提供本
技术实现思路
以便以简化形式介绍将在以下详细描述部分中进一步描述的一些概念。本
技术实现思路
不旨在识别所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。本文中公开的系统和方法提供了其中标识工作负载已经被重新分配给新节点以及其中工作负载仍然由旧节点处理的情形的机制。根据一些方面,主节点向工作者节点分配工作负载。主节点可以随工作负载传送生成标识符和工作负载标识符。当处理工作负载时,工作者节点向存储集群中的节点发送用以访问目标数据的访问请求。在示例中,生成标识符和工作负载标识符用于标识节点和/或请求资源的相关工作负载。生成标识符和/或工作负载标识符可以与请求一起提供。当节点访问目标数据时,生成标识符和/或工作负载标识符被存储在永久性存储装置中并且与所请求的目标数据相关联。在节点完成工作负载的执行之前,可能发生导致主节点失去与工作者节点的通信的故障。例如,节点可能重启,硬件故障可能发生,通信链路可能失败等。在这种情况下,主节点不知道工作者节点的状态。然而,工作者节点仍然可以访问存储系统,并且可以继续处理工作负载并发布文件访问请求。在故障期间,主节点可以将工作负载重新分配给新的工作者节点。在一些示例中,主节点还可以传送不同的生成标识符连同工作负载标识符和工作负载。当新工作者节点开始处理工作负载时,其向存储集群中的节点发送访问目标数据的访问请求。在一些示例中,可以与请求一起提供新的生成标识符和/或工作负载标识符。新的生成标识符可以指示比旧的生成标识符高的优先级。当新节点访问目标数据时,新的生成标识符被存储在永久性存储装置中并且与所请求的目标数据相关联。生成标识符允许管理请求的存储系统确定工作负载已经被重新分配给新节点。这样做允许存储系统向旧节点指示已经重新分配工作负载。因此,旧节点可以停止处理工作负载。此外,如果旧节点尚未从存储系统接收到重新分配指示,则旧节点确保没有重新分配工作负载。在其他示例中,新的生成标识符可以指示比旧的生成标识符低的优先级,或者新节点可以发布“许可性的”访问请求。在这两种情况下,在旧节点仍然在处理工作负载的同时,新节点并不开始处理工作负载。相反,新节点可以接收旧节点仍然在工作的指示,并且作为结果,新节点可以周期性地发布随后的访问请求,以便一旦旧节点已经完成处理则最终获得访问。这样做允许旧节点继续处理工作负载,而不是中断操作并且在新节点上重新开始工作负载。示例可以被实现为计算机过程、计算系统或者实现为制造品,诸如计算机程序产品或计算机可读介质。计算机程序产品可以是计算机系统可读的并且编码用于执行计算机过程的计算机程序指令的计算机存储介质。附图说明参考以下附图描述非限制性和非穷尽性示例。图1示出了可以用于实现本文中描述的示例的系统。图2示出了可以用于实现本文中描述的示例的系统。图3是与存储系统通信的节点的操作流程。图4是将工作负载分配给其他节点的节点的操作流程。图5是与节点通信的存储系统的操作流程。图6是示出可以实践本专利技术的各方面的计算设备的示例的框图。图7A和7B是可以实践本专利技术的各方面的移动计算设备的简化框图。图8是可以实践本专利技术的各方面的分布式计算系统的简化框图。具体实施方式下面参考附图更全面地描述各个方面,附图形成了本文的一部分并且示出了具体的示例性方面。然而,示例可以以许多不同的形式实现,并且不应当被解释为限于本文中所阐述的示例。因此,示例可以采取硬件实现、或者完全软件实现、或者组合软件和硬件方面的实现的形式。因此,下面的详细描述不应当被理解为是限制性的。本公开的示例涉及通过使存储系统能够在其工作负载已经被重新分配时通知节点来提供分布式工作负载的高可用性处理。在示例中,存储系统可以是本地设备、网络附接的存储设备、分布式文件服务器或者计算环境中的任何其他类型的存储系统。节点可以是集群的一部分,在集群中“工作者”节点处理由“主”节点分配的工作负载。在一些示例中,集群可以包括多个层,其中较低分层的工作者节点从较高分层的主节点接收工作负载分配。在其他示例中,集群可以仅具有一个层,其中每个节点可以表现为工作者节点、主节点或两者。在示例中,可以向工作者节点分配来自主节点的工作负载。工作者节点继而可以充当下级工作者节点的主节点,并且作为结果,可以进一步将工作负载分发给其下级工作者节点中的一个。节点可以经由网络连接。本领域技术人员将理解,本文中公开的系统和方法可以在任何其他类型的环境中使用,例如但不限于虚拟网络。数据可以在多个请求者之间共享。如本文中所使用的,请求者可以包括请求访问目标数据的任何节点、应用、工作负载、线程或者其它过程或实体。尽管可以关于充当请求者的“应用”或“客户端”或“节点”或“工作负载”来描述本文中描述的示例,但是本公开不限于此。当请求者访问目标数据时,目标数据可以被加锁,从而禁止其他请求者访问它,直到该锁被释放。对目标数据加锁可以用于防止冲突,即防止在访问请求者已经执行了其操作之前由另一请求者修改目标数据。通常,当锁被准许时,在一些示例中,该锁可以被另一请求者抢占。例如,存储系统可以使用由请求者在访问请求中呈现或引用的工作负载标识符来维护锁定。在一些情况下,当发生影响主节点与工作者节点的通信的故障时,主节点可能变得不知道工作者节点的状态。例如,故障可能是主节点与工作者节点之间的通信问题的结果,或者是工作者节点的重启的结果。因此,工作者节点可能正在正常运行并且因此仍然处理工作负载,或者工作者节点可能已经经历了故障并且不再处理工作负载。此外,工作者节点可能仍然可以访问由存储系统存储的文件信息。例如,存储系统可以是经由与主节点不同的网络路径可访问的。由于故障,主节点可以将工作负载重新分配给另一工作者节点。因此,新的工作者节点可以请求访问被旧的工作者节点锁定或者先前锁定的数据。在一些示例中,存储系统可以确定与来自新节点的访问请求相关联的工作负载标识符与旧节点在目标数据上放置的锁相匹配。然后,存储系统打破旧的锁,并且对目标数据放置新的锁。然而,如果旧节点仍然在处理工作负载,则来自旧节点的对目标数据的访问请求将导致上述相同的行为。存储系统将确定旧节点的访问请求与工作负载标识符相关联,打破新节点的锁,并且对旧节点的目标数据放置另一锁。因此,两个节点可能继续为相同的目标数据重新获取锁,而并不知道其他节点的存在。这可能会对群集的性能产生负面影响。例如,这可能导致工作负载的延迟处理或中断,这些中断需要工作负载处理重新本文档来自技高网...
随通信故障的分布式工作负载重新分配

【技术保护点】
一种系统,包括:至少一个处理器;存储器,操作地连接至所述至少一个处理器并且包含指令,所述指令在由所述至少一个处理器执行时执行方法,所述方法包括:使第一生成标识符和第一工作负载标识符与第一工作负载相关联;向第一节点传送所述第一生成标识符、所述第一工作负载标识符和所述第一工作负载;以及在与所述第一节点的通信故障期间,生成第二生成标识符,使所述第二生成标识符与所述第一工作负载相关联,并且向第二节点传送所述第二生成标识符、所述第一工作负载标识符和所述第一工作负载,其中所述第二生成标识符传送与所述第一生成标识符不同的优先级。

【技术特征摘要】
【国外来华专利技术】2014.08.12 US 14/457,8421.一种系统,包括:至少一个处理器;存储器,操作地连接至所述至少一个处理器并且包含指令,所述指令在由所述至少一个处理器执行时执行方法,所述方法包括:使第一生成标识符和第一工作负载标识符与第一工作负载相关联;向第一节点传送所述第一生成标识符、所述第一工作负载标识符和所述第一工作负载;以及在与所述第一节点的通信故障期间,生成第二生成标识符,使所述第二生成标识符与所述第一工作负载相关联,并且向第二节点传送所述第二生成标识符、所述第一工作负载标识符和所述第一工作负载,其中所述第二生成标识符传送与所述第一生成标识符不同的优先级。2.根据权利要求1所述的系统,其中所述第二生成标识符传送比所述第一生成标识符低的优先级。3.根据权利要求2所述的系统,还包括:从所述第二节点接收成功的指示;生成传送比所述第一生成标识符高的优先级的第三生成标识符;使所述第三生成标识符与所述第一工作负载相关联;以及向所述第二节点传送所述第三生成标识符。4.根据权利要求1所述的系统,其中传送所述第二生成标识符包括:在确定所述第一节点仍然正在处理所述第一工作负载的情况下发送所述第二节点不应当中断所述第一节点的指示。5.一种计算机实现的方法,所述方法包括:接收对目标数据的第一访问请求,所述目标数据由存储系统存储,并且所述第一访问请求与第一生成标识符和第一工作负载标识符相关联;将所述第一生成标识符和所述第一工作负载标识符存储在永久性存储装置中作为第一存储生成标识符和第二存储工作负载标识符;准许对所述目标数据的所述第一访问请求;接收对所述目标数据的第二访问请求,所述第二访问请求与第二生成标识符和所述第一工作负载标识符相关联;将所述第二生成标识符与所述第一存储生成标识符相比较并且将所述第一工作负载标识符与所述第一存储工作负载标识符相比较;确定所述第二生成标识符指示比所述第一存储生成标识符高的优先级并且所述第一工作负载标识符与所述第一存储工作负载标识符相匹配;将所述第二生成标识符存储在永久性存储装置中作为第二存储生成标识符;准许对所述目标数据的所述第二访问请求;接收对所述目标数据的第三访问请求,所述第三访问请求与所述第一生成标识符和所述第一工作负载标识符相关联;确定所述第一生成标识符指示比所述第二存储生成标识符低的优先级并且所述第一工作负载标识符与所述第一存储工作负载标识符...

【专利技术属性】
技术研发人员:D·克鲁泽朱奇波D·戴恩V·彼得L·S·科波鲁
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1