分布式系统中的自更新功能.pdf

上传人:b*** 文档编号:177703 上传时间:2018-01-31 格式:PDF 页数:23 大小:3.51MB
返回 下载 相关 举报
摘要
申请专利号:

CN201380007760.9

申请日:

2013.01.29

公开号:

CN104094248A

公开日:

2014.10.08

当前法律状态:

实审

有效性:

审中

法律详情:

专利申请权的转移IPC(主分类):G06F 15/16变更事项:申请人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150722|||实质审查的生效IPC(主分类):G06F 15/16申请日:20130129|||公开

IPC分类号:

G06F15/16; G06F9/06

主分类号:

G06F15/16

申请人:

微软公司

发明人:

D·J·汤普森; A·E·图尔科格鲁; G·O·德斯潘德; M·查达拉帕卡

地址:

美国华盛顿州

优先权:

2012.02.02 US 13/364,714

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

杨洁

PDF下载: PDF下载
内容摘要

描述的是提供服务的计算机节点的分布式系统经由分布式系统的组件进行自更新的技术。这样的自更新运行向分布式系统中的成员计算机节点中的每一个应用一个或多个更新,同时维持由分布式系统提供的服务。该更新运行可包括将工作负载从要被更新的每个计算机节点移开、更新那个节点、并在更新后恢复工作负载。执行更新运行可包括将更新相关责任(其可以是工作负载)从一个计算机节点移到另一个计算机节点。

权利要求书

1.  一种在计算环境中的、至少部分地在至少一个处理器上执行的方法,包括,确定提供服务的分布式系统的多个计算机节点的节点成员资格,并经由所述分布式系统的至少一个组件执行更新运行,所述更新运行将一个或多个更新应用到有所述成员资格的多个计算机节点的每一个,同时维持由所述分布式系统提供的服务。

2.
  如权利要求1所述的方法,其特征在于,执行所述更新运行包括重新引导或重启有所述成员资格的所述多个计算机节点的每一个,或重新引导并重启有所述成员资格的所述多个计算机节点的每一个两者至少一次。

3.
  如权利要求1所述的方法,其特征在于,执行所述更新运行包括,对于要被更新的每个计算机节点,在更新该计算机节点之前或作为更新该计算机节点的部分,或在更新该计算机节点之前以及作为更新该计算机节点的部分,将任何工作负载从该计算机节点移开,并在完成对该计算机节点的更新之后恢复该计算机节点上的至少一个工作负载。

4.
  如权利要求1所述的方法,其特征在于,执行所述更新运行包括运行作为协调器的过程或线程以实例化并协调所述更新运行。

5.
  如权利要求1所述的方法,其特征在于,执行所述更新运行包括,使用配置用于实例化并协调所述更新运行的自更新机制,其中自更新机制至少部分地在嵌入式硬件或固件中实现。

6.
  如权利要求1所述的方法,其特征在于,执行所述更新运行包括,将协调器责任从要被更新的一个计算机节点移动到另一个计算机节点。

7.
  如权利要求1所述的方法,其特征在于,执行所述更新运行包括,将协调器责任从一个计算机节点移动到另一个计算机节点。

8.
  如权利要求7所述的方法,其特征在于,所述协调器与自更新相关工作负载相关联,并且其中移动所述协调器软件包括移动所述自更新相关工作负载。

9.
  如权利要求7所述的方法,其特征在于,所述分布式系统包括故障转移群集,其中所述协调器与自更新相关工作负载相关联,并且其中移动所述协调 器软件包括对所述自更新相关工作负载进行故障转移。

10.
  如权利要求7所述的方法,其特征在于,还包括,在将所述协调器责任从所述一个计算机节点移动到另一个计算机节点之前,持久保存更新相关状态信息,并在将所述协调器责任从所述一个计算机节点移动到所述另一个计算机节点之后,在所述另一个节点读取所述更新相关的状态信息。

11.
  一种系统,包括:被安排为分布式系统的多个计算机节点;所述分布式系统内的自更新组件,所述自更新组件配置用于在更新运行中使用软件更新来更新所述计算机节点的每一个,包括通过协调所述软件更新以在所述更新运行期间维持由所述分布式系统提供的服务,在所述更新运行期间包括在所述分布式系统的任何节点的重新引导或重启或者重新引导并重启两者期间。

12.
  如权利要求11所述的系统,其特征在于,所述分布式系统包括共享存储或分布式存储服务,并且其中自更新组件包括软件工作负载,所述软件工作负载被配置以在所述更新运行期间在至少两个计算机节点之间移动,包括通过将更新运行状态信息写入所述共享存储或所述分布式存储服务。

13.
  如权利要求11所述的系统,其特征在于,所述自更新组件包括至少部分实现在永久耦合到每个计算机节点的硬件或固件上的机制。

14.
  如权利要求11所述的系统,其特征在于,所述分布式系统被结合到器具型设备中。

15.
  如权利要求11所述的系统,其特征在于,所述分布式系统包括故障转移群集。

16.
  一个或多个具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行以下步骤,包括,在包括多个计算机节点的分布式系统上运行更新运行,包括:
(a)在所述更新运行期间选择尚未被更新的计算机节点;
(b)将工作负载从所选的计算机节点移到另一个计算机节点;
(c)经由所述分布式系统的自更新协调器组件用一个或多个软件更新的集合来更新所选计算机节点;以及
(d)返回步骤(a)直到所述分布式系统的每一个计算机节点已被更新。

17.
  如权利要求16所述的一个或多个计算机可读介质,其特征在于,更 新已被选中的所述计算机节点包括重新引导或重启所述节点,或重新引导并重启所述节点至少一次。

18.
  如权利要求16所述的一个或多个计算机可读介质,其特征在于,所述自更新协调器组件包括工作负载,并且其中将所述工作负载从所选计算机节点移动到另一个计算机节点包括移动所述自更新协调器组件。

19.
  权利要求16所述的一个或多个计算机可读介质,其特征在于,移动所述工作负载包括暂停所选节点。

20.
  权利要求16所述的一个或多个计算机可读介质,其特征在于,还包括包含以下的计算机可执行指令:将指示所述更新运行的状态的状态信息写入共享存储或分布式存储服务。

说明书

