在数量动态更新中同时维护计算节点的制作方法

文档序号:24045737发布日期:2021-02-23 18:40阅读:80来源:国知局
在数量动态更新中同时维护计算节点的制作方法
在数量动态更新中同时维护计算节点


背景技术:

[0001]
本公开涉及信息技术领域。更具体地,本公开涉及计算系统的维护。
[0002]
以下通过讨论与其上下文相关的技术来介绍本公开的背景。然而,即使当本讨论涉及文档、动作、人工制品等时,也不建议或表示所讨论的技术是现有技术的一部分或是与本公开相关的领域中的公知常识。
[0003]
每个计算系统通常随时间推移而经受维护活动;例如,维护活动例行地应用于在计算系统上运行的软件程序,如安装用于纠正错误的补丁、升级软件程序以改进其操作或添加新功能。
[0004]
维护活动的应用可能不利地影响计算系统的操作。实际上,软件程序在其上的维护活动的应用期间(或至少在其部分期间)不可用。在任何情况下,维护活动减慢计算系统(以及然后在其上运行的任何其他软件程序)的操作。此外,维护活动可能需要使计算系统离线(例如,当需要重新引导计算系统以使维护活动有效时)。
[0005]
特定场景是当计算系统包括对其操作有贡献的多个计算节点时(充当响应于从外部向其提交的对应请求而提供服务的单个逻辑实体)。例如,可以在集群架构中组织计算节点,其中计算系统自动地将请求分配给最适合于其处理的计算节点(全部执行相同的任务)。这提供了计算系统的并行处理和/或高可用性。典型的示例是当计算系统是云类型时。在这种情况下,云服务由云提供商提供给相应的用户,云提供商在请求时提供、配置和释放相应的计算资源(具有对用户完全不透明的其实际实现)。云服务从其实现的这种解耦合提供了对应计算资源的无限容量的错觉并且改进了它们的利用,尤其是对于高峰值负载条件(借助于规模经济);此外,用户现在依赖于计算资源的管理,并且它们可以执行先前由于其成本和复杂性(尤其是对于个人和小公司)而不可行的任务(基于每次使用付费)。
[0006]
在上述基于计算节点的计算系统中,每个维护活动可同时连续地应用于计算节点的子集。以此方式,计算系统在维护活动期间保持在线(其中向其提交的请求由保持可用的计算节点处理)。
[0007]
然而,可用计算节点的数量减少可能导致计算系统的性能下降;在最坏的情况下,计算系统的性能可能太低以至于它从外部看起来完全无法获得。这在若干情况下可能是不可接受的。典型的示例是当由云类型的计算系统提供的云服务需要预定义的服务级别时;可以根据云服务要满足的一个或多个目标度量(诸如最大响应时间),在每个用户和相应的云提供者之间协商的服务水平协议(sla)中定义服务水平。
[0008]
此外,将维护活动渐进地应用到计算节点增加了将其应用到整个计算系统所需的时间。这增加了计算系统(即,安装在其计算节点上的相同软件程序的不同实例)不是始终最新的时间。


技术实现要素:

