控制服务器升级的装置及方法

文档序号:10572516阅读:147来源:国知局
控制服务器升级的装置及方法
【专利摘要】本发明公开了一种控制服务器升级的方法,属于网络控制技术领域。所述方法包括:根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待升级服务器,所述至少两个服务器中升级优先级低的服务器的全部或部分功能依赖于至少一个升级优先级高的服务器;向所述待升级服务器发送升级指令,所述升级指令用于指示所述待升级服务器开始升级,根据各个服务器之间的依赖关系自动确定哪些服务器可以进行升级,并自动控制可以升级的服务器进行升级,不需要手动选择待升级的服务器,从而达到减少服务器升级所占用的人力和时间,降低服务器升级复杂度,以及提高待升级服务器选择准确性的效果。
【专利说明】
控制服务器升级的装置及方法
技术领域
[0001] 本发明涉及网络控制技术领域,特别涉及一种控制服务器升级的装置及方法。
【背景技术】
[0002] 大型网络服务平台通常由成千上万台的服务器来支撑日常的业务运营。由于平台 漏洞修复和新的功能特性上线等因素,有时需要对这些服务器进行升级。
[0003] 基于某些业务特性的需要,服务器间可能存在一定的依赖关系,某些服务器必须 在其他服务器升级之后才能升级。例如,某个服务器升级后数据库中新增了一个业务属性, 而其他服务器需要读取该新增的属性用来展示和处理新业务。如果先升级其他服务器,而 该服务器的数据库还没有升级,则会导致其他服务器无法正确展示和进行该新业务的处 理。
[0004] 在现有技术中,平台管理人员可以通过升级工具批量升级服务器,比如,升级工具 提供操作界面,平台管理人员根据各个服务器之间的依赖关系,在该操作界面中手动选择 一批服务器进行升级,当这些服务器升级完成后,再选择下一批可以升级的服务器。
[0005] 在实现本发明的过程中,发明人发现现有技术存在如下问题:
[0006] 通过升级工具批量升级服务器时,各个服务器的升级时序依赖人工去控制,当服 务器个数较多时,每次升级都会占用大量的人力和时间,服务器升级操作过程较为复杂,人 工维护成本高。

【发明内容】