分布式系统中的自更新功能
背景
分布式系统通过节点/服务器的集合(诸如安排为群集)向客户机提供各种计算机服务(包括应用)。当计算机软件被部署在分布式系统上的产品中时,企业等很难以最新调整和软件改善来保持软件最新,而不干扰由该分布式系统提供的服务。结果,为了更新分布式系统,管理员执行相对详尽的计划,以旨在更新分布式系统的集合中的节点/服务上的软件清单而不影响由该集合提供的服务,有时被称为在更新方面“是服务知晓的”。
典型的管理步骤包括将这些服务从这样的分布式系统集合中的每个服务器/节点迁移,以及将这些服务重新主存到这样的分布式系统集合中的每个服务器/节点,使得节点可被更新,而确保,例如,全部集合的容错“临界量”(例如群集法定数量)在更新过程中保持,并使用以节点为中心的更新软件来更新每个节点。一些管理员手动执行这些任务,而其他管理员使用自组织脚本来试图自动化该过程的部分。在一些情况下,可能有用于与特定类型的软件更新管理软件耦合的特定类型的聚类服务的端到端工具。在任何情况下,这样的信息技术(IT)方法是费力的、易出错的,需要IT专家来管理,并且在正在进行的基础上维护是昂贵的。
随着分布式系统的数量增加,这些手动过程/脚本的操作花费以及需要运行/维护它们的IT管理员对于IT组织来说变成相当可观的操作成本负担。这对于中小型的企业以及倾向于具有无本地IT专家可用的多个分支机构的组织来说尤其如此。
概述
提供本概述以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些代表性概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。
简言之,在此描述的主题的各个方面涉及提供服务的诸计算机节点的分布式系统经由该分布式系统的组件进行自更新的技术。诸计算机节点的成员资格被确定,并且该组件执行将一个或多个更新应用到有成员资格的多个计算机节点的每一个,同时维持由分布式系统提供的服务的更新运行。执行更新运行可包括潜在地多次重新引导和/或重启有成员资格的多个计算机节点中的每一个。
在一个方面,执行更新运行包括将任何工作负载从每个要更新的计算机节点移开,并在那个计算机节点的更新完成后恢复那个计算机节点上的至少一个工作负载。执行更新运行可包括将协调器(orchestrator)责任从一个计算机节点移到另一个计算机节点。可在将协调器责任从一个计算机节点移到另一个计算机节点之前持久保存更新相关的状态信息,并在将协调器责任从一个计算机节点移到另一个计算机节点之后在第二节点处读取该更新相关的状态信息。
结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。
附图简述
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1A是示出通过分布式系统的软件组件执行自更新的分布式系统的示例组件的框图。
图1B是示出通过分布式系统的硬件/固件执行自更新的替换分布式系统的示例组件的框图。
图2-6包括示出在自更新运行期间处于各种不同状态的示例自更新分布式系统的诸计算机节点和组件的示例表示的框图。
图7是表示在自更新运行期间处于各种不同状态的示例自更新分布式系统中可采取的示例步骤的流程图。
图8是表示示例性非限制联网环境的框图,其中可实现本文所描述的各种实施例。
图9是表示示例性非限制计算系统或运行环境的框图,其中可实现本文所描述各种实施例的一个或多个方面。
详细描述
此处所描述的技术的各方面一般针对允许分布式系统以服务知晓方式将其诸节点自更新到当前所需软件级别。一般来说,这提供了一种不要求本地IT专家在场来更新分布式系统软件的端到端分布式系统更新方案。
如将会理解的,自更新分布式系统可在无需外部帮助或监控的情况下运行。分布式系统中的各计算机节点可继续用对IT组织适用的更新(补丁)适用性规则和策略来管控,同时足够智能以自更新它们自己而将分布式系统的全局服务可用性考虑作为整体来考虑。
在此使用分布式系统的各种不同的示例,诸如故障转移群集,应当理解,此处的任何示例均是非限制性的。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,此处所描述的实施例、方面、概念、结构、功能或示例中的任一个都是非限制性的,并且本发明一般能够以在计算和分布式系统方面提供好处和优点的各种方式来使用。
一般而言且如在此所描述的,自更新群集软件(例如,进程/线程)在所有者节点上运行、确定分布式系统的成员资格、并更新每个成员;(注意,在允许诸如新的、未连接的或非正在运行的机器的非成员成为分布式系统的成员之前或作为其一部分,更新可在那些非成员上执行)。为此,自更新群集软件可更新除了自己之外的每个其它节点,并可操作以更新它在其上运行的节点。在一个情形中,自更新群集软件从所有者节点“移”到新所有者节点,新所有者节点随后运行自更新群集软件的实例来更新先前的所有者节点,包括执行任何那个节点所需的重新引导。与更新相关的状态信息可被持久保存并经由“共享存储设备”发送到新所有者节点。注意在“无共享”分布式系统的特定实施例中,共享存储设备可被分布式存储服务取代,其中该服务可从分布式系统中作为持久存储的的诸节点处访问,即使当不需要到全部节点的真实共享存储连接性时也是如此。此外,注意在替换情形中,自更新群集软件不需要在另一个节点上运行以将更新安装到其自己的节点上。例如,如果不需要重新引导,自更新群集软件只需要安装更新。可替换地,如果需要重新引导且所有者节点能够将其工作负载移到能够继续分布式系统的服务的其它节点,所有者节点的自 更新软件能够重新引导其自身以完成该更新;所有者节点可写入任何可访问持久存储以跨一次或多次重新引导持久保存状态信息。
图1A示出了包含包括多个计算机节点1041-104N的自更新分布式系统102的一个示例实现的框图。例如,计算机节点可以是虚拟机或物理机器。分布式系统可具有少到两个节点多到符合实际的任何数量的节点。事实上,在此描述的自更新技术对于小到两个刀片的服务器群集也是有益的,因为除了其它益处,小的自更新服务器群集可被配置为需要很少或不需要手动维护的器具型设备。
节点的每一个包含一个或多个相应的工作负载(示为1061-106J和1071-107K),其包括可在系统102的诸节点之间分布的服务(可能包括应用)。这样的分布式系统的一个示例是故障转移群集,其中在一个节点发生故障或暂停(其可由非预计的(例如,崩溃相关的)或故意的(例如,维护相关的)事件导致)时,该一个节点的工作负载实际上自动“移动”(“故障转移”)到一个或多个其它节点。为此,一旦需要将工作负载从一个节点移开,对应的工作负载的实例被加载到一个或多个其它节点上并因此继续对节点客户机透明地运行。其它类型的分布式系统出于其它理由(例如为了执行自动负载平衡或作为手动维护的一部分)而移动工作负载。耦合到分布式系统通信机制1101-110N的共享联网基础架构108促进工作负载的这样的移动所需要的通信。
一般而言,分布式系统的诸节点时常需要用对诸节点的相应节点本地软件清单1121-112N的更新来更新。许多这些更新涉及重新引导节点和/或停止节点的服务,并且至今为止管理员为这样的更新作计划。
如在此所描述的,分布式系统102被配置来通过向分布式系统102添加自更新相关软件作为其软件的部分来进行自更新。例如,涉及自更新工作负载的.dll文件可被安装为每个节点的节点本地软件清单1121-112N的部分。如将会理解的,自更新相关软件,在作为协调器的本地代理120运行时,将一个或多个更新应用到有成员资格的多个计算机节点的每一个,同时维持由分布式系统提供的服务。
在图1B的节点1301和1302的分布式系统中表示的替换实现中,可基于使用专用自更新机制132来进行更新,专用自更新机制132经由将节点1301和 1302耦合到嵌入式硬件和/或固件组件134的接口来实例化并协调更新运行,嵌入式硬件和/或固件组件134永久地耦合到每个节点(其中“永久”旨在意味着不打算容易地解耦合,不像远程计算机)。尽管在图1B的示例中仅示出两个节点1301和1302,可以理解这样的实现可包括任何实际数量的节点。此外,应注意,图1B的分布式系统可方便地结合到器具型设备中(图1A例示的实现也是如此)。
一般而言,自更新相关软件发起包括一个通过分布式系统的自更新循环的“更新运行”,该自更新循环在一个实现中顺序地(或以其它方式,诸如在大型分布式系统的各小组中)以受控方式更新分布式系统节点中的每个。在一个实现中,自更新相关软件包括工作负载。除了其它益处,这使得更新相关软件跨分布式系统高度可用,包括对于分布式系统102中的计算机节点故障有复原力。
在一个实现中,实例化并协调更新允许的那部分软件(例如,进程/线程)被称为服务知晓更新协调器,或简称为“协调器”。协调器顺序地(或以其它方式,诸如在大型分布式系统的各小组中)以受控方式更新分布式系统节点的每个。在此处描述的自更新模式中,协调器可在当前更新运行期间也要被更新的分布式系统节点上运行,这可通过在对协调器先前在其上运行的节点进行更新前将协调器移到另一个节点而发生。
如图1A所表示的,服务知晓更新协调器1141-114N(例如,包括一个或多个进程和/或线程)协调更新分布式系统102的端到端操作。一般而言,在分布式系统中一次仅运行协调器的一个实例(例如1141),并且该协调器的一个实例可在更新运行过程期间按需跨分布式系统内的各计算机节点移动(如至虚线框114N的虚线箭头所指示)。
在图1A的示例实现中,每个节点包含一个或多个节点软件更新工具1161-116N,这些工具自动从一个或多个合适的软件更新源118下载更新。用于软件更新的例如来自企业本地分布点、来自公共互联网(例如,更新)、来自公共云(例如,Windows AzureTM)、来自私有云(例如,Windows Azure私有应用)等等的各种不同源可被支持。
在图1A所表示的示例中,本地协调器代理(例如,管理工具, 或基于WMI的组件)被安装在每个分布式系统节点上,如代理1201-120N所表示的。每个代理在更新运行期间并在更新运行之后促进协调器到节点的交互并提供分布式状态管理。代理1201-120N也和其相应的节点本地软件更新工具1161-116N进行交互,以使软件更新影响到在计算机节点本地的其相应的软件清单1121-112N
图2-6示出自更新可如何针对示例三节点(由节点2201-2203表示)分布式系统执行的各种示例状态上的示例。如图2所表示的,这些节点之一成为运行自更新相关工作负载222的实例的所有者节点2201。自更新相关工作负载222可由调度器组件、通过经由合适接口的手动交互,和/或响应于另一事件(诸如在重新引导后自动)而启动。
在一个实现中,自更新相关负载222可包含操作以执行更新的协调器代码223。在替换实现中,自更新相关工作负载222可操作来启动操作以执行更新的协调器代码223(例如,如在节点的节点本地软件清单中所维护的)的本地实例。在任何事件中,在此示例中,如在此所描述的,工作负载/协调器代码222和223能够在更新运行过程期间跨节点2201-2203移动。
每个计算机节点2201-2203主存多个分布式系统服务工作负载2241-2243。一般而言,由这些工作负载2241-2243提供的服务需要在用希望的软件更新来更新分布式系统时维持可用。
一般而言,如图3所表示的,协调器代码222操作以移动正在被更新的节点(在该示例中是节点2202)的工作负载。这由随着移动的系统服务工作负载3242被移动到节点2203的系统服务工作负载2242表示(也以虚线节点/工作负载2242上虚线叉掉的“X”表示)。例如,在故障转移群集中,这可以已知方式通过请求群集系统软件CSS暂停节点2202来自动发生。注意,群集系统软件CSS代替将工作负载移动到节点2203或除了将工作负载移动到节点2203之外,还基于它自己的机制将工作负载2242或其某个子集移动到节点2201是切实可行的,然而为了简化起见这没有在图3中示出。
一旦被移动,协调器代码222接着操作以更新节点2202,节点2202为了效率可能已经下载了这些更新中的一些或全部,并或者采取一或多步来准备这些更新。不再运行系统服务工作负载的节点2202可被重新引导达使得节点软件 (且可能甚至固件)进入希望的更新状态所需的次数。
如上面描述的,共享存储226(例如,高可靠性和可用性)可被诸节点访问,包括读和写与自更新相关的状态信息。协调器代码可在任何合适的时间将信息写到共享存储以反映更新运行的状态,使得例如更新状态已知,而不管协调器代码222的任何故障,包括因所有者节点2201的故障。例如,一旦对节点2202的更新完成,状态信息就被更新以指示更新完成,从而如果另一个节点必须接管更新运行的话,这个状态信息是已知的。
此时,节点2202被更新并且可以恢复运行一个或多个工作负载。在图4的示例中,来自节点2203的工作负载2243和3242是出于该目的而被移动到节点2202的。再一次,节点2203的一些或全部工作负载可被移到2201是切实可行的,然而为简化起见,在此示例中,它们被示为被移动到节点2202,并被表示为经移动系统服务工作负载444。一旦被移动,节点2203准备好更新。一旦被更新,包括任何重新引导操作,节点2203可恢复运行一个或多个工作负载。在图4的示例之后,仅所有者节点2201还需要被更新。如上面描述的,取决于分布式系统的容量和配置,协调器代码223可以移动其工作负载、更新其自己的节点软件,并在重新引导后自动重启,并且因此更新该节点而无需移动到另一个节点。然而,在图2-6的示例中,协调器代码223需要移动到另一个节点来允许它当前正在其上运行的节点2201被更新。
协调器代码223可移动到另一个节点的一种方式是通过向群集系统软件CSS请求。另一个方式是如果群集系统软件CSS允许则请求节点2201暂停自己,如果是这样,工作负载被移动,并且因为自更新相关工作负载222也是工作负载,移动使用现有群集技术自动发生。
在图5的示例中,为了更新节点2201,节点2201的自更新相关工作负载222(以及如果其中结合有的话,协调器代码223)以及系统服务工作负载2241通过如群集系统软件CSS所指导的在其它节点2202和2203上启动其实例而被移动到那些节点。尽管可以理解,群集系统软件CSS可根据其自己的机制将工作负载移到其它节点2202和2203,在图5的示例中,自更新相关工作负载222被移到节点2202成为自更新相关工作负载522的另一个实例,且系统服务工作负载2241移到节点2203成为系统服务工作负载555。如果协调器代码523没有 被结合到自更新相关工作负载522中,则一旦启动自更新相关工作负载522,就操作以启动协调器代码523。此时,节点2202变成拥有自更新相关工作负载520/协调器代码523的新所有者。
协调器代码523,在被启动时,读取共享存储228并从持久保存的状态信息确定节点2201需要更新。这可包括将任何其它工作负载从节点2201移开,(尽管如上面所描述的这样的其它工作负载已经连同移动自更新相关工作负载222而被移开)。随后更新节点2201,包括按需更新任何重新引导操作。
图6示出了在对节点2201-2203完成更新运行之后,这3个节点的示例分布式系统。注意此时,自更新相关工作负载可将状态信息写入共享存储226,(或清除该信息)以指示更新运行完成。自更新相关工作负载522(和/或协调器代码523)可随后休眠和/或整体或部分终止,直到下一次更新事件或调度,如图6中虚线框所示)。还注意如系统服务工作负载6601-6603所表示,群集系统软件CSS可按需到处移动工作负载,诸如以便平衡工作负载。这可包括使从已更新机器移开的至少一个工作负载在更新后又更新回到那个机器之前或作为更新回到那个机器的部分来恢复。
尽管并非必要,用户接口可被提供以允许用户与更新过程交互,诸如耦合到图1A的本地代理1201-120N或作为其部分。交互的部分可以是初始化(例如,为系统设置一次,除非且直到被改变)。例如,更新相关软件的任何选项可以是用户可配置的,例如,相对于默认值。用户还可以查看,例如,记录在共享存储或另一个可访问位置的关于更新状态的信息,以监控进展。使用合适的接口,用户可将非成员设备耦合到分布式系统以和更新进行一定程度的交互。
例如,如果用户希望,自更新模式可诸如通过用户接口或命令行(例如,PowerShell cmdlet)来临时挂起。当用户例如通过类似交互重新启用自更新相关负载时,下一个更新运行的发生通过在分布式工作负载选项中定义的调度来确定。
在一个实现中,诸如为了检查分布式系统更新基础结构中经改变的设置或确保更新不必须等待调度,更新运行可按需开始,即使当分布式系统整体上继续处在自更新模式。用户接口或命令行选项(例如“UpdateNow(现在更新)”选项)这一次超控所定义的自更新调度,并启动更新运行。
图7是概述实现的示例步骤的流程图,其中协调器过程运行在分布式系统所有者节点上,如在用户定义调度处,并且用任何用户定义的运行选项开始更新运行。如在此示例中将看到的,当所有者节点要被更新时,协调器被移到不同的计算机节点,通常是在这个更新运行中已经被更新的一个节点。亦如在此示例中将看到的,新(经移动的)协调器过程继续相同更新运行,并确保更新运行通过更新留下的尚未更新的任何节点来正确完成。
步骤700涉及协调器确定包括要被更新的那些节点的成员资格。通常,分布式系统想要让其所有的节点在彼此的更新方面处于一致的状态,(除了更新运行期间临时地),然而替换实现可允许更新到不同成员设置。步骤700还表示协调器或其它更新相关软件确保(例如通过群集系统软件)更新能够被以维持分布式系统提供的服务的可用性的方式来应用。例如,如果当前仅仅一个节点在操作,更新运行不能被允许暂停或关闭那一个节点。此外,如果工作负载在被移动到一个或多个其他节点的情况下不能够被这一个或多个其他节点充分地处理,诸如如果分布式系统那时正高负载,更新可被延迟到较不繁忙的时间。因此,更新可能需要等待直到足够节点/资源可用于允许更新而不干扰所提供的系统服务。
步骤702表示协调器检查共享存储以获取这个更新运行的任何现存状态。注意在这个示例中,协调器在启动时不知道它是否开始了新的运行或完成另一个运行,并因此访问状态信息(尽管参数等被用于区分新更新运行是切实可行的)。
步骤704表示暂停要被更新的下一个节点。这可从状态信息确定,例如,因为节点有系统唯一身份,并且哪个或哪些节点已经被更新(如果有)是记录在状态信息中的数据。如上面描述的,(例如,对群集系统软件作出的)暂停请求将暂停节点的工作负载移到一个或多个其它节点。
步骤706在准备好时,例如,在其工作负载被移开之后,更新被暂停的节点。注意,例如,取决于正被更新的代码,一些更新进程在工作负载正被移开时开始也是可行的。
步骤708表示更新共享存储中的状态信息以反映在步骤706更新的节点的更新。更新通常包括重新引导一次或多次,如上面所描述的。注意状态信息可 在其它时间被更新,(图7未示出),诸如以便偶尔提供一些状态/进展数据或在故障时有准备,然而相当多的时间是当节点更新完成时,因为另一个节点可在此时恢复更新运行。
步骤710将暂停的节点添加回去作为分布式系统的成员。这可以通过对群集系统软件的请求来完成,并允许当前更新的节点如群集系统软件所指导的开始处理分布式系统服务工作负载。工作负载的一个可以是自更新相关工作负载,如在双节点系统的情况下。
步骤712评估要被更新的所有的其它成员节点(不包括运行协调器的节点)是否已经被更新。如果否,步骤712分支回到步骤704来继续更新运行。
一旦要被更新全部其它节点已经被更新,步骤712分支到步骤714。步骤714评估更新运行是否完成,即包括运行协调器的节点在内的所有成员节点已经更新。如果否,步骤716表示移动协调器,这可通过移动包含协调器的自更新相关工作负载,或通过在自更新相关工作负载启动协调器时移动自更新相关工作负载来实现。在任何事件中,协调器被移动到新节点并在步骤718启动。
步骤718回到步骤702来重复该过程。在没有故障的通常情形中,在步骤704,唯一没有被更新的节点是最初运行协调器的那个节点,然而由于故障有一个或多个节点要更新是可能的。在任何情况下,该过程重复,直到是成员的或保留为成员的全部的节点被更新。
在某个时刻,在步骤714,正在运行协调器的节点已经如步骤712所评估的对全部其它节点上完成该更新运行,并且它本身如步骤714所评估的已经被更新。这时,更新运行完成,且在步骤720,共享存储中的状态信息被更新以反映更新完成。取决于该实现,例如,状态信息可被清除,使得下一个更新运行意识到整个新的更新运行要被执行,尽管其它信息(诸如节点已经被更新到的版本数据)可被保留。
示例性联网以及分布式环境
本领域技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上, 此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。
分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。这些资源和服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。
图8提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象810、812等以及计算对象或设备820、822、824、826、828等,这些计算对象或设备可包括如由示例应用830、832、834、836、838表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象810、812等以及计算对象或设备820、822、824、826、828等可包括不同的设备,诸如个人数字助理(PDA)、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。
每个计算对象810、812等以及计算对象或设备820、822、824、826、828等可经由通信网络840直接或间接地与一个或多个其他计算对象810、812等以及计算对象或设备820、822、824、826、828等通信。尽管在图8中被示为单个元件,但通信网络840可包括向图8的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象810、812等或计算对象或设备820、822、824、826、828等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应用实现与其进行通信的应用830、832、834、836、838。
存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例 性通信。
由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服务的一类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。
在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机(例如,服务器)所提供的共享网络资源的计算机。在图8的图示中,作为非限制性示例,计算对象或设备820、822、824、826、828等可被认为是客户机而计算对象810、812等可被认为是服务器,其中计算对象810、812等作为提供数据服务的服务器,诸如从客户机计算对象或设备820、822、824、826、828等接收数据、存储数据、处理数据、向客户机计算对象或设备820、822、824、826、828等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。
服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。
在通信网络840或总线是因特网的网络环境中,例如,计算对象810、812等可以是其他计算对象或设备820、822、824、826、828等经由诸如超文本传输协议(HTTP)之类的多种已知协议中的任一种与其通信的Web服务器。计算对象810、812等作为服务器还可用作例如计算对象或设备820、822、824、826、828等的客户机,这可以是如分布式计算环境的特性。
示例计算设备
如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图9中所述的通用远程计算机只是计算设备的一个示例。
各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使 用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。
图9由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境900的一个示例,尽管如上所述,计算系统环境900仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境900解释为对在示例性计算系统环境900中所示的组件中的任何一个或其组合有任何依赖。
参考图9,用于实现一个或多个实施例的示例性远程设备包括计算机910形式的通用计算设备。计算机910的组件可包括,但不限于,处理单元920、系统存储器930、以及将包括系统存储器的各种系统组件耦合到处理单元920的系统总线922。
计算机910通常包括各种计算机可读介质,并且可以是可由计算机910访问的任何可用介质。系统存储器930可包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器930还可包括操作系统、应用程序、其他程序模块、以及程序数据。
用户可通过输入设备940向计算机910输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口950之类的接口连接到系统总线922。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口950连接。
计算机910可使用到一个或多个其他远程计算机(诸如远程计算机970)的逻辑连接在联网或分布式环境中操作。远程计算机970可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机910所述的任何或全部元件。图9所示的逻辑连接包括诸如局域网(LAN)或广域网(WAN)之类的网络960和接口972,但也可包括其他网络/总线。这些联网环境在家庭、办公室、 企业范围的计算机网络、内联网和因特网中是常见的。
如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。
而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API(或其他软件对象)的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。
为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。
如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件和/或附加的组件,并且根据上述内容的各种置换和组合。子组件还可作为通信地耦合到其他组件的组件来实现,而不是被包括在父组件内(层次性)。另外,应注意到一个或多个组件可被组合成提供聚集功能的单个组件,或被分成若干单独的子组件,且诸如管理层等任何一个或多个中间层可被设置成通信耦合到这样的子组件以便提供集成功能。此处所述的任何组件也可与一个或多个此处未专门描述 的但本领域技术人员一般已知的其他组件进行交互。
鉴于本文所述的示例系统,可根据参考各附图的流程图还可理解根据所述的主题来实现方法。尽管为了说明简洁起见,作为一系列框示出和描述的方法,但是应当理解,各实施例不仅仅限于框的次序,因为一些框可以与此处所描绘和描述的框不同的次序发生和/或与其他框并发地发生。尽管经由流程图示出了非顺序或分支的流程,但可以理解,可实现达到相同或类似结果的各种其他分支、流程路径和框的次序。此外,某些示出的框在实现下文所述的方法中是可选的。
结语
尽管本发明易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。
除此处所述的各实施例以外,应当理解,可使用其他类似实施例,或者可对所述实施例作出修改和添加以便执行对应实施例的相同或等效功能而不背离这些实施例。此外,多个处理芯片或多个设备可共享此处所述的一个或多个功能的性能,并且类似地,存储可跨多个设备实现。因此,本发明不应限于任何单个实施例,而是应当根据所附权利要求书的广度、精神和范围来解释。