[0009]
在此呈现本公开的简化的发明内容以便提供其基本理解;然而,本发明内容过的唯一目的是以简化的形式介绍本公开的一些概念作为其以下更详细描述的序言,并且其不
应被解释为其关键元素的标识也不应被解释为其范围的描绘。
[0010]
一般而言,本公开是基于以动态方式同时更新要维护的多个计算节点的数量的想法。
[0011]
具体地,一个方面提供了一种用于维护包括多个计算节点的计算系统的方法。该方法包括:在不超过限制数量的计算节点的维护子集上同时引起维护活动的应用;在应用维护活动期间监测计算系统的一个或多个状态指示符;以及根据状态指示符更新限制数量。
[0012]
又一方面提供一种用于实施该方法的计算机程序。
[0013]
另一方面提供一种用于实施该方法的计算机程序产品。
[0014]
另一方面提供一种相应的系统。
[0015]
另一方面提供了相应的控制计算机。
[0016]
更确切地,在独立权利要求中阐述了本公开的一个或多个方面并且在从属权利要求中阐述了其有利特征,在此通过引用逐字并入的所有权利要求的措辞(具有参照任何特定方面提供的任何有利特征,该任何特定方面比照适用于每个其他方面)。
附图说明
[0017]
参考以下仅以非限制性指示的方式给出的其详细说明,结合附图阅读,本公开的解决方案以及其进一步的特征和优点被将最好地理解(其中,为了简单起见,对应的元件用相同或相似的附图标记表示,并且不重复它们的解释,并且每个实体的名称通常用于表示其类型和其属性,如值、内容和表示)。具体地:
[0018]
图1示出了根据本公开的实施例的可以实践的计算基础设施的示意性框图。
[0019]
图2a-图2d示出了根据本公开的实施例的一般原理。
[0020]
图3a至图3b示出了根据本公开的实施例的应用实例。
[0021]
图4示出了根据本公开的实施例的可使用的主要软件组件。
[0022]
图5a至图5b示出了根据本公开的实施例的活动图,该活动图描述了与实现方式相关的活动流程。
具体实施方式
[0023]
本发明的一些实施例可以表示技术改进的一种方式是它以实时改变概述虚拟环境状态的参数的认知方式提供云基础结构的监测和提供补救动作。本公开的一些实施例可以表示计算机能力的特定改进,而不是计算机仅作为工具被调用的想法,因为系统作为人工智能主动地且持续地学习,以便安全地更新每个参数以确保最佳操作。
[0024]
具体参见图1,示出了根据本公开的说明性实施例的可以被实践的计算基础设施100的示意性框图。
[0025]
计算基础架构100包括一个或多个云提供者105(图中仅示出一个)。每个云提供者105是提供计算资源池作为云服务(即,可以非常快速地供应、配置和释放的共享计算资源)的实体;云服务的计算资源(一般为虚拟类型,即,通过物理计算资源的软件仿真)在请求时提供给云提供者105的用户,使得每个用户具有对这些计算资源的唯一控制(其然后可被准确地使用,好像它们是专用物理计算资源一样)。云服务可以根据若干服务模型来提供,具
体地,基础设施即服务,或iaas(提供具有对应存储和管理软件的计算资源,如虚拟机、具有防火墙的虚拟磁盘、负载平衡器),平台即服务或paas(提供软件平台,诸如数据库、web服务器)、软件即服务,或saas(提供软件应用程序,如cad、办公套件)和网络即服务,或naas(提供连通性服务,诸如vpn、ip地址)。此外,云服务可以根据不同的部署模型来提供,具体地,公共云(即,用于一般公众)、私有云(即,用于单个组织)、共同体云(即,用于若干组织)或混合云(基于不同部署模型的组合)。
[0026]
用户经由(通信)网络115与相应的客户端计算机或简单地客户端110(例如,瘦类型的)连接至云提供者105;例如,网络115可以是用于公共/共同体云的互联网或者用于私有云的lan。为此目的,云提供者105暴露用于访问它的前端组件(例如,经由客户端110的web浏览器);前端组件与实际实现云服务的后端组件对接(后端组件不能从外部访问,使得用户完全不知道其位置和配置)。
[0027]
云服务由计算节点120的群集(或多个)提供,例如虚拟机(充当具有执行相同任务的所有计算节点120的单个逻辑实体)。在根据本公开的实施例的方案中,云提供者105还包括控制计算机器,或简称为控制机器125(例如,另一虚拟机),其控制计算节点120的维护。
[0028]
计算节点120和控制机器125通过由一个或多个服务器群130形成的云提供者105的计算系统来实现。每个服务器群130包括若干服务器计算机器,或简称为服务器135(例如,机架或刀片类型的)和实现其大容量存储器的存储盘140(例如,raid类型的);进而,每个服务器135包括控制其操作的一个或多个微处理器(μp)、存储用于其自举的基本代码的非易失性存储器(rom)、以及由微处理器(图中未示出)用作工作存储器的易失性存储器(ram)。服务器群130还包括用于控制它的控制台145(例如,个人计算机,还配备有用于读取/写入可移动存储单元150(诸如像dvd的光盘)的驱动器)。交换机/路由器子系统155管理服务器135、磁盘140和控制台145之间的以及与网络115的任何通信;为此,服务器135、磁盘140和控制台145经由电缆子系统160连接到交换机/路由器子系统155(通过相应的网络适配器)。
[0029]
现在参见图2a-图2d,示出了根据本公开的说明性实施例的一般原理。
[0030]
从图2a开始,在计算节点120上应用维护活动(例如,以便修补或升级安装在其上的同一软件程序的相应实例)。维护活动被连续地同时应用于计算节点120的(维护)子集。为此,在开始时,初始化到预定义值的限制数量的计算节点120(最多可同时应用维护活动)。然后(由控制机125)在计算节点120的(当前)维护子集205上同时应用维护活动;维护子集205具有不超过限制数量(即,尽可能地等于限制数量)的基数。
[0031]
移至图2b,根据本公开的实施例,监测一个或多个状态指示符。状态指示符指示云提供者(其中实现计算节点120)的计算系统在维护活动的应用期间的状态;例如,状态指示符表示计算系统在其计算节点120、在计算节点120上运行的软件程序和计算系统的系统基础设施方面的性能。
[0032]
移至图2c,根据状态指示符更新限制数量。例如,当状态指示符表示计算系统的性能如所期望的那样时,尽可能增加限制数量,而当状态指示符表示计算系统的性能太低时,尽可能减少限制数量。
[0033]
移至图2d,更新维护子集205,从而使得其基数不超过(经更新的)限制数量。例如,当限制数量已减少时,维护活动不应用于任何进一步的计算节点120,直到维护子集205的
基数在一个或多个计算节点120上的维护活动完成之后已达到限制数量(如图所示);相反,当限制数量已经增加时,维护活动被应用到一个或多个其他计算节点120,直到维护子集205的基数已经尽可能地达到限制数量(图中未示出)。
[0034]
不断地重复相同的操作,直到维护活动被应用于所有计算节点120。
[0035]
以此方式,其上应用维护活动的计算节点120的数量同时动态地自适应于计算系统的状态。
[0036]
具体地,保持可用的计算节点120的数量确保计算系统的性能的可接受水平(尽可能避免其停机时间)。具体地,以此方式,可以维护任何可应用的sla所需的计算系统的服务水平(诸如其最大响应时间)。
[0037]
同时,将维护活动应用于整个计算系统所需的时间(以及然后相同软件程序的不同实例不一致地最新的时间)减小。
[0038]
因此,将维护活动应用于计算系统尽可能快而不会显著影响其操作。
[0039]
现在参见图3a-图3b,示出了根据说明性实施例的本公开的应用的实例。
[0040]
从图3a开始,考虑非常简单的场景,其中,状态指示符仅是三个,用s1、s2和s3表示(例如,s1用于计算节点,s2用于软件程序,并且s3用于性能递增的系统基础设施)。在参考条件下重复测量状态指示符s1-s3,其中计算系统在没有应用任何维护活动的情况下正常操作。已经在参考条件下测量的状态指示符s1-s3的(测量的)值可以在将测量值绘制到对应的笛卡尔轴上的(三维)散布图中用对应的(测量的)点305来表示。测量点305由参考表面310拟合,参考表面310然后表示计算系统的参考条件。
[0041]
移至图3b,在相同的散射图中参考区域315被限定在参考表面310略微内部并且在任何情况下在其外部。参考区域315则包括(由状态指示符s1-s3的相应值定义的)这些点,其中,计算系统的性能如所期望的(因为至多稍微低于参考条件中的性能)。此外,低性能区域320被限定在参考区域315内部。低性能区域320然后包括其中计算系统的性能太低的点(因为显著不同于参考条件中的更差的点)。进而,在低性能区域320内部限定不良性能区域325。然后,不良性能区域325包括其中计算系统的性能不可接受地差的点(因为与参考条件中的差的点相差差距太多)。
[0042]
在任何维护活动的应用过程中被监测的状态指示器s1-s3的(被监测的)值在相同的散点图中与相应的(被监测的)点一起表示,这些点然后表示计算系统的当前状况。可根据所监测点相对于参考表面310的位置,且特别根据从由(参考/低性能/不良性能)区域315到325定义的参考表面310的他们的距离,及根据所监测点随时间的梯度来更新限制数量。例如,在时刻t1,被监测的点p1落入基准区域315内。在下一时刻t2,被监测的点p2仍然落在靠近点p1的参考区域315内;在这种情况下,限制数量增加(因为可能尚未达到其最高可能值,并且然后限制数量可能再次增加而不会不利地影响计算系统的性能)。在下一时刻t3,被监测的点p3仍然落在接近点p2的参考区域315内;在这种情况下,限制数量再次增加。在下一时刻t4,被监测的点p4仍然落在参考区域315内,但是现在明显远离向内移动的被监测的点p3;在这种情况下,限制数量保持不变(因为应当已经达到其最高可能值,并且限制数量的进一步增加可能使得计算系统的性能太低)。另一方面,在一般时间t5,被监测的点p5落在低性能区域320内;在这种情况下,当在一个或多个计算节点上已经完成维护活动的应用时(由于计算系统的性能太低),尽可能快地减少限制数量。此外,在一般时间t6,被监测
的点p6落在不良性能区域325内;在这种情况下,通过在一个或多个计算节点上回滚维护活动的应用,立即减少限制数量(因为计算系统的性能不可接受地差)。
[0043]
现在参见图4,示出了根据本公开的实施例可以使用的主要软件部件。
[0044]
具体地,所有软件组件(程序和数据)整体用参考号400表示。软件组件通常存储在大容量存储器中,并且在程序运行时与相应操作系统(图中未示出)一起加载(至少部分地)到控制机器125和计算节点120的工作存储器中。程序最初例如从可移除存储单元或从网络安装到大容量存储器中。在这方面,每个程序可以是包括用于实现指定的逻辑功能的一个或多个可执行指令的代码的模块、段或部分。
[0045]
从控制机器125开始,其包括以下软件组件。维护管理器405管理云提供者的计算系统的维护,并且特别是管理安装在其计算节点上的软件程序的维护。例如,维护管理器405可以基于要实施到计算节点120上的策略(定义软件程序的目标状态)。维护管理器405根据一个或多个配置参数进行操作;例如,对于每个维护活动,配置参数包括(最多可以同时应用维护活动的计算节点120的)限制数量,用于向每个计算节点120应用维护活动的超时、多个特高频噪声(维护活动在其大规模应用之前最初被应用到的计算节点120),在声明维护活动的应用在每个计算节点120上失败之前的多次重试。
[0046]
在根据本公开的实施例的方案中,维护控制器410控制维护管理器405的配置,并且具体地控制其限制数量。维护控制器410访问(在读取模式中)参考数量文件415;对于可以应用到计算系统的每个维护活动(例如,由相应软件程序的唯一代码标识的每个维护活动),或者,对于它们中的全部,参考数量文件415存储用于初始化限制数量的参考数量。状态分析器420分析由其状态指示符定义的计算系统的状态。为此目的,状态分析器420利用节点监测器425、程序监测器430和基础设施监测器435,其监测计算系统的对应状态指示符(例如,通过利用探针和/或访问像寄存器、日志的存储器结构)。具体地,节点监测器425监测指示计算节点120的状态的一个或多个(节点)状态指示符,诸如其硬件/软件资源(例如,可用处理能力、可用工作存储器、重启数量、错误)。程序监测器430监测一个或多个(程序)状态指示符,其指示在计算节点120上运行的一个或多个软件程序的状态,诸如实施云服务的软件程序(例如,消耗的处理功率、消耗的工作存储器、用户票据、错误)。基础设施监测器435监测指示计算系统的一个或多个系统基础设施的状态的一个或多个(基础设施)状态指示符,诸如在计算节点120之间共享的硬件/软件资源(例如,网络吞吐量、网络业务、错误)。状态分析器420(在读/写模式中)访问监测点日志440,监测点日志440存储随着时间推移(例如,最后一个)已经收集的每个维护活动的一个或多个监测点。状态分析器420(以读/写模式)访问参考点文件445,其存储由状态指示符的(参考)值定义的参考点。参考点(以简化形式)表示计算系统的参考条件(从该参考条件可以如上所述地定义对应的参考区域、低性能区域和差性能区域);参考点的使用降低了本公开的计算复杂度而不显著影响其准确度。
[0047]
移至每个计算节点120(图中仅示出一个),其包括以下软件组件。计算节点120上安装有一个或多个软件程序450,例如,软件程序450包括实现相应云服务的操作系统和软件应用。维护代理455将任何所需的维护活动应用于软件程序450(通过使它们符合所讨论的示例中的相关策略)。为此,维护代理455与控制机器125的维护管理器405交互。
[0048]
现在参见图5a-图5b,示出了根据说明性实施例描述与本公开的实现方式相关的活动流程的活动图。
[0049]
具体地,该活动图表示可以用于使用方法500维护安装在计算节点上的相同软件程序的实例的示例性过程。在这方面,每个块可对应于用于在控制计算机器上实现指定的逻辑功能的一个或多个可执行指令。
[0050]
该过程响应于配置事件从框503转到框506;例如,这在软件程序已被部署到计算节点时第一次发生,并且可能稍后自动地(例如,对于计算系统的每次显著改变)或手动地(例如,在系统管理员的请求时)发生。在任何情况下(一旦验证计算系统按需操作),状态分析器通过请求节点监测器测量节点状态指示符、请求程序监测器测量程序状态指示符以及请求基础设施监测器测量基础设施状态指示符来收集状态指示符的测量值。状态分析器对测量值进行归一化(例如,范围从0至1以增加计算系统的性能),从而获得在n维空间中的对应测量点,其中n等于状态指示符的数量。根据已经收集的测量点的数量,活动流程在框509处分支。如果所测量的点的数量(可能严格地)低于(配置)(为提供可接受的准确度(如50-100)所需的)阈值,该过程返回至框506以重复相同的操作。相反,一旦所需数量的测量点可用,该过程下降到框512中,其中状态分析器将测量点聚集到参考点中(例如,通过对相应的测量值求平均)。在框515处,状态分析器(通过替换其可能的先前版本)将参考点保存到对应的文件中。然后,该过程返回到框503,等待下一个配置事件。
[0051]
以完全独立的方式,每当提交维护请求(例如,由系统管理员或自动提交)以用于对软件程序执行任何维护活动(例如,以改变其版本/分发或应用服务包或个别补丁)时,过程从框518转到框521。作为其响应,维护控制器将限制数量初始化为参考值(从相应文件中检索)。在框524,维护控制器然后命令维护管理器开始将维护活动应用到计算节点上。
[0052]
响应于此,维护管理器在块527验证维护子集的计算节点的(进展)数量,其中维护活动的应用在进展中(开始时为零)。如果进度数(严格地)低于限制数量,则维护管理器在块530验证维护活动仍将被应用的(剩余)计算节点的(剩余)数。如果剩余数量(严格地)高于零,则维护管理器在块533命令将维护活动应用到以任意方式从剩余计算节点中选择的(新的)计算节点上。具体地,维护管理器将在新计算节点上实现的任何云服务移动到当前在线的其他(在线)计算节点(即,其中维护活动不在进行中),并且使新计算节点离线;维护管理器命令新计算节点的维护代理启动维护活动。然后,维护活动的应用在每个计算节点上独立地继续;一旦维护活动的应用在任何计算节点上完成,维护管理器就向其返回相应的云服务,并将计算节点再次上线。过程然后返回到框524以重复相同的操作(以便尽可能将基数等于限制数量的计算节点的维护子集同时应用维护活动)。
[0053]
活动流程替代地从框527(如果进度数等于或高于限制数量)或从框530(如果剩余数等于零)下降到框536中而不执行任何动作(因为此时可以不将维护活动应用于任何另外的计算节点)。此时,状态分析器通过请求节点监测器测量节点状态指示符、请求程序监测器测量程序状态指示符以及请求基础设施监测器测量基础设施状态指示符来收集状态指示符的监测值。在框539处,状态分析器验证所测量的值是否指示计算系统的任何关键状况(例如,云服务的用户针对相应的投诉打开的严重错误或票)。
[0054]
如果不是,则状态分析器在块542归一化监测值,如上所述,以便在相同的n维空间中获得对应的监测点。在框545处,状态分析器计算沿着监测点从参考点的每个维度(即,状态指示符)的向内位移,所述向内位移等于对应参考值减去对应监测值(以便对于降低计算系统的性能为正)。在框548处,状态分析器将最大位移(等于沿着所有维度的位移的最大
值)与相对于参考点界定参考区域的低性能阈值(例如,0.1-0.2)进行比较。
[0055]
如果最大位移(可能严格地)低于低性能阈值,则监测点落入参考区域内。因此,状态分析器在块551计算来自从对应日志提取的其先前版本(如果有的话)的被监测点的梯度(等于其在n维空间中的欧几里德距离)。活动流程根据梯度在框554处分支。如果梯度(可能严格地)低于(梯度)阈值(例如,0-0.1),则状态分析器在框557处将限制数量增加一。相反,如果梯度(可能严格地)高于梯度阈值,并且在任何情况下在开始时,此时在对应日志中没有被监测点的先前版本可用,该过程继续而不执行任何动作(以便使限制数量保持不变)。
[0056]
返回参考框548,如果最大位移(可能严格地)高于低性能阈值,则监测点不落在参考区域内。因此,在框560处,状态分析器确定用于减少限制数量的增量值。例如,根据最大位移确定增量值(即,最大位移1,确定增量排除0.1至0.2、最大位移2,确定增量排除0.2至0.3等)。在框563处,状态分析器将限制数量减少增量值。在框566处的状态分析器现在相对于参考点将最大位移与定义不良性能区域的不良性能阈值(例如,0.4-0.5)进行比较。如果最大位移(高于低性能阈值)(可能严格地)低于不良性能阈值,则监测点落在基准区域与不良性能区域之间限定的低性能区域内;在这种情况下,过程继续而不执行任何动作(以便当维护活动的应用在一个或多个计算节点上已经完成时尽可能快地降低维护子集的基数,如果有必要的话)。返回参照框566,如果最大位移反而(可能严格地)高于不良性能阈值,则监测点落入不良性能区域内。因此,过程继续到框569;如果测量值指示计算系统的任何临界条件,那么也直接从框539到达同一点。在两种情况下,维护控制器命令维护管理器回滚计算节点上的维护活动的应用,以尽可能立即将维护子集的基数带到(减少的)限制数量内。为此,维护管理器首先验证维护子集的基数是否(严格地)高于限制数量。如果是,则维护管理器验证维护子集的计算节点中是否有任何(候选)计算节点可用,其中回滚维护活动的应用所需的时间比完成它所需的估计时间短(至少少到阈值量,诸如0-10%)。如果是,则维护管理器命令具有该估计时间的最高值(即,其中维护活动的应用较不先进)的候选计算节点的维护代理将其回退;一旦这个计算节点被恢复,维护管理器就向其返回相应的云服务,并将该计算节点上线。重复相同的操作,直到维护子集的基数已被带到限制数量内或者维护活动的应用的进一步回退是不可能的。
[0057]
该过程在框572处从框554、框557、框566或框569再次合并。此时,状态分析器将被监测点保存到相应的储存库中(通过替换其可能的先前版本)。现在在575进行测试,其中维护控制器验证维护活动是否已经应用于全部计算节点。如果不是,则活动流程返回到框524以重复相同的操作。相反(一旦维护活动被应用于所有计算节点),该过程下降到框578,其中,维护控制器根据在维护活动的应用期间的限制数量的值(例如,等于其平均值)来计算参考数量(对于将任何下一维护活动应用于同一软件程序);维护控制器将参考数量保存到对应的文件中(通过替换其先前版本,在开始时设置为默认值)。然后,该过程返回到方框518,等待进一步的维护请求。
[0058]
自然地,为了满足局部和特定的要求,本领域技术人员可以将许多逻辑和/或物理修改和变更应用于本公开。更具体地,尽管已参照本公开的一个或多个实施例以一定程度的具体性描述了本公开,但应当理解,形式和细节以及其他实施例中的各种省略、替换和改变都是可能的。具体地,本公开的不同实施例甚至可以在没有前述描述中阐述的特定细节(诸如数值)的情况下被实践,以提供对其更全面的理解;相反,公知的特征可能已被省略或
简化,以免用不必要的细节模糊描述。此外,明确预期的是,结合本公开的任何实施例描述的具体元件和/或方法步骤可以作为一般设计选择的事项结合在任何其他实施例中。另一方面,在组中呈现的每个项目不应被解释为仅基于它们的共同呈现而没有相反指示的相同组的任何其他项目的事实上的等同物(但是它们被单独地标识为分开的且唯一的项目);同样,不同实施例、实例或替代物不应被解释为彼此的事实上的等同物(但它们是本公开的单独且自主的表示)。在任何情况下,每个数值应被理解为由术语约(除非已经完成)所修饰,并且每个数值范围应旨在明确地指定沿该范围内的连续体(包括其端点)的任何可能的数字。此外,序数或其他限定符仅用作标签以区分具有相同名称的元件,但是它们本身不意味着任何优先级、优先权或顺序。术语包括、包含、具有、含有和涉及(及其任何形式)应旨在开放,非详尽的含义(即,不限于所列举的项目),术语基于、取决于、根据、视乎(及其任何形式)应当旨在作为非排他性关系(即,涉及可能的其他变量),术语一/一个应当旨在作为一个或多个项目(除非另有明确指示),并且术语用于某某的装置(或任何装置加功能的表达方式)应旨在作为被适配或配置用于执行相关功能的任何结构。
[0059]
例如,实施例提供一种用于维护计算系统的方法。然而,计算系统可以是任何类型(例如,云或标准类型)。
[0060]
在实施例中,该方法在控制计算机器的控制下执行。然而,控制计算机器可以是任何类型(见下文)。
[0061]
在实施例中,计算系统包括多个计算节点。然而,计算节点可以是任何数量和任何类型的(例如,虚拟或物理类型的服务器、台式机、膝上型计算机、智能电话)。
[0062]
在实施例中,计算节点有助于计算系统的操作。然而,该结果可以以任何方式实现(例如,在集群或网格架构中,具有全部执行相同任务或其不同部分的计算节点)。
[0063]
在实施例中,该方法包括初始化(由控制计算机)有限数量的计算节点。然而,限制数量可以任何方式初始化(例如,初始化为基于方法的先前执行的参考数,初始化为固定的默认值)。
[0064]
在实施例中,该方法包括迭代,该迭代通过重复以下步骤直到维护活动已经被应用于所有计算节点而实现。
[0065]
在实施例中,迭代包括(由控制计算机)引起维护活动的应用。然而,维护活动可以是任何类型的(例如,改变版本/版本、应用服务包或补丁、升级或降级任何软件程序(例如,应用程序、中间件、操作系统、或更一般地计算系统的任何其他软件/硬件资源))并且它可以以任何方式应用(例如,利用基于策略的本地化方法或集中式方法)。
[0066]
在实施例中,在不超过限制数量的计算节点的维护子集上同时应用维护活动。然而,该结果可以以任何方式实现(例如,容忍或不超过限制数量直到已经进行中的维护活动的应用的完成)。
[0067]
在实施例中,迭代包括在维护活动的应用期间(由控制计算机)监测一个或多个状态指示符。然而,该状态指示符可以是任何数量和任何类型的(例如,连续值、离散值、标志),并且它们可以以任何方式(例如,通过查询/读取、连续地或在请求时以推送或拉取模式)被监测。
[0068]
在实施例中,状态指示符指示计算系统的状态。然而,状态指示符可以指示任何状态特性(例如,计算节点、软件程序、系统基础设施或其任何组合的性能、稳定性、功耗、工作
负荷)。
[0069]
在实施例中,迭代包括根据在应用维护活动期间已经监测的状态指示符的监测值(由控制计算机)更新限制数量。然而,限制数量可以以任何方式更新(例如,根据与任何参考表示的任何比较、监测值的任何趋势或其任何组合,以固定方式或根据基于此的任何线性/非线性定律)。
[0070]
在实施例中,所述监测步骤包括(由控制计算机)监测状态指示符,该状态指示符包括指示计算节点的状态的一个或多个节点状态指示符。然而,节点状态指示符可以是任意数量和任意类型的(例如,相对于上面提到的那些节点的部分、不同和附加的节点状态指示符)。
[0071]
在实施例中,所述监测步骤包括(由控制计算机)监测状态指示符,所述状态指示符包括指示在计算节点上运行的一个或多个软件程序的状态的一个或多个程序状态指示符。然而,对于任何数量和类型的软件程序(例如,仅处于维护中或者添加任何其他软件程序的软件程序),程序状态指示符可以是任何数量和任何类型的(例如,相对于上述那些的部分、不同和附加的程序状态指示符)。
[0072]
在实施例中,所述监测步骤包括(由控制计算机)监测状态指示符,该状态指示符包括指示计算系统的一个或多个系统基础设施的状态的一个或多个基础设施状态指示符。然而,对于任何数量和类型的系统基础设施(例如,硬件和/或软件类型的系统基础设施),基础设施状态指示符可以是任意数量和任意类型的(例如,相对于上述基础设施的部分不同的和附加的基础设施状态指示符)。
[0073]
在实施例中,所述监测步骤包括(由控制计算机)监测包括计算系统的临界状况的一个或多个指示的状态指示符。然而,临界条件的指示可以是任何数量和任何类型的(例如,涉及错误、内部/外部投诉、sla的违反或任何其他承诺)。
[0074]
在实施例中,所述更新步骤包括在不应用维护活动的情况下,(由控制计算机器)根据由监测值定义的监测点与计算系统在参考条件下的状态的参考表示的比较来更新限制数量。然而,参考表示可以是任何类型的(例如,点、表面、区域)并且其可以以任何方式提供(例如,动态收集或静态预设);此外,可以以任何方式将被监测点与参考表示进行比较(例如,根据其与参考表示的距离、其随时间的趋势或其组合),并且可以以任何方式使用这个比较来更新限制数量(例如,取决于被监测点的趋势增加/保持不变并且当被监测点落入相应的区域中时减少限制数量,当被监测点落入相应的区域中时独立于其趋势增加、保持不变并且减少限制数量)。
[0075]
在实施例中,该方法包括(由控制计算机器)测量参考状况下的状态指示符。然而,状态指示符可以被测量任何次数并且以任何方式(例如,仅在开始时,稍后以及或者周期性地或者响应于任何自动/手动事件)。
[0076]
在实施例中,该方法包括根据已经在参考条件下测量的状态指示符的测量值(由控制计算机器)来定义参考表示。然而,参考表示可根据测量值以任何方式定义(例如,使用平均、拟合或任何其他统计方法)。
[0077]
在实施例中,所述更新步骤包括根据所监测的点与参考点的比较(由控制计算机器)来更新限制数量。然而,限制数量可根据该比较以任何方式更新(例如,根据监测点单独与参考点的距离或加上监测点随时间的梯度)。
[0078]
在实施例中,参考点由参考表示的相应参考值定义。然而,可以以任何方式定义参考点(例如,从通过对其进行平均的测量值,从分析上的参考表示)。
[0079]
在实施例中,所述更新包括(由控制计算机器)根据所监测的点与参考表示的距离来更新限制数量。然而,该距离可以以任何方式限定(例如,通过仅用于降低沿着每个维度的性能的位移,诸如向下、向上或其组合,通过欧几里德距离),并且该距离可以用于以任何方式更新限制数量(例如,通过以离散或连续的方式增加、减少和/或保持该限制数量不变)。
[0080]
在实施例中,所述更新包括(由控制计算机)根据所监测的点随时间的梯度来更新限制数量。然而,梯度可以以任何方式限定(例如,根据监测点的两个或更多个值中仅用于降低性能的欧几里德距离或位移),并且其可以用于以任何方式更新限制数量(例如,通过以离散或连续的方式增加、减少和/或保持不变)。
[0081]
在实施例中,该方法包括响应于限制数量的减少,(由控制计算机)等待一个或多个计算节点上的维护活动的应用的完成。然而,此操作可以任何方式(例如,或继续或不监测状态指示符以同时更新限制数量)和在任何条件(例如,仅当与参考表示的距离在任何阈值内或总是在任何阈值内时)下执行。
[0082]
在实施例中,该方法包括响应于限制数量的减少,(由控制计算机)回滚在一个或多个计算节点上的维护活动的应用。然而,此操作可以任何方式(例如,或者根据完成维护活动的应用所需的时间或者不加区别地)和在任何条件(例如,仅当与参考表示的距离超过任何阈值和/或当检测到任何临界条件时,或总是)下执行。
[0083]
在实施例中,该方法包括(由控制计算机)在应用维护活动期间基于限制数量的一个或多个值保存参考数量。然而,参考数量可以任何方式基于限制数量的任何数量的值(例如,设定为其在维护活动的整个应用或其任何部分上的平均值、其最低值、其最后值)。
[0084]
在实施例中,该方法包括根据参考数量(由控制计算机)初始化针对下一维护活动的限制数量。然而,限制数量可以任何方式根据参考数量初始化(例如,等于参考数量或参考数量的分数,例如根据其年龄)。
[0085]
在实施例中,计算系统是云类型的。然而,云可以是任何类型的(例如,paas、saas和/或naas、公共、私有、共同体或混合)。
[0086]
通常,如果用等效的方法实现相同的解决方案(通过使用具有更多步骤或其部分的相同功能的类似步骤、移除一些非必要步骤或添加另外的可选步骤),则类似的考虑也适用;此外,这些步骤可以按不同的顺序、同时地或以交错的方式(至少部分地)执行。
[0087]
实施例提供一种计算机程序,该计算机程序被配置用于当在控制计算机器上执行计算机程序时使控制计算机器执行上述方法。实施例提供一种计算机程序产品,其包括计算机可读存储介质,所述计算机可读存储介质具有包含在其中的程序指令;这些程序指令可由控制计算机器执行以致使该控制计算机器执行相同的方法。然而,计算机程序可以被实现为独立模块、预先存在的软件程序(例如,资源管理应用程序的维护管理器)的插件、或者甚至直接在后者中实现。此外,计算机程序可以在任何控制计算机器上执行(见下文)。
[0088]
实施例提供了一种系统,该系统包括被配置成用于执行上述方法的每个步骤的装置。实施例提供了一种包括用于执行相同方法的每个步骤的电路(即,例如由软件适当配置的任何硬件)的系统。然而,该系统可以是任何类型的(例如,单独的控制计算机、经由任何
局域、广域、全球、蜂窝或卫星网络在其之间通信并且利用任何类型的有线和/或无线连接的具有计算节点的控制计算系统);而且,控制计算机器可由任何物理机、虚拟机或其静态或动态组合来实现。在任何情况下,根据本公开的实施例的解决方案适于甚至利用硬件结构(例如,通过集成在半导体材料的一个或多个芯片中的电子电路)或利用适当编程或以其他方式配置的软件和硬件的组合来实现。
[0089]
通常,如果系统具有不同的结构或包括等效部件或其具有其他操作特性,则类似的考虑适用。在任何情况下,其每个部件可以分离成更多的元件,或者两个或更多个部件可以一起组合成单个元件;此外,可以复制每个组件以支持并行执行对应的操作。此外,除非另有说明,不同部件之间的任何相互作用通常不需要是连续的,并且它可以是直接的或通过一个或多个中间媒介间接的。
[0090]
本发明可以是任何可能的集成技术细节水平的系统、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或媒介),所述计算机可读程序指令用于使处理器执行本发明的各方面。计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式致密盘只读存储器(cd-rom),数字通用盘(dvd)、记忆棒、软盘、机械编码设备(诸如穿孔卡片或具有记录在其上的指令的凹槽中的凸起结构),以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,集成电路的配置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的smalltalk、c++等编程语言,以及过程式编程语言,例如“c”编程语言或类似的编程语言。计算机可读程序指令可完全在用户”的计算机上执行、部分在用户”的计算机上执行、作为独立软件包执行、部分在用户”的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的各方面。本文中参考根据本发明的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理
解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。这些计算机可读程序指令可以被提供给通用计算机的处理器、专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质、可编程数据处理装置、和/或以特定方式起作用的其他设备中,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。附图中的流程图和框图图示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定的功能或动作或执行专用硬件与计算机指令的组合。
[0091]
上述特征可以以任何方式组合。例如,上述特征的可能组合可以是如下:权利要求2与权利要求1的组合,权利要求3与权利要求1或2的组合,权利要求4与权利要求1至3中任一项的组合,权利要求5与1至4中任一项的组合,权利要求6与1至5中任一项的组合,权利要求7与权利要求6的组合,权利要求8与权利要求6或7的组合,权利要求9与6至8中任一项的组合,权利要求10与6至9中任一项的组合,权利要求11与1至10中任一项的组合,权利要求12和权利要求1至11中任一项的组合,权利要求13和权利要求1至12中任一项的组合,权利要求14与用于执行权利要求1至13中任一项的方法的指令的组合,以及权利要求15与用于执行权利要求1至13中任一项的每个步骤的装置(或电路)的组合。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1