[0007] 为了解决现有技术中各个服务器的升级时序依赖人工去控制,当服务器个数较多 时,每次升级都会占用大量的人力和时间,服务器升级操作过程较为复杂,人工维护成本高 的问题,本申请提供了一种控制服务器升级的装置及方法。
[0008] 第一方面,本发明提供了一种控制服务器升级的方法,包括:
[0009] 根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待升 级服务器,所述至少两个服务器中升级优先级低的服务器的全部或部分功能依赖于至少一 个升级优先级高的服务器;向所述待升级服务器发送升级指令,所述升级指令用于指示所 述待升级服务器开始升级。
[0010] 本发明实施例提供的控制服务器升级的方法,通过根据至少两个服务器各自对应 的、用于指示该至少两个服务器之间的依赖关系的升级优先级,确定该至少两个服务器中 的待升级服务器,并向该待升级服务器发送升级指令,指示该待升级服务器开始升级,根据 各个服务器之间的依赖关系自动确定哪些服务器可以进行升级,并自动控制可以升级的服 务器进行升级,不需要手动选择待升级的服务器,从而达到减少服务器升级所占用的人力 和时间,降低服务器升级复杂度,以及提高待升级服务器选择准确性的效果。
[0011] 在第一方面的第一种可能实现方式中,所述升级优先级包括群组优先级和服务器 优先级;所述群组优先级用于指示对应服务器所在的群组的优先级,所述服务器优先级用 于指示对应服务器在所述对应服务器所在的群组中的优先级;其中,所述群组优先级低的 群组中包含的服务器的全部或部分功能依赖于至少一个所述群组优先级高的群组中包含 的服务器;在一个所述群组内,所述服务器优先级低的服务器的全部或部分功能依赖于至 少一个服务器优先级高的服务器。
[0012] 结合第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,所 述根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待升级服务 器,包括:
[0013] 当接收到所述至少两个服务器中的请求服务器发送的升级请求时,查询至少一个 目标群组,所述至少一个目标群组是尚未完成升级的各个群组中、群组优先级最高的所述 群组;获取可升级列表,所述可升级列表中包含每一个所述目标群组中尚未完成升级的各 个服务器中、服务器优先级最高的至少一个服务器;检测所述请求服务器是否存在于所述 可升级列表中;若所述请求服务器存在于所述可升级列表中,则确定所述请求服务器为所 述待升级服务器。
[0014] 提供一种服务器主动请求时,根据服务器之间的依赖关系自动控制服务器进行升 级的方法,达到减少服务器升级所占用的人力和时间,降低服务器升级复杂度,以及提高待 升级服务器选择准确性的效果。
[0015] 结合第一方面的第一种可能实现方式,在第一方面的第三种可能实现方式中,所 述根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待升级服务 器,包括:
[0016] 当接收到所述至少两个服务器中的请求服务器发送的升级请求时,查询所述请求 服务器的群组优先级和服务器优先级;检测所述请求服务器的群组优先级是否为所述至少 两个服务器中尚未完成升级的各个服务器的群组优先级中的最高优先级;若所述请求服务 器的群组优先级是所述至少两个服务器中尚未完成升级的各个服务器的群组优先级中的 最高优先级,则检测所述请求服务器的服务器优先级是否为所述请求服务器所在群组内尚 未完成升级的各个服务器的服务器优先级中的最高优先级;若所述请求服务器的服务器优 先级是所述请求服务器所在群组内尚未完成升级的各个服务器的服务器优先级中的最高 优先级,则确定所述请求服务器为所述待升级服务器。
[0017] 提供另一种服务器主动请求时,根据服务器之间的依赖关系自动控制服务器进行 升级的方法,达到减少服务器升级所占用的人力和时间,降低服务器升级复杂度,以及提高 待升级服务器选择准确性的效果。
[0018] 结合第一方面的第一种可能实现方式,在第一方面的第四种可能实现方式中,所 述根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待升级服务 器,包括:
[0019] 查询至少一个目标群组,所述目标群组是尚未完成升级的各个群组中、群组优先 级最高的所述群组;对于所述至少一个目标群组中的每一个目标群组,将所述目标群组中 尚未完成升级的各个服务器中、服务器优先级最高的至少一个服务器确定为所述待升级服 务器。
[0020] 提供一种控制设备主动根据服务器之间的依赖关系自动控制服务器进行升级的 方法,达到减少服务器升级所占用的人力和时间,降低服务器升级复杂度,以及提高待升级 服务器选择准确性的效果。
[0021 ]在第一方面的第五种可能实现方式中,所述方法还包括:
[0022] 在根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待 升级服务器之前,获取所述至少两个服务器之间的依赖关系;根据所述至少两个服务器之 间的依赖关系确定所述至少两个服务器各自对应的升级优先级。
[0023] 控制设备根据各个服务器之间的依赖关系自动确定各个服务器的升级优先级,进 一步减少人工操作步骤,降低服务器升级复杂度。
[0024]第二方面,本发明实施例提供了一种控制设备,该控制设备包括:处理器和存储 器;该处理器被配置为执行存储器中存储的指令;该处理器通过执行指令来实现上述第一 方面或第一方面的任意一种可能实现方式所提供的控制服务器升级的方法。
[0025] 第三方面,本发明实施例提供了一种控制服务器升级的装置,该控制服务器升级 的装置包括至少一个单元,该至少一个单元用于实现上述第一方面或第一方面的任意一种 可能的实现方式所提供的控制服务器升级的方法。
[0026] 第四方面,本发明实施例还提供了一种计算机可读介质,该计算机可读介质存储 有用于实现第一方面或第一方面的任意一种可能的实现方式所提供的控制服务器升级的 方法的指令。
【附图说明】
[0027] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0028] 图1是本发明所涉及的网络环境的架构图;
[0029] 图2是本发明一个示例性实施例提供的网络设备的结构示意图;
[0030] 图3是图2所示实施例提供的一种应用程序模块的构成图;
[0031 ]图4是本发明一个实施例提供的控制服务器升级的方法的流程图;
[0032] 图5是本发明另一实施例提供的控制服务器升级的方法的流程图;
[0033] 图6是本发明一个实施例提供的控制服务器升级的装置的框图。
【具体实施方式】
[0034]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0035]请参考图1,其示出了本发明所涉及的网络环境的架构图。该网络环境包括以下网 络设备:控制设备110以及至少两个服务器120。
[0036] 至少两个服务器120可以组成一个或多个大型网络服务平台,每个服务器120负责 该大型网络服务平台中的一项或多项功能。每个服务器120可以是单台服务器,或者,每个 服务器120也可以由多台实现相同功能的服务器组成。在本发明实施例所示的网络环境中, 一个服务器120中的全部或者部分功能的实现可能需要另一个服务器120提供数据支持。 [0037]控制设备110与至少两个服务器120相连接,在本发明各个实施例中,控制设备110 是所有服务器120的升级控制的总设备,控制所有服务器120能够按一定的依赖时序进行升 级。
[0038] 可选的,该网络环境还可以包括至少一个升级包数据库130,每个升级包数据库 130连接一个或多个服务器120,并存储该一个或多个服务器120升级所需的升级数据包。
[0039] 请参考图2,其示出了本发明一个示例性实施例提供的网络设备的结构示意图。该 网络设备20可以实现为上述图1所示网络环境中的控制设备110。
[0040] 该网络设备20可以包括:处理器21、存储器23以及通信接口 24。
[0041 ] 处理器21可以包括一个或者一个以上中央处理单元(英文:Central Processing Unit,缩写:CPU)。处理器21通过运行软件程序以及模块,从而执行各种功能应用以及业务 数据处理。
[0042] 通信接口24包括包处理器(英文:packet processor)和网络接口。包处理器解析 到达网络设备的数据包后,将数据包发送给处理器21进行处理,或者,也可以将该数据包通 过网络接口转发给上级/下级设备。网络接口可以包含有线网络接口,比如以太网接口,也 可以包含无线网络接口。
[0043] 可选的,该网络设备20还可以包括通信总线22。存储器23和通信接口 24分别通过 通信总线22与处理器21相连。
[0044]存储器23可用于存储软件程序以及模块,该软件程序以及模块由处理器21执行。 此外,该存储器23中还可以存储各类业务数据和用户数据。
[0045] 在本发明实施例中,存储器23中存储的软件程序以及模块中可以包括由处理器21 执行的至少一个功能所需的应用程序模块26。
[0046] 请参考图3,其示出了本发明实施例涉及的一种应用程序模块的组成示意图,其 中,该应用程序模块26可以是:第一确定模块26a、指令发送模块26b、获取模块26c以及第二 确定模块26d;
[0047] 第一确定模块26a,用于根据至少两个服务器各自对应的升级优先级,确定所述至 少两个服务器中的待升级服务器,所述至少两个服务器中升级优先级低的服务器的全部或 部分功能依赖于至少一个升级优先级高的服务器。
[0048]指令发送模块26b,用于向所述待升级服务器发送升级指令,所述升级指令用于指 示所述待升级服务器开始升级。
[0049] 获取模块26c,用于在所述第一确定单元根据至少两个服务器各自对应的升级优 先级,确定所述至少两个服务器中的待升级服务器之前,获取所述至少两个服务器之间的 依赖关系。
[0050] 第二确定模块26d,用于根据所述至少两个服务器之间的依赖关系确定所述至少 两个服务器各自对应的升级优先级。
[0051 ] 此外,该网络设备20还可以包括输出设备25以及输入设备27。输出设备25和输入 设备27也通过通信总线22与处理器21相连。输出设备25可以是用于显示信息的显示器、播 放声音的功放设备或者打印机等,输出设备25还可以包括输出控制器,用以提供输出到显 示屏、功放设备或者打印机。输入设备27可以是用于用户输入信息的诸如鼠标、键盘、电子 触控笔或者触控面板之类的设备,输入设备27还可以包括输出控制器以用于接收和处理来 自鼠标、键盘、电子触控笔或者触控面板等设备的输入。
[0052] 本发明各个实施例所示的方案,控制设备可以根据至少两个服务器各自对应的升 级优先级,确定至少两个服务器中的待升级服务器,该至少两个服务器中升级优先级低的 服务器的全部或部分功能依赖于至少一个升级优先级高的服务器,控制设备向待升级服务 器发送升级指令,用于指示待升级服务器开始升级。其中,控制设备控制服务器进行升级 时,可以由服务器向控制设备主动发起升级请求,并在控制设备的控制下进行升级,或者, 也可以由控制设备主动通知服务器进行升级。本发明下面的实施例将以这两种情形为例分 别进行说明。
[0053] 请参考图4,其示出了本发明一个实施例提供的控制服务器升级的方法的流程图。 该方法可以用于图1所示的网络环境的控制设备110中。如图4所示,以服务器120向控制设 备110主动发起升级请求,并在控制设备110的控制下进行升级为例,该控制服务器升级的 方法可以包括:
[0054]步骤401,控制设备获取至少两个服务器之间的依赖关系。
[0055] 在本发明实施例中,服务器之间的依赖关系是指一个服务器的全部或部分功能依 赖于另外至少一个服务器。比如,假设某网络服务平台中的服务器a对外提供某项查询业务 时,需要从服务器b获取相关的业务数据,则认为服务器a对服务器b有依赖关系。
[0056] 控制设备获取至少两个服务器之间的依赖关系时,可以接收各个服务器上报的依 赖信息,该依赖信息用于指示对应的服务器所依赖的服务器,比如,服务器a依赖服务器b, 则服务器a上报给控制设备的依赖信息中可以包含服务器b的标识。控制设备对各个服务器 发送的依赖信息进行统计,获得各个服务器之间的依赖关系。
[0057]或者,在另一种可能的实现方式中,也可以由管理人员通过控制设备的控制界面 手动输入或者设置各个服务器之间的依赖关系。
[0058] 该步骤401可以由上述图2所示网络设备中的处理器21执行获取模块26c来实现。 [0059]步骤402,控制设备根据该至少两个服务器之间的依赖关系确定该至少两个服务 器各自对应的升级优先级。
[0060] 其中,该升级优先级包括群组优先级和服务器优先级;该群组优先级用于指示对 应服务器所在的群组的优先级,该服务器优先级用于指示对应服务器在该对应服务器所在 的群组中的优先级;其中,该群组优先级低的群组中包含的服务器的全部或部分功能依赖 于至少一个该群组优先级高的群组中包含的服务器;在一个该群组内,该服务器优先级低 的服务器的全部或部分功能依赖于至少一个服务器优先级高的服务器。
[0061] 控制设备在根据该至少两个服务器之间的依赖关系确定该至少两个服务器各自 对应的升级优先级时,可以根据该至少两个服务器之间的依赖关系自动生成各个服务器对 应的升级优先级。或者,控制设备也可以向管理人员展示根据各个服务器之间的依赖关系 (比如,向管理人员展示可以指示各个服务器之间的依赖关系的网状图,该网状图中的每个 节点表示一个服务器,服务器之间的依赖关系通过节点之间的箭头表示),由管理人员根据 展示的依赖关系来设置各个服务器的升级优先级。
[0062]比如,网络服务平台中有服务器A、B、C、D和E五个服务器,服务器A依赖服务器B,服 务器C依赖服务器D,服务器C/D与服务器A/B不相互依赖。服务器E依赖服务器A、B、C、D。则控 制设备可以将服务器A、B、C、D、E划分为三个服务器群组,其中,
[0063] 群组1包括:服务器A、服务器B;
[0064] 群组2包括:服务器C、服务器D;
[0065] 群组3包括:服务器E。
[0066]上述三个群组具有各自的群组优先级,并且各个服务器还具有自己的服务器优先 级。上述三个群组中每个服务器的升级优先级可以表示为Χ-χ,其中,X为服务器对应的群组 优先级,X为该服务器对应的服务器优先级。
[0067] 比如,在上述三个群组中,群组1和群组2之间互不依赖,则群组1和群组2的群组优 先级可以为1(优先级数字越小,表示优先级越高),群组3中的服务器需要依赖群组1和群组 2中的服务器,则群组3的群组优先级需要比群组1和群组2的群组优先级低,比如,群组3的 群组优先级可以为2。在单个群组内,比如,在群组1内,服务器A需要依赖服务器B,则服务器 A的服务器优先级可以设置为2,服务器B的服务器优先级可以设置为优先级1,同理,在群组 2中,服务器C需要依赖服务器D,则服务器C的服务器优先级可以设置为2,服务器D的服务器 优先级可以设置为优先级1。群组3中只存在一个服务器E,则服务器E的服务器优先级可以 设置为1。
[0068] 综上,服务器A、B、C、D和E的升级优先级可以如下表1所示:
[0069]
[0070] 表 1
[0071 ]可选的,在本发明实施例中,控制设备确定该至少两个服务器各自对应的升级优 先级之后,管理人员还可以对其进行人工干预调整,比如,控制设备可以提供升级优先级调 整界面,管理人员在该调整界面中对某一个或者多个服务器的升级优先级进行人工调整。 [0072]该步骤402可以由上述图2所示网络设备中的处理器21执行第二确定模块26d来实 现。
[0073] 步骤403,控制设备向该至少两个服务器发送可升级通知,该至少两个服务器中的 请求服务器接收该可升级通知,该可升级通知用于指示可以进行服务器升级。
[0074]当至少两个服务器需要升级时,控制设备向该至少两个服务器分别发送可升级通 知,以通知这些服务器可以进行升级。
[0075]步骤404,请求服务器向控制设备发送升级请求,控制设备接收该升级请求。
[0076]该至少两个服务器中的一个请求服务器接收到可升级通知后,即可以向控制设备 发送升级请求,以查询该请求服务器是否可以进行升级。
[0077]步骤405,控制设备查询至少一个目标群组,该至少一个目标群组是尚未完成升级 的各个群组中、群组优先级最高的该群组。
[0078]步骤406,控制设备获取可升级列表,该可升级列表中包含每一个该目标群组中尚 未完成升级的各个服务器中、服务器优先级最高的至少一个服务器。
[0079] 步骤407,控制设备检测该请求服务器是否存在于该可升级列表中。
[0080] 步骤408,若该请求服务器存在于该可升级列表中,则控制设备确定该请求服务器 为待升级服务器,向请求服务器发送升级指令,该升级指令用于指示该请求服务器开始升 级。
[0081] 控制设备接收到请求服务器发送的升级请求后,首先根据该请求服务器的升级优 先级检测该请求服务器是否可以升级(即检测其是否为此时的待升级服务器)。在上述步骤 405至步骤408所示的方案中,控制设备首先生成用于指示当前可升级的各个服务器的可升 级列表,再检测请求服务器是否存在与该可升级列表中,如果是,则说明当前未完成升级的 其它服务器中没有该请求服务器需要依赖的服务器,并向其发送升级指令。
[0082] 可选的,在另一种可能的实现方式中,控制设备在接收到该至少两个服务器中的 请求服务器发送的升级请求时,也可以不获取可升级列表,而是直接查询该请求服务器的 升级优先级是否为当前可升级的各个服务器中的最高优先级,如果是,则向请求服务器发 送升级指令,其实现过程如下:
[0083] 控制设备查询该请求服务器的群组优先级和服务器优先级;检测该请求服务器的 群组优先级是否为该至少两个服务器中尚未完成升级的各个服务器的群组优先级中的最 高优先级;若该请求服务器的群组优先级是该至少两个服务器中尚未完成升级的各个服务 器的群组优先级中的最高优先级,则进一步检测该请求服务器的服务器优先级是否为该请 求服务器所在群组内尚未完成升级的各个服务器的服务器优先级中的最高优先级;若该请 求服务器的服务器优先级是该请求服务器所在群组内尚未完成升级的各个服务器的服务 器优先级中的最高优先级,则确定该请求服务器为该待升级服务器。
[0084] 在上述实现过程中,控制设备首先检测请求服务器的群组优先级是否为该至少两 个服务器中尚未完成升级的各个服务器的群组优先级中的最高优先级,如果是,则说明该 请求服务器所在的群组之外的其他群组中,不可能存在该请求服务器需要依赖且未完成升 级的服务器;反之,如果否,则说明该请求服务器所在的群组之外的其他群组中,可能存在 该请求服务器需要依赖且未完成升级的服务器,此时可以判定请求服务器不是待升级服务 器。
[0085] 如果请求服务器的群组优先级是尚未完成升级的各个服务器的群组优先级中的 最高优先级,则控制设备进一步检测该请求服务器的服务器优先级是否为该请求服务器所 在群组内尚未完成升级的各个服务器的服务器优先级中的最高优先级,如果是,则说明在 该群组内不存在该请求服务器需要依赖的服务器;反之,如果否,则说明该群组存在该请求 服务器需要依赖的服务器,此时可以判定请求服务器不是待升级服务器。如果该请求服务 器的服务器优先级是该请求服务器所在群组内尚未完成升级的各个服务器的服务器优先 级中的最高优先级,则控制设备向该请求服务器发送升级指令。
[0086] 上述步骤405至步骤407中控制设备确定该请求服务器为该待升级服务器的过程 可以由上述图2所示网络设备中的处理器21执行第一确定模块26a来实现,上述步骤407中 控制设备向请求服务器发送升级指令的过程可以由上述图2所示网络设备中的处理器21执 行指令发送模块26b来实现。
[0087]步骤409,请求服务器接收升级指令并开始升级。
[0088]请求服务器接收到该升级指令之后,即可以从该请求服务器对应的升级包数据库 中提取升级数据包并自动进行升级。
[0089] 步骤410,请求服务器升级完成后向控制设备发送完成响应。
[0090] 请求服务器升级完成之后,将通知控制设备,以便控制设备及时更新该请求服务 器的升级状态。
[0091] 步骤411,若该请求服务器不存在于该可升级列表中,则控制设备向请求服务器发 送休眠指令。
[0092] 如果请求服务器不存在与上述可升级列表中,则说明未完成升级的其它服务器中 可能存在该请求服务器需要依赖的服务器,此时,控制设备控制请求服务器进入休眠状态, 暂不升级。
[0093]步骤412,请求服务器接收该休眠指令,并在休眠指定时间后重新发送升级请求。 [0094]请求服务器在休眠的一段时间之后,重新向控制设备发起升级请求。
[0095]比如,以上述服务器A、B、C、D和E为例,控制设备向服务器A、B、C、D和E分别发送可 升级通知,控制设备确定当前优先级最高且未完成升级的群组为群组1和群组2,进一步确 定群组1和群组2中各自服务器优先级最高的服务器为服务器B和服务器D,则生成用于指示 服务器B和服务器D的可升级别表,此时,若控制设备接收到服务器B或者D发送的升级请求, 检测出服务器B或者D存在于可升级列表中,则向服务器B或者D发送升级指令,服务器B或者 D接收到升级指令后,从升级包数据库获取升级数据包并进行升级,并在升级完成后向控制 设备返回升级完成响应,控制设备接收到升级完成响应后,可以将服务器B或者服务器D从 可升级列表中移除,当可升级列表中所有服务器都被移除时,控制设备重新获取可升级列 表。若控制设备接收到服务器A、C或者E发送的升级请求,则控制设备向服务器A、C或者E发 送休眠指令,服务器A、C或者E进入休眠一段时间(比如一小时)后,重新向控制设备发送升 级请求。
[0096] 或者,在另一种可能的实现方式中,假设上述服务器A、B、C、D和E均未完成升级,当 控制设备接收到服务器A、B、C、D和E分别发送的升级请求后,首先根据服务器A、B、C、D和E的 群组优先级确定服务器A、B、C和D的群组优先级为尚未完成升级的群组的群组优先级中最 高优先级,向服务器E发送休眠指令;进一步的,控制设备根据服务器A、B、C和D的服务器优 先级,确定服务器B和服务器D的服务器优先级是各自群组内尚未完成升级的服务器对应的 服务器优先级中的最高优先级,则控制设备向服务器B和服务器D发送升级指令,并向服务 器A和服务器C发送休眠指令。服务器B和服务器D接收到升级指令后,从升级包数据库获取 升级数据包并进行升级,并在升级完成后向控制设备返回升级完成响应,控制设备接收到 升级完成响应后,将服务器B和服务器D标记为已完成升级,服务器A、C和E进入休眠一段时 间(比如一小时)后,重新向控制设备发送升级请求。
[0097] 可选的,为了使不存在依赖关系的各个服务器可以并行升级,以提高各个服务器 整体的升级效率,在本发明实施例中,如果两个群组中的各个服务器之间不存在依赖关系, 则在满足与其它各个群组之间的依赖关系的情况下,这两个群组可以设置相同的群组优先 级,即这两个群组中的服务器可以同时进行升级;类似的,对于一个群组中的多个服务器, 若其中两个服务器之间不存在依赖关系,则在满足与群组中其它各个服务器之间的依赖关 系的情况下,这两个服务器可以设置相同的服务器优先级,即这两个服务器可以同时进行 升级。
[0098] 综上所述,本发明实施例所示的控制服务器升级的方法,控制设备根据至少两个 服务器各自对应的、用于指示该至少两个服务器之间的依赖关系的升级优先级,确定该至 少两个服务器中的待升级服务器,并向该待升级服务器发送升级指令,指示该待升级服务 器开始升级,根据各个服务器之间的依赖关系自动确定哪些服务器可以进行升级,并自动 控制可以升级的服务器进行升级,不需要手动选择待升级的服务器,从而达到减少服务器 升级所占用的人力和时间,降低服务器升级复杂度,以及提高待升级服务器选择准确性的 效果。
[0099] 请参考图5,其示出了本发明另一实施例提供的控制服务器升级的方法的流程图。 该方法可以用于图1所示的网络环境的控制设备110中。如图5所示,以控制设备110主动通 知服务器120进行升级为例,该控制服务器升级的方法可以包括:
[0100]步骤501,控制设备获取至少两个服务器之间的依赖关系。
[0101] 该步骤501可以由上述图2所示网络设备中的处理器21执行获取模块26c来实现。
[0102] 步骤502,控制设备根据该至少两个服务器之间的依赖关系确定该至少两个服务 器各自对应的升级优先级。
[0103] 该步骤502可以由上述图2所示网络设备中的处理器21执行第二确定模块26d来实 现。
[0104] 步骤503,控制设备查询至少一个目标群组,该至少一个目标群组是尚未完成升级 的各个群组中、群组优先级最高的该群组。
[0105] 步骤504,对于该至少一个目标群组中的每一个目标群组,控制设备将该目标群组 中尚未完成升级的各个服务器中、服务器优先级最高的至少一个服务器确定为待升级服务 器。
[0106] 在本发明实施例中,控制设备可以主动通知升级优先级满足条件的服务器开始升 级。具体的,控制设备在确定待升级服务器时,首先查询当前未完成升级的各个群组中,群 组优先级最高的至少一个群组,对于该至少一个群组中的每个群组,将该群组中尚未完成 升级的各个服务器中,服务器优先级最高的服务器作为待升级服务器。
[0107] 上述步骤503和步骤504可以由上述图2所示网络设备中的处理器21执行第一确定 模块26a来实现。
[0108] 步骤505,控制设备向待升级服务器发送升级指令,该升级指令用于指示该待升级 服务器开始升级。
[0109] 该步骤可以由上述图2所示网络设备中的处理器21执行指令发送模块26b来实现。
[0110] 步骤506,待升级服务器接收升级指令并开始升级。
[0111] 步骤507,请求服务器升级完成后向控制设备发送完成响应。
[0112] 比如,以上述服务器A、B、C、D和E需要升级为例,控制设备首先确定尚未完成升级 的群组中,群组优先级最高的群组为群组1和群组2,之后,控制设备进一步从群组1和群组2 中选择尚未完成升级且服务器优先级最高的服务器B和服务器D,将这两个服务器作为待升 级服务器,并向服务器B和服务器D发送升级指令。服务器B和服务器D完成升级后,向控制设 备发送完成响应,控制设备更新服务器的升级状态,并继续确定新的待升级服务器,比如, 当控制设备接收到服务器B发送的完成响应后,可以确定服务器A为下一个待升级服务器, 并向服务器A发送升级指令,当服务器A、B、C和D都完成升级后,控制设备确定服务器E为待 升级服务器。
[0113] 综上所述,本发明实施例所示的控制服务器升级的方法,控制设备根据至少两个 服务器各自对应的、用于指示该至少两个服务器之间的依赖关系的升级优先级,确定该至 少两个服务器中的待升级服务器,并向该待升级服务器发送升级指令,指示该待升级服务 器开始升级,根据各个服务器之间的依赖关系自动确定哪些服务器可以进行升级,并自动 控制可以升级的服务器进行升级,不需要手动选择待升级的服务器,从而达到减少服务器 升级所占用的人力和时间,降低服务器升级复杂度,以及提高待升级服务器选择准确性的 效果。
[0114] 请参考图6,其示出了本发明一个实施例提供的控制服务器升级的装置的框图。该 装置可以通过硬件或者软硬结合的方式实现为图1所示网络环境的控制设备110的部分或 者全部,用以执行如图4或图5中由控制设备所执行的全部或者部分步骤。在本实施例中,该 装置是以功能单元的形式来呈现。这里的"单元"可以指特定应用集成电路(application-specific integrated circuit,ASIC) , 电路,执行一个或多个软件或固件程序的处理器和 存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。该装置可以包括:第一确定单 元601、指令发送单元602、获取单元603以及第二确定单元604;
[0115] 第一确定单元601,具有与第一确定模块26a相同或相似的功能。
[0116] 指令发送单元602,用于与指令发送模块26b相同或相似的功能。
[0117] 获取单元603,具有与获取模块26c相同或相似的功能。
[0118] 第二确定单元604,用于与第二确定模块26d相同或相似的功能。
[0119] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件 来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读 存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0120] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种控制服务器升级的装置,其特征在于,所述装置包括: 第一确定单元,用于根据至少两个服务器各自对应的升级优先级,确定所述至少两个 服务器中的待升级服务器,所述至少两个服务器中升级优先级低的服务器的全部或部分功 能依赖于至少一个升级优先级高的服务器; 指令发送单元,用于向所述待升级服务器发送升级指令,所述升级指令用于指示所述 待升级服务器开始升级。2. 根据权利要求1所述的装置,其特征在于,所述升级优先级包括群组优先级和服务器 优先级; 所述群组优先级用于指示对应服务器所在的群组的优先级,所述服务器优先级用于指 示对应服务器在所述对应服务器所在的群组中的优先级; 其中,所述群组优先级低的群组中包含的服务器的全部或部分功能依赖于至少一个所 述群组优先级高的群组中包含的服务器; 在一个所述群组内,所述服务器优先级低的服务器的全部或部分功能依赖于至少一个 服务器优先级高的服务器。3. 根据权利要求2所述的装置,其特征在于, 所述第一确定单元,具体用于当接收到所述至少两个服务器中的请求服务器发送的升 级请求时,查询至少一个目标群组,所述至少一个目标群组是尚未完成升级的各个群组中、 群组优先级最高的所述群组;获取可升级列表,所述可升级列表中包含每一个所述目标群 组中尚未完成升级的各个服务器中、服务器优先级最高的至少一个服务器;检测所述请求 服务器是否存在于所述可升级列表中;若所述请求服务器存在于所述可升级列表中,则确 定所述请求服务器为所述待升级服务器。4. 根据权利要求2所述的装置,其特征在于, 所述第一确定单元,具体用于当接收到所述至少两个服务器中的请求服务器发送的升 级请求时,查询所述请求服务器的群组优先级和服务器优先级;检测所述请求服务器的群 组优先级是否为所述至少两个服务器中尚未完成升级的各个服务器的群组优先级中的最 高优先级;若所述请求服务器的群组优先级是所述至少两个服务器中尚未完成升级的各个 服务器的群组优先级中的最高优先级,则检测所述请求服务器的服务器优先级是否为所述 请求服务器所在群组内尚未完成升级的各个服务器的服务器优先级中的最高优先级;若所 述请求服务器的服务器优先级是所述请求服务器所在群组内尚未完成升级的各个服务器 的服务器优先级中的最高优先级,则确定所述请求服务器为所述待升级服务器。5. 根据权利要求2所述的装置,其特征在于, 所述第一确定单元,具体用于查询至少一个目标群组,所述目标群组是尚未完成升级 的各个群组中、群组优先级最高的所述群组;对于所述至少一个目标群组中的每一个目标 群组,将所述目标群组中尚未完成升级的各个服务器中、服务器优先级最高的至少一个服 务器确定为所述待升级服务器。6. 根据权利要求1所述的装置,其特征在于,所述装置还包括: 获取单元,用于在所述第一确定单元根据至少两个服务器各自对应的升级优先级,确 定所述至少两个服务器中的待升级服务器之前,获取所述至少两个服务器之间的依赖关 系; 第二确定单元,用于根据所述至少两个服务器之间的依赖关系确定所述至少两个服务 器各自对应的升级优先级。7. -种控制服务器升级的方法,其特征在于,所述方法包括: 根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待升级服 务器,所述至少两个服务器中升级优先级低的服务器的全部或部分功能依赖于至少一个升 级优先级高的服务器; 向所述待升级服务器发送升级指令,所述升级指令用于指示所述待升级服务器开始升 级。8. 根据权利要求7所述的方法,其特征在于,所述升级优先级包括群组优先级和服务器 优先级; 所述群组优先级用于指示对应服务器所在的群组的优先级,所述服务器优先级用于指 示对应服务器在所述对应服务器所在的群组中的优先级; 其中,所述群组优先级低的群组中包含的服务器的全部或部分功能依赖于至少一个所 述群组优先级高的群组中包含的服务器; 在一个所述群组内,所述服务器优先级低的服务器的全部或部分功能依赖于至少一个 服务器优先级高的服务器。9. 根据权利要求8所述的方法,其特征在于,所述根据至少两个服务器各自对应的升级 优先级,确定所述至少两个服务器中的待升级服务器,包括: 当接收到所述至少两个服务器中的请求服务器发送的升级请求时,查询至少一个目标 群组,所述至少一个目标群组是尚未完成升级的各个群组中、群组优先级最高的所述群组; 获取可升级列表,所述可升级列表中包含每一个所述目标群组中尚未完成升级的各个 服务器中、服务器优先级最高的至少一个服务器; 检测所述请求服务器是否存在于所述可升级列表中; 若所述请求服务器存在于所述可升级列表中,则确定所述请求服务器为所述待升级服 务器。10. 根据权利要求8所述的方法,其特征在于,所述根据至少两个服务器各自对应的升 级优先级,确定所述至少两个服务器中的待升级服务器,包括: 当接收到所述至少两个服务器中的请求服务器发送的升级请求时,查询所述请求服务 器的群组优先级和服务器优先级; 检测所述请求服务器的群组优先级是否为所述至少两个服务器中尚未完成升级的各 个服务器的群组优先级中的最高优先级; 若所述请求服务器的群组优先级是所述至少两个服务器中尚未完成升级的各个服务 器的群组优先级中的最高优先级,则检测所述请求服务器的服务器优先级是否为所述请求 服务器所在群组内尚未完成升级的各个服务器的服务器优先级中的最高优先级; 若所述请求服务器的服务器优先级是所述请求服务器所在群组内尚未完成升级的各 个服务器的服务器优先级中的最高优先级,则确定所述请求服务器为所述待升级服务器。11. 根据权利要求8所述的方法,其特征在于,所述根据至少两个服务器各自对应的升 级优先级,确定所述至少两个服务器中的待升级服务器,包括: 查询至少一个目标群组,所述目标群组是尚未完成升级的各个群组中、群组优先级最 高的所述群组; 对于所述至少一个目标群组中的每一个目标群组,将所述目标群组中尚未完成升级的 各个服务器中、服务器优先级最高的至少一个服务器确定为所述待升级服务器。12.根据权利要求7所述的方法,其特征在于,所述方法还包括: 在根据至少两个服务器各自对应的升级优先级,确定所述至少两个服务器中的待升级 服务器之前,获取所述至少两个服务器之间的依赖关系; 根据所述至少两个服务器之间的依赖关系确定所述至少两个服务器各自对应的升级 优先级D
【文档编号】G06F9/445GK105933155SQ201610361851
【公开日】2016年9月7日
【申请日】2016年5月26日
【发明人】于新波
【申请人】华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1