分布式系统中的自更新功能.pdf_第1页
第1页 / 共23页
分布式系统中的自更新功能.pdf_第2页
第2页 / 共23页
分布式系统中的自更新功能.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《分布式系统中的自更新功能.pdf》由会员分享,可在线阅读,更多相关《分布式系统中的自更新功能.pdf(23页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104094248A43申请公布日20141008CN104094248A21申请号201380007760922申请日2013012913/364,71420120202USG06F15/16200601G06F9/0620060171申请人微软公司地址美国华盛顿州72发明人DJ汤普森AE图尔科格鲁GO德斯潘德M查达拉帕卡74专利代理机构上海专利商标事务所有限公司31100代理人杨洁54发明名称分布式系统中的自更新功能57摘要描述的是提供服务的计算机节点的分布式系统经由分布式系统的组件进行自更新的技术。这样的自更新运行向分布式系统中的成员计算机节点中的每一个应用一个或多个更。

2、新,同时维持由分布式系统提供的服务。该更新运行可包括将工作负载从要被更新的每个计算机节点移开、更新那个节点、并在更新后恢复工作负载。执行更新运行可包括将更新相关责任其可以是工作负载从一个计算机节点移到另一个计算机节点。30优先权数据85PCT国际申请进入国家阶段日2014080186PCT国际申请的申请数据PCT/US2013/0235242013012987PCT国际申请的公布数据WO2013/116173EN2013080851INTCL权利要求书2页说明书10页附图10页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书10页附图10页10申请公布号CN10409424。

3、8ACN104094248A1/2页21一种在计算环境中的、至少部分地在至少一个处理器上执行的方法,包括,确定提供服务的分布式系统的多个计算机节点的节点成员资格,并经由所述分布式系统的至少一个组件执行更新运行,所述更新运行将一个或多个更新应用到有所述成员资格的多个计算机节点的每一个,同时维持由所述分布式系统提供的服务。2如权利要求1所述的方法,其特征在于,执行所述更新运行包括重新引导或重启有所述成员资格的所述多个计算机节点的每一个,或重新引导并重启有所述成员资格的所述多个计算机节点的每一个两者至少一次。3如权利要求1所述的方法,其特征在于,执行所述更新运行包括,对于要被更新的每个计算机节点,在。

4、更新该计算机节点之前或作为更新该计算机节点的部分,或在更新该计算机节点之前以及作为更新该计算机节点的部分,将任何工作负载从该计算机节点移开,并在完成对该计算机节点的更新之后恢复该计算机节点上的至少一个工作负载。4如权利要求1所述的方法,其特征在于,执行所述更新运行包括运行作为协调器的过程或线程以实例化并协调所述更新运行。5如权利要求1所述的方法,其特征在于,执行所述更新运行包括,使用配置用于实例化并协调所述更新运行的自更新机制,其中自更新机制至少部分地在嵌入式硬件或固件中实现。6如权利要求1所述的方法,其特征在于,执行所述更新运行包括,将协调器责任从要被更新的一个计算机节点移动到另一个计算机节。

5、点。7如权利要求1所述的方法,其特征在于,执行所述更新运行包括,将协调器责任从一个计算机节点移动到另一个计算机节点。8如权利要求7所述的方法,其特征在于,所述协调器与自更新相关工作负载相关联,并且其中移动所述协调器软件包括移动所述自更新相关工作负载。9如权利要求7所述的方法,其特征在于,所述分布式系统包括故障转移群集,其中所述协调器与自更新相关工作负载相关联,并且其中移动所述协调器软件包括对所述自更新相关工作负载进行故障转移。10如权利要求7所述的方法,其特征在于,还包括,在将所述协调器责任从所述一个计算机节点移动到另一个计算机节点之前,持久保存更新相关状态信息,并在将所述协调器责任从所述一个。

6、计算机节点移动到所述另一个计算机节点之后,在所述另一个节点读取所述更新相关的状态信息。11一种系统,包括被安排为分布式系统的多个计算机节点;所述分布式系统内的自更新组件,所述自更新组件配置用于在更新运行中使用软件更新来更新所述计算机节点的每一个,包括通过协调所述软件更新以在所述更新运行期间维持由所述分布式系统提供的服务,在所述更新运行期间包括在所述分布式系统的任何节点的重新引导或重启或者重新引导并重启两者期间。12如权利要求11所述的系统,其特征在于,所述分布式系统包括共享存储或分布式存储服务,并且其中自更新组件包括软件工作负载,所述软件工作负载被配置以在所述更新运行期间在至少两个计算机节点之。

7、间移动,包括通过将更新运行状态信息写入所述共享存储或所述分布式存储服务。13如权利要求11所述的系统,其特征在于,所述自更新组件包括至少部分实现在永权利要求书CN104094248A2/2页3久耦合到每个计算机节点的硬件或固件上的机制。14如权利要求11所述的系统,其特征在于,所述分布式系统被结合到器具型设备中。15如权利要求11所述的系统,其特征在于,所述分布式系统包括故障转移群集。16一个或多个具有计算机可执行指令的计算机可读介质,所述计算机可执行指令在被执行时执行以下步骤,包括,在包括多个计算机节点的分布式系统上运行更新运行,包括A在所述更新运行期间选择尚未被更新的计算机节点;B将工作负。

8、载从所选的计算机节点移到另一个计算机节点;C经由所述分布式系统的自更新协调器组件用一个或多个软件更新的集合来更新所选计算机节点;以及D返回步骤A直到所述分布式系统的每一个计算机节点已被更新。17如权利要求16所述的一个或多个计算机可读介质,其特征在于,更新已被选中的所述计算机节点包括重新引导或重启所述节点,或重新引导并重启所述节点至少一次。18如权利要求16所述的一个或多个计算机可读介质,其特征在于,所述自更新协调器组件包括工作负载,并且其中将所述工作负载从所选计算机节点移动到另一个计算机节点包括移动所述自更新协调器组件。19权利要求16所述的一个或多个计算机可读介质,其特征在于,移动所述工作。

9、负载包括暂停所选节点。20权利要求16所述的一个或多个计算机可读介质,其特征在于,还包括包含以下的计算机可执行指令将指示所述更新运行的状态的状态信息写入共享存储或分布式存储服务。权利要求书CN104094248A1/10页4分布式系统中的自更新功能0001背景0002分布式系统通过节点/服务器的集合诸如安排为群集向客户机提供各种计算机服务包括应用。当计算机软件被部署在分布式系统上的产品中时,企业等很难以最新调整和软件改善来保持软件最新,而不干扰由该分布式系统提供的服务。结果,为了更新分布式系统,管理员执行相对详尽的计划,以旨在更新分布式系统的集合中的节点/服务上的软件清单而不影响由该集合提供的。

10、服务,有时被称为在更新方面“是服务知晓的”。0003典型的管理步骤包括将这些服务从这样的分布式系统集合中的每个服务器/节点迁移,以及将这些服务重新主存到这样的分布式系统集合中的每个服务器/节点,使得节点可被更新,而确保,例如,全部集合的容错“临界量”例如群集法定数量在更新过程中保持,并使用以节点为中心的更新软件来更新每个节点。一些管理员手动执行这些任务,而其他管理员使用自组织脚本来试图自动化该过程的部分。在一些情况下,可能有用于与特定类型的软件更新管理软件耦合的特定类型的聚类服务的端到端工具。在任何情况下,这样的信息技术IT方法是费力的、易出错的,需要IT专家来管理,并且在正在进行的基础上维护。

11、是昂贵的。0004随着分布式系统的数量增加,这些手动过程/脚本的操作花费以及需要运行/维护它们的IT管理员对于IT组织来说变成相当可观的操作成本负担。这对于中小型的企业以及倾向于具有无本地IT专家可用的多个分支机构的组织来说尤其如此。0005概述0006提供本概述以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些代表性概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在以限制所要求保护的主题的范围的任何方式来使用。0007简言之,在此描述的主题的各个方面涉及提供服务的诸计算机节点的分布式系统经由该分布式系统的组件进行自更新的技术。诸计算机节点的成员资格被确定,并且该组。

12、件执行将一个或多个更新应用到有成员资格的多个计算机节点的每一个,同时维持由分布式系统提供的服务的更新运行。执行更新运行可包括潜在地多次重新引导和/或重启有成员资格的多个计算机节点中的每一个。0008在一个方面,执行更新运行包括将任何工作负载从每个要更新的计算机节点移开,并在那个计算机节点的更新完成后恢复那个计算机节点上的至少一个工作负载。执行更新运行可包括将协调器ORCHESTRATOR责任从一个计算机节点移到另一个计算机节点。可在将协调器责任从一个计算机节点移到另一个计算机节点之前持久保存更新相关的状态信息,并在将协调器责任从一个计算机节点移到另一个计算机节点之后在第二节点处读取该更新相关的。

13、状态信息。0009结合附图阅读以下具体实施方式,本发明的其他优点会变得显而易见。0010附图简述0011作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中说明书CN104094248A2/10页50012图1A是示出通过分布式系统的软件组件执行自更新的分布式系统的示例组件的框图。0013图1B是示出通过分布式系统的硬件/固件执行自更新的替换分布式系统的示例组件的框图。0014图26包括示出在自更新运行期间处于各种不同状态的示例自更新分布式系统的诸计算机节点和组件的示例表示的框图。0015图7是表示在自更新运行期间处于各种不同状态的示例自更新分布式系统中可采。

14、取的示例步骤的流程图。0016图8是表示示例性非限制联网环境的框图,其中可实现本文所描述的各种实施例。0017图9是表示示例性非限制计算系统或运行环境的框图,其中可实现本文所描述各种实施例的一个或多个方面。0018详细描述0019此处所描述的技术的各方面一般针对允许分布式系统以服务知晓方式将其诸节点自更新到当前所需软件级别。一般来说,这提供了一种不要求本地IT专家在场来更新分布式系统软件的端到端分布式系统更新方案。0020如将会理解的,自更新分布式系统可在无需外部帮助或监控的情况下运行。分布式系统中的各计算机节点可继续用对IT组织适用的更新补丁适用性规则和策略来管控,同时足够智能以自更新它们自。

15、己而将分布式系统的全局服务可用性考虑作为整体来考虑。0021在此使用分布式系统的各种不同的示例,诸如故障转移群集,应当理解,此处的任何示例均是非限制性的。因此,本发明不限制于在此描述的任何具体的实施例、方面、概念、结构、功能或示例。相反,此处所描述的实施例、方面、概念、结构、功能或示例中的任一个都是非限制性的,并且本发明一般能够以在计算和分布式系统方面提供好处和优点的各种方式来使用。0022一般而言且如在此所描述的,自更新群集软件例如,进程/线程在所有者节点上运行、确定分布式系统的成员资格、并更新每个成员;注意,在允许诸如新的、未连接的或非正在运行的机器的非成员成为分布式系统的成员之前或作为其。

16、一部分,更新可在那些非成员上执行。为此,自更新群集软件可更新除了自己之外的每个其它节点,并可操作以更新它在其上运行的节点。在一个情形中,自更新群集软件从所有者节点“移”到新所有者节点,新所有者节点随后运行自更新群集软件的实例来更新先前的所有者节点,包括执行任何那个节点所需的重新引导。与更新相关的状态信息可被持久保存并经由“共享存储设备”发送到新所有者节点。注意在“无共享”分布式系统的特定实施例中,共享存储设备可被分布式存储服务取代,其中该服务可从分布式系统中作为持久存储的的诸节点处访问,即使当不需要到全部节点的真实共享存储连接性时也是如此。此外,注意在替换情形中,自更新群集软件不需要在另一个节。

17、点上运行以将更新安装到其自己的节点上。例如,如果不需要重新引导,自更新群集软件只需要安装更新。可替换地,如果需要重新引导且所有者节点能够将其工作负载移到能够继续分布式系统的服务的其它节点,所有者节点的自更新软件能够重新引导其自身以完成该更新;所有者节点可写入任何可访问持久存储以跨一次或说明书CN104094248A3/10页6多次重新引导持久保存状态信息。0023图1A示出了包含包括多个计算机节点1041104N的自更新分布式系统102的一个示例实现的框图。例如,计算机节点可以是虚拟机或物理机器。分布式系统可具有少到两个节点多到符合实际的任何数量的节点。事实上,在此描述的自更新技术对于小到两个。

18、刀片的服务器群集也是有益的,因为除了其它益处,小的自更新服务器群集可被配置为需要很少或不需要手动维护的器具型设备。0024节点的每一个包含一个或多个相应的工作负载示为1061106J和1071107K,其包括可在系统102的诸节点之间分布的服务可能包括应用。这样的分布式系统的一个示例是故障转移群集,其中在一个节点发生故障或暂停其可由非预计的例如,崩溃相关的或故意的例如,维护相关的事件导致时,该一个节点的工作负载实际上自动“移动”“故障转移”到一个或多个其它节点。为此,一旦需要将工作负载从一个节点移开,对应的工作负载的实例被加载到一个或多个其它节点上并因此继续对节点客户机透明地运行。其它类型的分。

19、布式系统出于其它理由例如为了执行自动负载平衡或作为手动维护的一部分而移动工作负载。耦合到分布式系统通信机制1101110N的共享联网基础架构108促进工作负载的这样的移动所需要的通信。0025一般而言,分布式系统的诸节点时常需要用对诸节点的相应节点本地软件清单1121112N的更新来更新。许多这些更新涉及重新引导节点和/或停止节点的服务,并且至今为止管理员为这样的更新作计划。0026如在此所描述的,分布式系统102被配置来通过向分布式系统102添加自更新相关软件作为其软件的部分来进行自更新。例如,涉及自更新工作负载的DLL文件可被安装为每个节点的节点本地软件清单1121112N的部分。如将会理。

20、解的,自更新相关软件,在作为协调器的本地代理120运行时,将一个或多个更新应用到有成员资格的多个计算机节点的每一个,同时维持由分布式系统提供的服务。0027在图1B的节点1301和1302的分布式系统中表示的替换实现中,可基于使用专用自更新机制132来进行更新,专用自更新机制132经由将节点1301和1302耦合到嵌入式硬件和/或固件组件134的接口来实例化并协调更新运行,嵌入式硬件和/或固件组件134永久地耦合到每个节点其中“永久”旨在意味着不打算容易地解耦合,不像远程计算机。尽管在图1B的示例中仅示出两个节点1301和1302,可以理解这样的实现可包括任何实际数量的节点。此外,应注意,图1。

21、B的分布式系统可方便地结合到器具型设备中图1A例示的实现也是如此。0028一般而言,自更新相关软件发起包括一个通过分布式系统的自更新循环的“更新运行”,该自更新循环在一个实现中顺序地或以其它方式,诸如在大型分布式系统的各小组中以受控方式更新分布式系统节点中的每个。在一个实现中,自更新相关软件包括工作负载。除了其它益处,这使得更新相关软件跨分布式系统高度可用,包括对于分布式系统102中的计算机节点故障有复原力。0029在一个实现中,实例化并协调更新允许的那部分软件例如,进程/线程被称为服务知晓更新协调器,或简称为“协调器”。协调器顺序地或以其它方式,诸如在大型分布式系统的各小组中以受控方式更新分。

22、布式系统节点的每个。在此处描述的自更新模式中,协调器可在当前更新运行期间也要被更新的分布式系统节点上运行,这可通过在对协说明书CN104094248A4/10页7调器先前在其上运行的节点进行更新前将协调器移到另一个节点而发生。0030如图1A所表示的,服务知晓更新协调器1141114N例如,包括一个或多个进程和/或线程协调更新分布式系统102的端到端操作。一般而言,在分布式系统中一次仅运行协调器的一个实例例如1141,并且该协调器的一个实例可在更新运行过程期间按需跨分布式系统内的各计算机节点移动如至虚线框114N的虚线箭头所指示。0031在图1A的示例实现中,每个节点包含一个或多个节点软件更新。

23、工具1161116N,这些工具自动从一个或多个合适的软件更新源118下载更新。用于软件更新的例如来自企业本地分布点、来自公共互联网例如,更新、来自公共云例如,WINDOWSAZURETM、来自私有云例如,WINDOWSAZURE私有应用等等的各种不同源可被支持。0032在图1A所表示的示例中,本地协调器代理例如,管理工具,或基于WMI的组件被安装在每个分布式系统节点上,如代理1201120N所表示的。每个代理在更新运行期间并在更新运行之后促进协调器到节点的交互并提供分布式状态管理。代理1201120N也和其相应的节点本地软件更新工具1161116N进行交互,以使软件更新影响到在计算机节点本地的。

24、其相应的软件清单1121112N。0033图26示出自更新可如何针对示例三节点由节点22012203表示分布式系统执行的各种示例状态上的示例。如图2所表示的,这些节点之一成为运行自更新相关工作负载222的实例的所有者节点2201。自更新相关工作负载222可由调度器组件、通过经由合适接口的手动交互,和/或响应于另一事件诸如在重新引导后自动而启动。0034在一个实现中,自更新相关负载222可包含操作以执行更新的协调器代码223。在替换实现中,自更新相关工作负载222可操作来启动操作以执行更新的协调器代码223例如,如在节点的节点本地软件清单中所维护的的本地实例。在任何事件中,在此示例中,如在此所描。

25、述的,工作负载/协调器代码222和223能够在更新运行过程期间跨节点22012203移动。0035每个计算机节点22012203主存多个分布式系统服务工作负载22412243。一般而言,由这些工作负载22412243提供的服务需要在用希望的软件更新来更新分布式系统时维持可用。0036一般而言,如图3所表示的,协调器代码222操作以移动正在被更新的节点在该示例中是节点2202的工作负载。这由随着移动的系统服务工作负载3242被移动到节点2203的系统服务工作负载2242表示也以虚线节点/工作负载2242上虚线叉掉的“X”表示。例如,在故障转移群集中,这可以已知方式通过请求群集系统软件CSS暂停节。

26、点2202来自动发生。注意,群集系统软件CSS代替将工作负载移动到节点2203或除了将工作负载移动到节点2203之外,还基于它自己的机制将工作负载2242或其某个子集移动到节点2201是切实可行的,然而为了简化起见这没有在图3中示出。0037一旦被移动,协调器代码222接着操作以更新节点2202,节点2202为了效率可能已经下载了这些更新中的一些或全部,并或者采取一或多步来准备这些更新。不再运行系统服务工作负载的节点2202可被重新引导达使得节点软件且可能甚至固件进入希望的更新状态所需的次数。0038如上面描述的,共享存储226例如,高可靠性和可用性可被诸节点访问,包括读说明书CN104094。

27、248A5/10页8和写与自更新相关的状态信息。协调器代码可在任何合适的时间将信息写到共享存储以反映更新运行的状态,使得例如更新状态已知,而不管协调器代码222的任何故障,包括因所有者节点2201的故障。例如,一旦对节点2202的更新完成,状态信息就被更新以指示更新完成,从而如果另一个节点必须接管更新运行的话,这个状态信息是已知的。0039此时,节点2202被更新并且可以恢复运行一个或多个工作负载。在图4的示例中,来自节点2203的工作负载2243和3242是出于该目的而被移动到节点2202的。再一次,节点2203的一些或全部工作负载可被移到2201是切实可行的,然而为简化起见,在此示例中,它。

28、们被示为被移动到节点2202,并被表示为经移动系统服务工作负载444。一旦被移动,节点2203准备好更新。一旦被更新,包括任何重新引导操作,节点2203可恢复运行一个或多个工作负载。在图4的示例之后,仅所有者节点2201还需要被更新。如上面描述的,取决于分布式系统的容量和配置,协调器代码223可以移动其工作负载、更新其自己的节点软件,并在重新引导后自动重启,并且因此更新该节点而无需移动到另一个节点。然而,在图26的示例中,协调器代码223需要移动到另一个节点来允许它当前正在其上运行的节点2201被更新。0040协调器代码223可移动到另一个节点的一种方式是通过向群集系统软件CSS请求。另一个方。

29、式是如果群集系统软件CSS允许则请求节点2201暂停自己,如果是这样,工作负载被移动,并且因为自更新相关工作负载222也是工作负载,移动使用现有群集技术自动发生。0041在图5的示例中,为了更新节点2201,节点2201的自更新相关工作负载222以及如果其中结合有的话,协调器代码223以及系统服务工作负载2241通过如群集系统软件CSS所指导的在其它节点2202和2203上启动其实例而被移动到那些节点。尽管可以理解,群集系统软件CSS可根据其自己的机制将工作负载移到其它节点2202和2203,在图5的示例中,自更新相关工作负载222被移到节点2202成为自更新相关工作负载522的另一个实例,且。

30、系统服务工作负载2241移到节点2203成为系统服务工作负载555。如果协调器代码523没有被结合到自更新相关工作负载522中,则一旦启动自更新相关工作负载522,就操作以启动协调器代码523。此时,节点2202变成拥有自更新相关工作负载520/协调器代码523的新所有者。0042协调器代码523,在被启动时,读取共享存储228并从持久保存的状态信息确定节点2201需要更新。这可包括将任何其它工作负载从节点2201移开,尽管如上面所描述的这样的其它工作负载已经连同移动自更新相关工作负载222而被移开。随后更新节点2201,包括按需更新任何重新引导操作。0043图6示出了在对节点22012203。

31、完成更新运行之后,这3个节点的示例分布式系统。注意此时,自更新相关工作负载可将状态信息写入共享存储226,或清除该信息以指示更新运行完成。自更新相关工作负载522和/或协调器代码523可随后休眠和/或整体或部分终止,直到下一次更新事件或调度,如图6中虚线框所示。还注意如系统服务工作负载66016603所表示,群集系统软件CSS可按需到处移动工作负载,诸如以便平衡工作负载。这可包括使从已更新机器移开的至少一个工作负载在更新后又更新回到那个机器之前或作为更新回到那个机器的部分来恢复。0044尽管并非必要,用户接口可被提供以允许用户与更新过程交互,诸如耦合到图1A说明书CN104094248A6/1。

32、0页9的本地代理1201120N或作为其部分。交互的部分可以是初始化例如,为系统设置一次,除非且直到被改变。例如,更新相关软件的任何选项可以是用户可配置的,例如,相对于默认值。用户还可以查看,例如,记录在共享存储或另一个可访问位置的关于更新状态的信息,以监控进展。使用合适的接口,用户可将非成员设备耦合到分布式系统以和更新进行一定程度的交互。0045例如,如果用户希望,自更新模式可诸如通过用户接口或命令行例如,POWERSHELLCMDLET来临时挂起。当用户例如通过类似交互重新启用自更新相关负载时,下一个更新运行的发生通过在分布式工作负载选项中定义的调度来确定。0046在一个实现中,诸如为了检。

33、查分布式系统更新基础结构中经改变的设置或确保更新不必须等待调度,更新运行可按需开始,即使当分布式系统整体上继续处在自更新模式。用户接口或命令行选项例如“UPDATENOW现在更新”选项这一次超控所定义的自更新调度,并启动更新运行。0047图7是概述实现的示例步骤的流程图,其中协调器过程运行在分布式系统所有者节点上,如在用户定义调度处,并且用任何用户定义的运行选项开始更新运行。如在此示例中将看到的,当所有者节点要被更新时,协调器被移到不同的计算机节点,通常是在这个更新运行中已经被更新的一个节点。亦如在此示例中将看到的,新经移动的协调器过程继续相同更新运行,并确保更新运行通过更新留下的尚未更新的任。

34、何节点来正确完成。0048步骤700涉及协调器确定包括要被更新的那些节点的成员资格。通常,分布式系统想要让其所有的节点在彼此的更新方面处于一致的状态,除了更新运行期间临时地,然而替换实现可允许更新到不同成员设置。步骤700还表示协调器或其它更新相关软件确保例如通过群集系统软件更新能够被以维持分布式系统提供的服务的可用性的方式来应用。例如,如果当前仅仅一个节点在操作,更新运行不能被允许暂停或关闭那一个节点。此外,如果工作负载在被移动到一个或多个其他节点的情况下不能够被这一个或多个其他节点充分地处理,诸如如果分布式系统那时正高负载,更新可被延迟到较不繁忙的时间。因此,更新可能需要等待直到足够节点/。

35、资源可用于允许更新而不干扰所提供的系统服务。0049步骤702表示协调器检查共享存储以获取这个更新运行的任何现存状态。注意在这个示例中,协调器在启动时不知道它是否开始了新的运行或完成另一个运行,并因此访问状态信息尽管参数等被用于区分新更新运行是切实可行的。0050步骤704表示暂停要被更新的下一个节点。这可从状态信息确定,例如,因为节点有系统唯一身份,并且哪个或哪些节点已经被更新如果有是记录在状态信息中的数据。如上面描述的,例如,对群集系统软件作出的暂停请求将暂停节点的工作负载移到一个或多个其它节点。0051步骤706在准备好时,例如,在其工作负载被移开之后,更新被暂停的节点。注意,例如,取决。

36、于正被更新的代码,一些更新进程在工作负载正被移开时开始也是可行的。0052步骤708表示更新共享存储中的状态信息以反映在步骤706更新的节点的更新。更新通常包括重新引导一次或多次,如上面所描述的。注意状态信息可在其它时间被更新,图7未示出,诸如以便偶尔提供一些状态/进展数据或在故障时有准备,然而相当多的时间是当节点更新完成时,因为另一个节点可在此时恢复更新运行。0053步骤710将暂停的节点添加回去作为分布式系统的成员。这可以通过对群集系统说明书CN104094248A7/10页10软件的请求来完成,并允许当前更新的节点如群集系统软件所指导的开始处理分布式系统服务工作负载。工作负载的一个可以是。

37、自更新相关工作负载,如在双节点系统的情况下。0054步骤712评估要被更新的所有的其它成员节点不包括运行协调器的节点是否已经被更新。如果否,步骤712分支回到步骤704来继续更新运行。0055一旦要被更新全部其它节点已经被更新,步骤712分支到步骤714。步骤714评估更新运行是否完成,即包括运行协调器的节点在内的所有成员节点已经更新。如果否,步骤716表示移动协调器,这可通过移动包含协调器的自更新相关工作负载,或通过在自更新相关工作负载启动协调器时移动自更新相关工作负载来实现。在任何事件中,协调器被移动到新节点并在步骤718启动。0056步骤718回到步骤702来重复该过程。在没有故障的通常。

38、情形中,在步骤704,唯一没有被更新的节点是最初运行协调器的那个节点,然而由于故障有一个或多个节点要更新是可能的。在任何情况下,该过程重复,直到是成员的或保留为成员的全部的节点被更新。0057在某个时刻,在步骤714,正在运行协调器的节点已经如步骤712所评估的对全部其它节点上完成该更新运行,并且它本身如步骤714所评估的已经被更新。这时,更新运行完成,且在步骤720,共享存储中的状态信息被更新以反映更新完成。取决于该实现,例如,状态信息可被清除,使得下一个更新运行意识到整个新的更新运行要被执行,尽管其它信息诸如节点已经被更新到的版本数据可被保留。0058示例性联网以及分布式环境0059本领域。

39、技术人员可以理解,此处描述的各实施例和方法可结合任何计算机或其它客户机或服务器设备来实现,其可被部署为计算机网络的部分或在分布式计算环境中,并且可以被连接到任何类型一个或多个数据存储。在这一点上,此处描述的各实施例可在具有任何数量的存储器或存储单元的、并且任何数量的应用和进程跨任何数量的存储单元发生的任何计算机系统或环境中实现。这包括但不限于具有部署在具有远程或本地存储的网络环境或分布式计算环境中的服务器计算机和客户计算机的环境。0060分布式计算通过计算设备和系统之间的通信交换来提供计算机资源和服务的共享。这些资源和服务包括信息的交换、对于诸如文件之类的对象的高速缓存存储和盘存储。这些资源和。

40、服务还包括多个处理单元之间的处理能力共享以便进行负载平衡、资源扩展、处理专门化等等。分布式计算利用网络连接,从而允许客户机利用其集体力量来使整个企业受益。就此,各种设备可具有可如参考本发明的各实施例描述地参与资源管理机制的应用、对象或资源。0061图8提供了示例性的联网或分布式计算环境的示意图。该分布式计算环境包括计算对象810、812等以及计算对象或设备820、822、824、826、828等,这些计算对象或设备可包括如由示例应用830、832、834、836、838表示的程序、方法、数据存储、可编程逻辑等。可以理解,计算对象810、812等以及计算对象或设备820、822、824、826、。

41、828等可包括不同的设备,诸如个人数字助理PDA、音频/视频设备、移动电话、MP3播放器、个人计算机、膝上型计算机等。0062每个计算对象810、812等以及计算对象或设备820、822、824、826、828等可经由通信网络840直接或间接地与一个或多个其他计算对象810、812等以及计算对象或设备820、说明书CN104094248A108/10页11822、824、826、828等通信。尽管在图8中被示为单个元件,但通信网络840可包括向图8的系统提供服务的其他计算对象和计算设备和/或可表示未示出的多个互连网络。每个计算对象810、812等或计算对象或设备820、822、824、826、。

42、828等还可以包含应用,诸如可以利用API或其他对象、软件、固件和/或硬件的、适于根据本发明的各实施例所提供的应用实现与其进行通信的应用830、832、834、836、838。0063存在支持分布式计算环境的各种系统、组件和网络配置。例如,计算系统可由有线或无线系统、本地网络或广泛分布的网络连接在一起。当前,许多网络被耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络,但任何网络基础结构都可用于便于与如各实施例中所描述的系统的示例性通信。0064由此,可使用诸如客户机/服务器、对等、或混合体系结构之类的网络拓扑结构和网络基础结构的主机。“客户机”是使用与其无关的另一类或组的服。

43、务的一类或组中的成员。客户机可以是进程,例如,大致上是请求另一程序或进程所提供的服务的一组指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其他程序或服务本身的任何工作细节。0065在客户机/服务器体系结构中,尤其在联网系统中,客户机通常是访问另一计算机例如,服务器所提供的共享网络资源的计算机。在图8的图示中,作为非限制性示例,计算对象或设备820、822、824、826、828等可被认为是客户机而计算对象810、812等可被认为是服务器,其中计算对象810、812等作为提供数据服务的服务器,诸如从客户机计算对象或设备820、822、824、826、828等接收数据、存储数据、处理数据。

44、、向客户机计算对象或设备820、822、824、826、828等发送数据,但任何计算机都可取决于环境而被认为是客户机、服务器、或两者。0066服务器通常是可通过诸如因特网或无线网络基础架构之类的远程网络或本地网络访问的远程计算机系统。客户机进程可在第一计算机系统中活动,而服务器进程可在第二计算机系统中活动,它们通过通信介质相互通信,由此提供分布式功能并允许多个客户机利用服务器的信息收集能力。0067在通信网络840或总线是因特网的网络环境中,例如,计算对象810、812等可以是其他计算对象或设备820、822、824、826、828等经由诸如超文本传输协议HTTP之类的多种已知协议中的任一种与。

45、其通信的WEB服务器。计算对象810、812等作为服务器还可用作例如计算对象或设备820、822、824、826、828等的客户机,这可以是如分布式计算环境的特性。0068示例计算设备0069如上所述,有利地,本文所描述的技术可应用于任何设备。因此,应当理解,构想了结合各实施例使用的所有种类的手持式、便携式和其它计算设备和计算对象。因此,以下在图9中所述的通用远程计算机只是计算设备的一个示例。0070各实施例可部分地经由操作系统来实现,以供设备或对象的服务开发者使用和/或被包括在用于执行此处所述的各实施例的一个或多个功能方面的应用软件内。软件可以在由诸如客户机工作站、服务器或其它设备等一个或多。

46、个计算机执行的诸如程序模块等计算机可执行指令的通用上下文中描述。本领域的技术人员可以理解,计算机系统具有可用于传递数据的各种配置和协议,并且由此没有特定配置或协议应当被认为是限制性的。说明书CN104094248A119/10页120071图9由此示出了其中可实现本文所述的各实施例的一个或多个方面的合适的计算系统环境900的一个示例,尽管如上所述,计算系统环境900仅为合适的计算环境的一个示例,并非对使用范围或功能提出任何限制。此外,也不应当将计算系统环境900解释为对在示例性计算系统环境900中所示的组件中的任何一个或其组合有任何依赖。0072参考图9,用于实现一个或多个实施例的示例性远程设。

47、备包括计算机910形式的通用计算设备。计算机910的组件可包括,但不限于,处理单元920、系统存储器930、以及将包括系统存储器的各种系统组件耦合到处理单元920的系统总线922。0073计算机910通常包括各种计算机可读介质,并且可以是可由计算机910访问的任何可用介质。系统存储器930可包括诸如只读存储器ROM和/或随机存取存储器RAM之类的易失性和/或非易失性存储器形式的计算机存储介质。作为示例而非限制,系统存储器930还可包括操作系统、应用程序、其他程序模块、以及程序数据。0074用户可通过输入设备940向计算机910输入命令和信息。监视器或其他类型的显示设备也经由诸如输出接口950之。

48、类的接口连接到系统总线922。除监视器以外,计算机还可包括诸如扬声器和打印机之类的其他外围输出设备,它们可通过输出接口950连接。0075计算机910可使用到一个或多个其他远程计算机诸如远程计算机970的逻辑连接在联网或分布式环境中操作。远程计算机970可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点、或者任何其他远程媒体消费或传输设备,并且可包括以上关于计算机910所述的任何或全部元件。图9所示的逻辑连接包括诸如局域网LAN或广域网WAN之类的网络960和接口972,但也可包括其他网络/总线。这些联网环境在家庭、办公室、企业范围的计算机网络、内联网和因特网中是常见的。0。

49、076如上所述,尽管结合各种计算设备和网络体系结构描述了各示例性实施例,但基本概念可被应用于其中期望改进资源使用的效率的任何网络系统和任何计算设备或系统。0077而且,存在实现相同或相似功能的多种方法,例如适当的API、工具箱、驱动程序代码、操作系统、控件、独立或可下载软件对象等,它们使得应用和服务能够使用此处提供的技术。由此,此处的各实施例从API或其他软件对象的观点以及从实现如此处描述的一个或多个实施例的软件或硬件对象构想。由此,此处所述的各实施例可具有完全采用硬件、部分采用硬件并且部分采用软件、以及采用软件的方面。0078为避免疑惑,本文所公开的主题不限于这些示例。另外,在此所述的被描述为“示例”的任意方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,在使用术语“包括”、“具有”、“包含”和其他类似词语的程度上,为避免疑惑,这些术语旨在当用于权利要求中时以类似于术语“包括”作为开放的过渡词的方式是包含性的而不排除任何附加或其他元素。0079如所述的,此处所述的各种技术可结合硬件或软件或,在适当时,以两者的组合来实现。如此处所使用的,术语“组件”、“模块”、“系统”等同样旨在指计算机相关实体,或者是硬件、硬件和软件的组合、软件或者是执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行件、执行的线程、程序、和/或计算机。作为说。

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

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


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