CN102597955A - 数据存储系统的智能滚动升级 - Google Patents

数据存储系统的智能滚动升级 Download PDF

Info

Publication number
CN102597955A
CN102597955A CN2010800490138A CN201080049013A CN102597955A CN 102597955 A CN102597955 A CN 102597955A CN 2010800490138 A CN2010800490138 A CN 2010800490138A CN 201080049013 A CN201080049013 A CN 201080049013A CN 102597955 A CN102597955 A CN 102597955A
Authority
CN
China
Prior art keywords
node
upgrading
escalation process
escalation
storage environment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800490138A
Other languages
English (en)
Other versions
CN102597955B (zh
Inventor
J.W.戴恩
N.坎德尔瓦尔
B.L.安德鲁斯
A.J.西亚拉维拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN102597955A publication Critical patent/CN102597955A/zh
Application granted granted Critical
Publication of CN102597955B publication Critical patent/CN102597955B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

提供了用于促进计算存储环境中的升级的各种方法、系统和计算机程序产品实施例。在一个这种实施例中,选择为升级窗口注册至少一个可选的升级参数的多个可用滚动升级策略之一。对计算存储环境中的至少一个节点设置节点停运容限因子。节点停运容限因子指定所述至少一个节点中离线单元的百分比,以在升级窗口期间应用所述多个可用滚动升级策略中的所选择的一个。

Description

数据存储系统的智能滚动升级
技术领域
本发明一般涉及计算机,并且更具体地涉及用于在计算存储环境中实施升级机制的设备、方法和计算机程序产品实施例。
背景技术
在当今社会中,计算机和计算机系统存在于各种环境中。计算环境和网络可以存在于家中、工作中、学校中、政府中以及其它环境中。计算环境越来越多地在与呈现给用户的本地界面分离的一个或多个存储环境中存储数据。在许多情况下,跨越广域网(WAN)布置存储环境,在WAN中,从/向远离主机的存储系统接收/发送数据。
在某些情况中,数据存储是在本地提供的,并且也提供到远程存储环境,以通过提供冗余来增强数据安全。在这些情况中,可以在多个位置中存储多个数据实例,以提供故障安全恢复。诸如网络附加存储(NAS)和存储区域网络(SAN)的存储环境允许这些实施方式,并允许更大量存储的实施和维护。SAN、NAS和类似系统越来越多地用于提供各种服务,诸如电子邮件、数据库、应用和其他服务。
发明内容
以诸如NAS、SAN和其它拓扑结构的形式实施的数据存储系统周期性地需要升级,以便维持安全性、兼容性、冗余性和其他特性。用于这种系统的升级机制的创新有利于降低成本、改善带宽和资源消耗、提高安全性等。结果,一般地,为提供提高的系统性能以及之前所述的其他特性,对这种升级机制的创新存在持续的需求。
考虑到上述问题,提供了用于促进计算存储环境中的升级的各种方法、系统和计算机程序产品实施例。在一个这种实施例中,仅为示例,选择了为升级窗口注册至少一个可选的升级参数的多个可用滚动升级策略之一。对计算存储环境中的至少一个节点设置节点容限因子。节点停运容限因子指定所述至少一个节点离线的单元的百分比,以在升级窗口期间应用所述多个可用滚动升级策略中的所选择的一个。
除了前述示例性实施例,还提供了各种其他方法、系统和计算机程序产品实施例,并且它们提供相关的优势。
附图说明
为了更容易理解本发明的优点,将通过参照在附图中示出的具体实施例呈现以上简要描述的本发明的更具体的描述。要理解,这些附图描绘本发明的实施例,并因此不被认为是对本发明的范围的限制,将通过使用附图,利用附加特性和细节描述和说明本发明,附图中:
图1是示出示例性计算存储环境的一部分的框图;
图2是示出图1中描绘的示例性计算存储环境的管理节点的示例性部分的框图;
图3是示出用于执行如确保已经在计算存储环境中的所有节点上发生升级的功能性的示例性包装函数(wrapper function)的流程图;
图4是示出图3中描绘的包装函数所调用的示例性升级机制的流程图;以及
图5是示出示例性错误恢复机制的流程图。
具体实施方式
下面所示的实施例提供用于促进计算存储环境(诸如向外扩展的网络附加存储拓扑结构)中的升级的机制。在一个示例性实施例中,这些机制涉及在计算机存储环境的所谓“机群(cluster)”上提供智能的、自动的且可靠的升级(诸如代码升级)。一个这种存储环境可以包括多个变化的“节点”。例如,一个环境可以具有高达32个用于客户端与存储环境之间的通信的接口节点、用于执行存储活动(诸如读和写活动)的存储节点、以及用于管理存储环境的各个部分的管理节点。环境中的每个节点可以包括执行特定操作系统(OS)(诸如
Figure BDA0000158576920000021
)和应用软件的服务器,以提供各种数据存储服务。下面,在图1中进一步示出了这样的环境。
图1示出了可以实施本发明和所要求保护的主题的各方面的示例性计算存储环境10的一部分。所描绘的环境10构造为两层(two-tier)系统,第一层包括接口节点18,其呈现网络文件系统(NFS)、超文本传输协议(HTTP)、通用因特网文件系统(CIFS)、以及对用户/客户IP网络16的类似镜像。第二层包括存储节点36和42,其附接到存储组建块34中的高密度存储阵列。为了高可用性,两个存储节点36和42成对地连接到包括存储组建块34的存储阵列。利用用于管理的管理网络24(诸如千兆比特以太网)并且也通过用于数据路径的额外的网络26,将第一层接口节点18连接到第二层存储节点36和42。
诸如块34的存储组建块可以适配为呈现通用并行文件系统(GPFS)网络共享装置(NSD),并且接口节点18访问这些NSD。此外,为了提供面向用户的数据协议(诸如NFS),每个接口节点18是GPFS机群的部分,并且也运行CTDB(机群TDB数据库)协议。可选地,额外的网络24或数据网络26的扩展可以将包括一个或多个TSM节点的
Figure BDA0000158576920000031
存储管理器(TSM)机群连接到存储组建块34。如所示的块34包括两个RAID控制器38和44,诸如高密度RAID控制器,每个RAID控制器连接到高密度盘机箱或类似的存储机箱40和46。机箱40和46以及控制器38和44继而分别连接到存储节点36和42。管理机群包括一个或多个管理节点20,每个管理节点20包括下面进一步描述其功能性的管理模块22。最后,如所示出的,各种用户客户端12和14(诸如可以在
Figure BDA0000158576920000032
Figure BDA0000158576920000033
平台上工作的客户端设备和机器)分别经由网络16连接到网络24和/或接口节点18。
现在转向图2,示出了如之前也在图1中示出的管理节点20的示例性部分50。管理节点20的部分50可以在计算机环境中作为其可以实施以下所示的实施例的机制的一部分而操作。然而,应该认识到,图2仅是示例性的,并不意在陈述或隐含关于可以实施各种实施例的示例性方面的特定架构的任何限制。可以对图2中描绘的架构进行许多修改,而不偏离以下说明和所要求保护的主题的范围和精神。
在所示的实施例中,管理节点20包括处理器52和存储器54,诸如随机存取存储器(RAM)。管理节点20可以可操作地耦合到若干组件(为了方便而没有示出),包括在图形用户界面上呈现诸如窗口的图像给用户的显示器、键盘、鼠标、打印机等。当然,本领域的技术人员将认识到,以上组件的任何组合、或任何数目的不同组件、外围设备和其他设备可以与管理节点20一起使用。
在所示的实施例中,管理节点20在存储器54中存储的操作系统(OS)56(例如z/OS、OS/2、LINUX、UNIX、WINDOWS、MAC OS)的控制下工作,并且与用户接口连接以接受输入和命令并呈现结果。在本发明的一个实施例中,OS 56促进根据本发明的升级机制。为此,OS 56包括如前所述的管理模块22,其可以适配于执行下面描述的示例性方法中的各种处理和机制。
管理节点20可以实施编译器60,其允许以编程语言(诸如COBOL、PL/1、C、C++、JAVA、ADA、BASIC、VISUAL BASIC或任何其他编程语言)编写的应用程序58转换为处理器52可读的代码。完成之后,计算机程序58使用通过编译器60生成的关系和逻辑,访问和操纵管理节点20的存储器54中存储的数据。
为了进一步实施和执行根据本发明的机制和处理,OS 56可以与管理模块22、存储器54、处理器52、程序58和其他计算机处理、网络和存储组件相结合,实施下面将进一步描述的升级机制。如本发明的普通技术人员将理解的,如当前所示出的管理模块22所实施的机制可以以各种形式和架构实施。因此,同样,本附图中的管理模块22的图示意在演示管理节点20中的可能的计算组件之间的逻辑关系,而不隐含特定的物理结构或关系。
在一个实施例中,实施操作系统56、计算机程序58和编译器60的指令以及管理模块22有形地体现在计算机可读介质中,该计算机可读介质可以包括一个或多个固定的或可移除的数据存储设备,诸如zip驱动器、盘、硬盘驱动器、DVD/CD-ROM、数字带、固态驱动器(SSD)等。此外,操作系统56和计算机程序58包括当由计算存储环境读取并执行时执行实施和/或使用本发明的必要步骤的指令。计算机程序58和/或操作系统56的指令还可以有形地体现在存储器54中和/或经由各种组件由网络16、24、26和32(图1)传输或访问。如此,这里可使用的术语“制品”、“程序存储设备”和“计算机程序产品”意在包括可以从任何计算机可读设备或介质访问和/或操作的计算机程序。
本发明的实施例可以包括一个或多个关联的软件应用程序58,其例如包括用于管理分布式计算机系统的功能,所述分布式计算机系统包括计算设备的网络(诸如之前所述的SAN或NAS)。因此,处理器52可以包括一个或多个存储管理处理器(SMP)。程序58可以在单个计算机和/或管理节点20内操作,或者作为包括计算设备的网络的分布式计算机系统的一部分操作。该网络可以包括经由局域网和/或因特网连接(其可以是公共的或安全的,例如通过虚拟专有网络(VPN)连接)、或者经由光纤信道SAN或如本领域的技术人员将理解的其他已知的网络类型连接的一个或多个计算机。(注意,光纤信道SAN通常仅用于计算机与存储系统的通信,而不是彼此之间的通信。)
再次参考图1,在诸如环境10的计算存储环境中,可能期望满足几个条件。例如,一个存储节点36或42应该在所有时间都可用。此外,GPFS法定数(quorum)应该不被破坏,并且给定的CTDB应该具有额外的接口节点18,以对CTDB导出的IP地址进行故障切换(failover)。鉴于之前的示例条件,环境10可能需要升级,诸如添加新的计算机可读程序代码。以上的条件可能对在这样的升级期间的维持施加限制。
本发明和所要求保护的主题提供用于在这样的条件下并且鉴于这样的示例限制而执行升级的示例性机制,以便避免企业不可取的方案(诸如使环境离线)。这些机制提供高效、智能、灵活和自动的方案。替代方案是不希望的,因为它们可能需要手动尝试执行升级(诸如在多个节点上手动加载)。此外,这样的方案不妨止潜在地跨越特定机群中的所有节点传播坏代码。
在一个实施例中,本发明的机制提供灵活且可靠的自动“滚动代码升级”处理,其为用户提供以下独特特征和益处。首先,该处理提供内置健康检查智能,以确保不将关键资源作为自动代码升级的一部分移除而使得机群变得不可操作。其次,该处理检测潜在的坏代码传播,并妨止坏代码传播到存储机群中的所有节点。第三,该处理在整个自动滚动代码升级处理中智能且动态地获得置信度。当更多的节点被成功地加载了最新的代码时,该方法将运行更多的并行代码升级实例。
接下来,在第四益处中,该处理动态地再学习完成代码升级的时间,并将此时间应用到将来的代码升级时间以完成估计,如将要进一步说明的。第五,该处理提供用于在具有多个节点的大系统上执行滚动代码升级的自动方法,并提供满足变化的用户需要的灵活性。第六,该处理允许用户注册滚动升级策略,该滚动升级策略定义何时将发生滚动代码升级以及升级窗口将有多长。第七,该处理允许用户控制在任何给定时间可能停运(down)的接口和存储节点的百分比。第八,该处理允许用户阻止单独节点进行滚动代码升级。第九,该处理针对意外代码升级失败提供检查点错误恢复。
可以从集中管理节点(例如,图1、2中的管理节点20和管理模块22)管理诸如代码升级的升级。在一个示例性实施例中,管理节点包含代码镜像,其要作为升级的一部分而传播到目标节点。在一个示例性代码升级实施方式中,使用Red
Figure BDA0000158576920000061
YUM(修改的yellowdog(黄狗)更新器)库将代码传播到目标节点,然而,应该注意,不应该排除其它的代码传播方法,例如使用包含预引导执行环境(PXE)的引导的无状态(stateless)机制来将代码传播到系统中的目标节点。
返回YUM实施例,HTTP协议可以用于将代码传递到目标节点,作为YUM升级的一部分,并且安全壳(SSH)协议可以用于从管理节点启动对目标节点的YUM升级。换言之,在此实施例中,从管理节点驱动对所有节点的代码升级。用户能够指定滚动代码升级策略,该滚动代码升级策略注册何时将开始滚动代码升级以及滚动代码升级将运行多久。这对于允许用户在非高峰时间自动执行代码升级是有用的。例如,用户可以设置在每个周六和周日从午夜到早上8点运行的滚动代码升级策略。这些时间限制合并到下面进一步描述的机制中。
此外,用户可以对接口节点和存储节点设置不同的节点停运(宕机,down)容限因子。例如,用户可以将它们的接口节点停运容限设置为33%。这确保每次可以停运至多33%的接口节点。节点可能由于除了代码升级以外的原因而导致停运,并且这些其他的原因被因子化到公式中,并且接口节点停运容限限制合并到下面进一步描述的机制中。类似地,用户可以对每次停运的存储节点设置不同的容限。作为示例,用户可以设置存储节点停运容限因子为50%,其表示在任何给定的时间可以有一半的存储节点停运。该计算考虑了由于除代码升级之外的其它原因而停运的存储节点,并且该限制合并到下面进一步描述的机制中。
除了上述以外,用户还可以选择阻止特定节点进行代码升级。提供这样的灵活性对于确保可以满足用户需求而言是有利的。例如,在非繁忙时间注册代码升级处理的用户可能由于系统上的负载减小而能够容忍一次停运更大量的节点,而其他用户可能需要保持更多的节点运行以确保维持合适的性能。这些限制独立于与代码升级关联的全面系统健康检查,如例如检查CTDB和GPFS状态。
现在转向图3,其描绘了示例性“包装函数”方法70的流程图。如本领域的普通技术人员将理解的,可以以不同的方式实施方法70中的各种步骤,以适合具体的应用。此外,所描述的方法可通过各种手段实施,诸如可以在计算存储环境上操作或者以其他方式与计算存储环境关联地操作的硬件、软件、固件或它们的组合。例如,方法70可以部分地或整体地实施为计算机程序产品,其包括其中存储了计算机可读程序代码部分的计算机可读存储介质。计算机可读存储介质可以包括盘驱动器、闪存、数字通用盘(DVD)、紧凑盘(CD)以及其他类型的存储介质。
在一个实施例中,方法70负责确保在计算存储环境中的所有节点上发生代码升级。如将进一步描述的,方法70依赖于步骤84中的功能性(升级目标节点)来执行健康检查和智能任务,如将进一步描述的。在开始(步骤72)时,方法70首先获得机群中的节点的主机名称和/或IP地址,将此信息放置在需要升级的节点的列表中(步骤74)。在一个实施例中,这利用对GPFS文件系统的查询而实现。可以使用其他方法来获得机群中的节点的列表,其包括引用/etc/hosts文件、对配置数据库或平面配置文件进行查询等。
在填充了需要升级的节点的列表之后,方法70检查是否已经开始对目标节点的升级(步骤76)。如果还没有开始对目标节点的升级,则方法70继续检查在滚动升级窗口中是否有更多的可用时间(步骤90)。如果在升级窗口中有更多的可用时间,则方法70检查是否阻止目标节点升级(步骤92)。如果未阻止目标节点升级,则该节点确定是否需要对目标节点升级(步骤94)。在一个实施例中,这通过从管理节点向目标节点发出执行YUM查询的SSH命令来实现。作为YUM查询的结果,返回需要对目标节点更新的分组。
如果需要对目标节点升级,则方法70调用升级目标节点函数(步骤84),并进行到休眠(步骤102)。在从休眠中唤醒之后,方法70确定在需要升级列表中是否发现额外节点(步骤104)。如果在需要升级列表中发现额外节点,则方法70引用列表中的下一节点(步骤106),并继续检查以确定对目标节点的升级是否已经在进行中(返回步骤76)。
如果已经开始对目标节点的升级(再次,步骤76),则方法70进行到步骤78,其检查对于目标节点的升级是否仍在进行中。在所描述的实施例中,“升级目标节点”的实例(再次,步骤84)在后台开始,并且这对于从此父滚动代码升级进程(process)监视它们的完成是有益的。
如果对于目标节点的升级仍在进行中(再次,步骤78),则方法70进行到休眠(再次,步骤102)。替代地,如果已经结束了对目标节点的升级,则方法70进行检查升级处理的返回。如果升级处理成功(步骤80),则方法70将目标节点从节点需要升级的阵列移动到升级完成列表(步骤82),并进行到步骤102以休眠。替代地,如果返回代码不成功,则方法70检查是否由于非关键的错误导致代码升级失败(步骤86)。如果由于非关键的错误导致升级失败,则方法70将目标节点留在节点需要升级列表中,并进行到休眠步骤(再次,步骤102)。“升级目标节点”函数可能由于许多原因(诸如对目标节点执行升级将破坏GPFS机群并使机群不可操作)而遭遇对于目标节点的非关键失败。这样的示例不是关键错误,并且方法70简单地在以后的时间再次重新尝试升级特定目标节点(步骤88,返回步骤102)。如果升级由于关键错误而失败(再次,步骤86),则方法70将目标节点从需要升级列表移动到失败列表(步骤88),并进行到休眠步骤102。
返回参考对在升级窗口中是否有额外时间可用的判定(再次,步骤90),如果没有更多时间可用,则方法70将目标节点从需要升级列表移动到未升级列表,并减少休眠时间,以允许更块地清理已在进行中的代码升级任务(步骤96),并进行到休眠步骤。返回参考目标节点被阻止升级的检查(再次,步骤92),如果目标节点被阻止进行代码升级,则方法70将目标节点从需要升级列表移动到阻止列表(步骤98),并进行到休眠步骤102。返回参考需要对目标节点升级的检查(步骤94),如果不需要对目标节点升级,则方法70将目标节点从需要升级列表移动到不需要升级列表(步骤100),并进行到休眠步骤102。返回参考对判定在需要升级列表中是否存在更多的节点的检查(步骤102),如果没有额外节点保留在需要升级列表中(再次,步骤104),则方法70通过显示以下列表的内容报告滚动代码升级的结果(步骤108):未升级的节点、被阻止升级的节点、升级的节点、以及升级失败的节点。
现在转向图4,示出了方法120的流程图,方法120描绘了用于代码升级机制的示例性升级目标节点函数,其由图3的步骤84预先调用。升级目标节点函数合并健康检查和其他智能特征,以确保可靠且不显眼(unobtrusive)的滚动代码升级。在开始代码升级函数(步骤122)时,方法120检查是否设置了强制标志(步骤124)。如果设置了强制标志,则方法120绕过所有健康检查并立即开始代码升级。
如果未设置强制标志(再次,步骤124),则方法120根据需要升级的分组的类型估计完成代码升级的时间(步骤126)。在一个实施例中,这通过除了需要升级的分组的类型之外还确定要升级的分组的数目来实现。因为在同一机群中可能存在多个接口和存储节点,所以其他目标节点可能已经升级了相同的分组。结果,方法120可以参考其完成相同分组的升级实际采用的时间,以对于其完成对目标节点的升级将采用的时间提供高度精确的估计。这种内建智能提供代码升级处理的额外的效率。例如,在没有使用与相同代码分组的之前升级关联的信息的智能的情况下,方法120可能过估计(overestimate)执行升级所需要的时间,这导致当更精确的计算将指示升级可能已经包含在已有的升级窗口中时不升级系统中的所有节点。
作为下一步,方法120通过确保所估计的代码升级时间在完成该特定代码升级窗口的代码升级所剩的剩余时间内,确认完成升级的时间是否可接受(步骤128)。如果代码升级时间可接受,则方法120进行坏代码传播检查(步骤132)。在一个实施例中,这通过检查在方法120尝试升级的特定代码级上代码升级已经失败的当前节点数量、并将此值与坏代码传播容限值进行比较来完成。在一个实施例中,此阈值缺省设置为1,但其可以由服务人员按需要动态地改变。
如果未检测到坏代码传播,则方法120继续检查是否已超过并行升级置信度因子(步骤134)。在某些情况中,用户可能已经将它们的接口节点停运容限和存储节点停运容限设置为超过坏代码传播阈值的值。例如,如果用户指示一次可以有两个接口节点停运,则在没有并行升级置信度因子的情况下,两个代码升级将并行地开始。如果这两个节点是接收新代码级的第一节点,并且该新代码级是坏的,则方法120将致使系统中的两个节点不可操作并违反坏代码传播阈值。为了提供对这种情况的合适保护且仍然提供最高的效率,执行针对并行升级置信度因子的检查。在一个实施例中,缺省地,将置信度因子设置为1。在所述示例中,检查置信度因子导致仅由于坏代码传播而使一个节点(而不是两个节点)停运。当更多节点成功地完成了指定代码级的代码升级时,置信度因子提高,这允许对更多的节点并行地执行升级。
如果尚未超过并行升级置信度因子,则方法120进行到节点停运阈值检查(步骤136)。如果包括想要升级的节点的停运的接口或存储节点的数目不违反当前节点停运阈值,则方法120继续检查机群健康(步骤138)。当检查系统健康时,可以检查GPFS机群法定数,以确保使指定的目标节点停运不破坏GPFS法定数。此外,如果目标节点是接口节点,则方法120确保至少一个其他接口节点可用于对将进行代码升级的目标接口节点所导出的所有IP地址进行故障切换。
如果系统健康检查成功,则方法120检查目标节点是否是存储节点(步骤140)。如果目标节点是存储节点,则方法120检查存储节点对等(peer)GPFS状态(步骤142)。如果存储节点GPFS对等状态是良好(ok)或正常,则方法120继续升级目标节点(步骤146)。替代地,如果目标节点不是存储节点,则目标节点的升级在所有检查都已经成功通过时开始。
在升级了目标节点之后,方法120检查对目标节点的升级是否成功(步骤148)。如果对目标节点的升级成功,则置信度因子增加(步骤152)。在所描绘的实施例中,将当前置信度因子乘以2。此外,与升级特定分组关联的时间也根据升级所关联的分组的开始时间和结束时间而更新。
在更新了分组安装时间估计(步骤154)之后,方法120结束(步骤156)并向调用应用返回成功。另一方面,如果升级未成功完成,则方法120递增坏代码传播计数,设置关键返回代码,并通过向调用应用返回关键错误而结束(步骤150)。
返回参考代码升级时间检查(再次,步骤128),如果所估计的用于完成对目标节点的代码升级的时间将超过升级窗口中所剩的时间,则方法120将目标节点从需要升级列表移动到未升级列表(步骤130),并设置非关键返回代码(步骤144),并结束(再次,步骤156)。返回参考坏代码传播检查(再次,步骤132),如果该检查确定坏代码可能潜在地遍布系统传播,则方法120设置非关键返回代码并结束(再次,步骤144、156)。返回参考并行升级置信度因子检查(再次,步骤134),如果已在进行升级的节点数超过并行升级置信度因子,则方法120设置非关键返回代码并结束(再次,步骤144、156)。返回参考节点停运阈值检查(再次,步骤136),如果升级目标节点将违反对于存储节点或者接口节点的节点停运阈值检查,则方法120设置非关键返回代码并结束(再次,步骤144、156)。返回参考系统健康检查(再次,步骤138),如果升级目标节点将使机群不健康并且从用户夺取资源,则方法120设置非关键返回代码并结束(再次,步骤144、156)。最后,返回参考存储节点对等健康检查(再次,步骤140、142),如果目标存储节点对等不健康,则方法120设置非关键返回代码并结束(再次,步骤144、156)。
遍及升级处理,可以存储持续检查点时间戳(timestamp),使得如果升级已经失败,则可以调用从意外错误中恢复的过程。还可以收集时间戳来更新完成对特定分组升级的时间。例如,可以在启动YUM代码升级之前和之后获得时间戳。此外,可以为每个分组安装的开始和停止时间捕获时间戳。这些值用于更新升级分组安装时间估计。在完成升级之后,可能由于核(kernel)的更新等而必须重启目标节点。在这样的情况中,可以在重启目标节点之前获取时间戳,并且可以在节点从重启返回之后获取另一时间戳。这些时间戳可以用于确定升级处理失败的地方并从失败的检查点起拾取(pickup)。
当有新代码可用于特定存储机群时,可以将其复制到管理节点。作为此处理的一部分,坏代码传播阈值可以设置为1,存储节点置信度因子可以设置为1,代码升级时间估计可以设置回缺省值,并且与检查点错误恢复关联的所有时间戳可以重设。
在代码升级期间,在意外失败的事件中,代码升级错误恢复例程可以提供检查点重启恢复。例如,在对多个节点进行代码升级的中途,管理节点可能掉电或重启。在一个实施例中,可以使用四个时间戳来指示特定检查点处的失败。就升级处理的排序而言,时间戳可以包括:
1.升级开始时间戳-指示已经对目标节点开始了升级处理
2.升级完成时间戳-指示已经对目标节点完成了升级处理
3.重启开始时间戳-指示目标节点正在重启
4.升级结束时间戳-指示已经成功地完成整个升级处理
这些时间戳还可以与对正更新的分组的名称和类型的追踪相结合,用于帮助实时自动地确定用于升级节点的实际时间。例如,如果用户具有三个用于对目标节点升级的分组,则在第一次完成升级之后,用户可以使用与上述时间戳耦合的分组的知识来获知其将花费多长时间来对另一节点进行相同或类似的升级。
接下来,图5是示出如以上引入的示例性错误恢复例程的方法160的流程图。在开始错误恢复例程(步骤162)时,方法160首先检查之前对目标节点的升级是否遇到硬(hard)失败(步骤164)。如果失败的节点未遇到硬错误,则方法160继续检查升级开始时间戳是否大于升级结束时间戳(步骤166)。如果升级开始时间戳大于升级结束时间戳,则在代码升级方法160能够更新升级结束时间戳之前已经遇到意外错误。结果,方法160继续检查是否仍然需要对目标节点升级(步骤180)。如果仍然需要对目标节点升级,则方法160按照需要继续对目标节点升级(步骤182)。在目标节点的升级完成之后,方法160继续检查升级处理的状态。
如果成功完成升级处理(步骤184),则方法160更新升级结束时间戳(步骤186),更新重启开始时间戳(步骤188),并继续重启目标节点(步骤190)。如果方法160等待重启的节点对ping请求的响应未超时(步骤192),则方法160检查目标节点的健康状态。如果目标节点的健康状态良好(步骤194),则方法160标记目标节点在线(步骤198),更新升级完成时间戳(步骤200)并结束(步骤174)。
返回参考升级开始时间戳大于升级结束时间戳(再次,步骤166),如果升级开始时间戳不大于升级结束时间戳,则方法160继续检查升级结束时间戳是否大于重启开始时间戳(步骤168)。如果升级结束时间戳大于重启开始时间戳,则之前的升级在其能够更新升级结束时间戳之前遇到意外错误。结果,方法160更新重启开始时间戳(再次,步骤188),并继续重启目标节点(再次,步骤190)。如果方法160等待重启的节点对ping请求的响应未超时(再次,步骤192),则方法160检查目标节点的健康状态。如果目标节点的健康状态良好(再次,步骤194),则方法160标记目标节点在线(再次,步骤198),更新升级完成时间戳(再次,步骤200)并结束(再次,步骤174)。
返回参考对判定升级结束时间戳是否大于重启开始时间戳的检查(再次,步骤168),如果升级结束时间戳不大于重启开始时间戳,则方法160继续检查目标节点的健康。如果目标节点的健康状态良好(步骤170),则方法160将目标节点设置为在线状态(步骤176),并继续检查升级完成时间戳是否大于重启开始时间戳(步骤178)。如果升级完成时间戳大于重启开始时间戳(再次,步骤178),则方法160结束(再次,步骤174)。
返回参考升级完成时间戳大于重启开始时间戳(再次,步骤178),如果升级完成时间戳不大于重启完成时间戳,则方法160更新升级完成时间戳(再次,步骤200)并结束。
返回参考对判定目标节点是否需要额外升级的检查(再次,步骤180),如果不需要额外升级,则方法160继续更新升级结束时间戳(再次,步骤186),并继续进行如所示的步骤188-200。返回参考对判定目标节点是否遇到硬失败的检查(步骤196),如果遇到了硬失败,则方法160结束(再次,步骤174)。返回参考对判定是否成功完成了升级处理的检查(再次,步骤184),如果升级处理未成功完成,则方法160将目标节点标记为遇到硬失败(再次,步骤174)并结束。返回参考目标节点的健康检查(再次,步骤170),如果目标节点的健康不好(ok),则方法160将目标节点标记为遇到硬失败(步骤172)并结束(再次,步骤174)。
如本领域的技术人员将理解的,本发明的各方面可以体现为系统、方法或计算机程序产品。因此,本发明的各方面可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者包含软件和硬件方面的实施例的形式,这里它们可以全部一般地称为“电路”、“模块”或“系统”。此外,本发明的各方面可以采用在一个或多个计算机可读介质中体现的计算机程序产品的形式,所述计算机可读介质上体现计算机可读程序代码。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是但不限于电子、磁、光、电磁、红外或半导体系统、装置或设备、或前述的任何合适的组合。计算机可读存储介质的更具体的示例(非穷举列表)将包括以下:具有一个或多个布线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑只读存储器(CD-ROM)、光存储设备、磁存储设备、或者前述的任何合适的组合。在此文档的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储用于由指令执行系统、装置或设备使用或与其结合使用的程序。
可以使用任何合适的介质传送计算机可读介质上体现的程序,所述合适的介质包括但不限于无线、有线、光纤缆线、RF等,或者前述的任何合适的组合。可以用一个或多个编程语言的任何组合编写用于执行本发明的各方面的操作的计算机程序代码,所述编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C++等)以及传统的过程编程语言(诸如“C”编程语言或类似编程语言)。程序代码可以全部在用户的计算机上执行,部分在用户的计算机上执行,作为单机软件包执行,部分在用户的计算机上部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,使用因特网服务提供商,通过因特网)。
下面参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图说明本发明的各方面。将理解,可以通过计算机程序指令实施流程图和/或框图的每个块以及流程图和/或框图中的各块的组合。这些计算机程序指令可以提供给通用计算机、专用计算机、或者其他可编程数据处理设备的处理器以产生机器,从而经由计算机或其他可编程数据处理设备的处理器执行的指令创建用于实施流程图和/或框图中指定的功能/动作的部件。
这些计算机程序指令也可以存储在计算机可读介质中,其可以指引计算机、其他可编程数据处理设备或其他装置以特定的方式工作,从而存储在计算机可读介质中的指令产生制品,其包括实施流程图和/或框图中指定的功能/动作的指令。计算机程序指令也可以加载到计算机、其他可编程数据处理设备或其他装置中,以使得在计算机、其他可编程数据处理设备或其他装置上执行一系列操作步骤,以便产生计算机实施的处理,从而在计算机或其他可编程设备上执行的指令提供用于实施流程图和/或框图中指定的功能/动作的处理。
以上附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能性和操作。关于此点,流程图或框图中的每个块可以表示代码的模块、段或部分,其包括用于实施指定的逻辑功能的一个或多个可执行指令。还应该注意,在某些替代实施方式中,在块中标注的功能可以不按照图中所标注的顺序发生。例如,取决于所涉及的功能性,连续示出的两个块可以实际上基本并发执行,或者各块有时可以以相反的顺序执行。还将注意,框图和/或流程图的每个块以及框图和/或流程图中的各块的组合可以通过执行指定功能或动作的基于专用硬件的系统实施,或者通过专用硬件和计算机指令的结合来实施。
虽然已经详细说明了本发明的一个或多个实施例,但本领域的普通技术人员将理解,在不偏离如所附权利要求限定的本发明的范围的情况下可以对这些实施例进行各种修改和适应。

Claims (27)

1.一种通过处理器与存储器设备通信来促进计算存储环境中的升级的方法,包括:
选择可用的多个滚动升级策略之一,所述滚动升级策略为升级窗口注册至少一个可选的升级参数;以及
为所述计算存储环境中的至少一个节点设置节点停运容限因子,其中所述节点停运容限因子指定所述至少一个节点离线的单元的百分比,以在所述升级窗口期间应用所述可用的多个滚动升级策略中所选择的一个。
2.如权利要求1所述的方法,还包括定义所述多个滚动升级策略的每一个。
3.如权利要求2所述的方法,其中所述定义包括指定所述至少一个可选的升级参数,包括指定升级过程的开始时间和持续时间之一。
4.一种促进计算存储环境中的升级的系统,包括:
管理模块,其能够在所述计算存储环境中的管理节点上操作,其中所述管理模块适配来:
选择可用的多个滚动升级策略之一,所述滚动升级策略为升级窗口注册至少一个可选的升级参数;以及
为所述计算存储环境中的至少一个节点设置节点停运容限因子,其中所述节点停运容限因子指定所述至少一个节点离线的单元的百分比,以在所述升级窗口期间应用所述可用的多个滚动升级策略中所选择的一个。
5.如权利要求4所述的系统,其中所述管理模块还适配来定义所述多个滚动升级策略的每一个。
6.如权利要求5所述的系统,其中所述管理模块还适配来:关于所述定义,指定所述至少一个可选的升级参数,包括指定升级过程的开始时间和持续时间之一。
7.一种通过处理器与存储器设备通信来促进计算存储环境中的升级的计算机程序产品,所述计算机程序产品包括存储了计算机可读程序代码部分的计算机可读存储介质,所述计算机可读程序代码部分包括:
第一可执行部分,用于选择可用的多个滚动升级策略之一,所述滚动升级策略为升级窗口注册至少一个可选的升级参数;以及
第二可执行部分,用于为所述计算存储环境中的至少一个节点设置节点停运容限因子,其中所述节点停运容限因子指定所述至少一个节点离线的单元的百分比,以在所述升级窗口期间应用所述可用的多个滚动升级策略中所选择的一个。
8.如权利要求7所述的计算机程序产品,还包括第三可执行部分,用于定义所述多个滚动升级策略的每一个。
9.如权利要求8所述的计算机程序产品,还包括第四可执行部分,用于关于所述定义,指定所述至少一个可选的升级参数,包括指定升级过程的开始时间和持续时间之一。
10.一种通过处理器与存储器设备通信来促进计算存储环境中的升级的方法,包括:
定义并行升级置信度因子,其对应于所述计算存储环境中允许并发接收升级过程的节点单元的比例;以及
对至少一个所述节点单元执行所述升级过程,其中关于所述至少一个节点单元的升级过程的成功完成,提高所述并行升级置信度因子,以允许所述计算存储环境中的额外的节点单元并发接收所述升级过程。
11.如权利要求10所述的方法,还包括:关于对所述至少一个节点单元中的另一个执行所述升级过程,判定是否已超过所述并行升级置信度因子。
12.如权利要求11所述的方法,其中,如果判定已超过所述并行升级置信度因子,则将对所述节点单元的升级过程的并发执行限制为与所述并行升级置信度因子一致。
13.一种用于促进计算存储环境中的升级的系统,包括:
管理模块,其能够在所述计算存储环境中的管理节点上操作,其中所述管理模块适配来:
定义并行升级置信度因子,其对应于所述计算存储环境中允许并发接收升级过程的节点单元的比例;以及
对至少一个所述节点单元执行所述升级过程,其中关于所述至少一个节点单元的升级过程的成功完成,提高所述并行升级置信度因子,以允许所述计算存储环境中的额外的节点单元并发接收所述升级过程。
14.如权利要求13所述的系统,其中所述管理模块还适配来关于对所述至少一个节点单元中的另一个执行所述升级过程,判定是否已超过所述并行升级置信度因子。
15.如权利要求14所述的系统,其中所述管理模块还适配来:如果判定已超过所述并行升级置信度因子,则将对所述节点单元的升级过程的并发执行限制为与所述并行升级置信度因子一致。
16.一种通过处理器与存储器设备通信来促进计算存储环境中的升级的计算机程序产品,所述计算机程序产品包括存储了计算机可读程序代码部分的计算机可读存储介质,所述计算机可读程序代码部分包括:
第一可执行部分,用于定义并行升级置信度因子,其对应于所述计算存储环境中允许并发接收升级过程的节点单元的比例;以及
第二可执行部分,用于对至少一个所述节点单元执行所述升级过程,其中关于所述至少一个节点单元的升级过程的成功完成,提高所述并行升级置信度因子,以允许所述计算存储环境中的额外节点单元并发接收所述升级过程。
17.如权利要求16所述的计算机程序产品,还包括第三可执行部分,用于关于对所述至少一个节点单元中的另一个执行所述升级过程,判定是否已超过所述并行升级置信度因子。
18.如权利要求17所述的计算机程序产品,还包括第四可执行部分,用于如果判定已超过所述并行升级置信度因子,则将对所述节点单元的所述升级过程的并发执行限制为与所述并行升级置信度因子一致。
19.一种通过处理器与存储器设备通信来促进计算存储环境中的升级的方法,包括:
检查所述计算存储环境中升级过程已经失败的节点单元的当前数量作为错误传播计数,将所述错误传播计数与预定错误传播容限值进行比较;以及
报告是否已超过所述预定错误传播容限值,以提供所述升级过程的健康状态,其中如果对额外节点单元的升级过程的后续执行不成功,则递增所述错误传播计数并报告关键错误,以便避免升级错误的传播。
20.如权利要求19所述的方法,还包括:关于所述升级过程的后续执行,设置至少一个持续检查点时间戳,以提供错误恢复。
21.如权利要求19所述的方法,在检查节点单元的当前数量之前,还包括:
估计作为从所述升级过程的之前执行获得的时间信息的函数的、对额外节点单元执行所述升级过程所需要的时间,以便对所需的时间的估计提供更高的精度,以及
将所需要的时间的估计值与预定的升级窗口进行比较,其中如果所述估计值在所述预定的升级窗口内,则执行对所述额外节点单元的后续升级过程。
22.一种用于促进计算存储环境中的升级的系统,包括:
管理模块,其能够在所述计算存储环境中的管理节点上操作,其中所述管理模块适配来:
检查所述计算存储环境中升级过程已经失败的节点单元的当前数量作为错误传播计数,将所述错误传播计数与预定错误传播容限值进行比较;以及
报告是否已超过所述预定错误传播容限值,以提供所述升级过程的健康状态,其中如果对额外节点单元的升级过程的后续执行不成功,则递增所述错误传播计数并报告关键错误,以便避免升级错误的传播。
23.如权利要求22所述的系统,其中所述管理模块还适配来:关于所述升级过程的后续执行,设置至少一个持续检查点时间戳,以提供错误恢复。
24.如权利要求22所述的系统,其中所述管理模块还适配来:
估计作为从所述升级过程的之前执行获得的时间信息的函数的、对额外节点单元执行所述升级过程所需要的时间,以便对所需的时间的估计提供更高的精度,以及
将所需要的时间的估计值与预定的升级窗口进行比较,其中如果所述估计值在所述预定的升级窗口内,则执行对所述额外节点单元的后续升级过程。
25.一种用于通过处理器与存储器设备通信来促进计算存储环境中的升级的计算机程序产品,所述计算机程序产品包括存储了计算机可读程序代码部分的计算机可读存储介质,所述计算机可读程序代码部分包括:
第一可执行部分,用于检查所述计算存储环境中升级过程已经失败的节点单元的当前数量作为错误传播计数,将所述错误传播计数与预定错误传播容限值进行比较;以及
第二可执行部分,用于报告是否已超过所述预定错误传播容限值,以提供所述升级过程的健康状态,其中如果对额外节点单元的升级过程的后续执行不成功,则递增所述错误传播计数并报告关键错误,以便避免升级错误的传播。
26.如权利要求25所述的计算机程序产品,还包括:第三可执行部分,用于关于所述升级过程的后续执行,设置至少一个持续检查点时间戳,以提供错误恢复。
27.如权利要求25所述的计算机程序产品,还包括:
第三可执行部分,用于估计作为从所述升级过程的之前执行获得的时间信息的函数的、对额外节点单元执行所述升级过程所需要的时间,以便对所需的时间的估计提供更高的精度,以及
第四可执行部分,用于将所需要的时间的估计值与预定的升级窗口进行比较,其中如果所述估计值在所述预定的升级窗口内,则执行对所述额外节点单元的后续升级过程。
CN201080049013.8A 2009-11-02 2010-10-26 数据存储系统的智能滚动升级 Active CN102597955B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/610,517 2009-11-02
US12/610,517 US8108734B2 (en) 2009-11-02 2009-11-02 Intelligent rolling upgrade for data storage systems
PCT/EP2010/066127 WO2011051265A2 (en) 2009-11-02 2010-10-26 Intelligent rolling upgrade for data storage systems

Publications (2)

Publication Number Publication Date
CN102597955A true CN102597955A (zh) 2012-07-18
CN102597955B CN102597955B (zh) 2014-10-22

Family

ID=43662126

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080049013.8A Active CN102597955B (zh) 2009-11-02 2010-10-26 数据存储系统的智能滚动升级

Country Status (5)

Country Link
US (5) US8108734B2 (zh)
CN (1) CN102597955B (zh)
DE (1) DE112010004238T5 (zh)
GB (2) GB2535661A (zh)
WO (1) WO2011051265A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108037947A (zh) * 2017-12-11 2018-05-15 北京奇虎科技有限公司 补丁包加载方法及其装置、终端
CN109062633A (zh) * 2018-07-31 2018-12-21 郑州合撷亨商贸有限公司 一种实现多级无线异步更新配置程序的方法
CN110377332A (zh) * 2019-07-23 2019-10-25 北京交大思诺科技股份有限公司 安全计算机平台软件程序在线换装方法

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5428721B2 (ja) * 2009-10-02 2014-02-26 富士通株式会社 管理システム,管理装置,管理方法および管理プログラム
JP5515904B2 (ja) * 2010-03-17 2014-06-11 株式会社リコー 情報処理システム、管理装置、情報処理装置、インストール処理方法、プログラム及び記憶媒体
US8505003B2 (en) 2010-04-28 2013-08-06 Novell, Inc. System and method for upgrading kernels in cloud computing environments
US8484503B2 (en) * 2010-08-18 2013-07-09 International Business Machines Corporation Disaster recovery replication throttling in deduplication systems
US9201685B2 (en) 2011-01-28 2015-12-01 Oracle International Corporation Transactional cache versioning and storage in a distributed data grid
US9164806B2 (en) 2011-01-28 2015-10-20 Oracle International Corporation Processing pattern framework for dispatching and executing tasks in a distributed computing grid
US9063852B2 (en) 2011-01-28 2015-06-23 Oracle International Corporation System and method for use with a data grid cluster to support death detection
US9081839B2 (en) 2011-01-28 2015-07-14 Oracle International Corporation Push replication for use with a distributed data grid
US9063787B2 (en) * 2011-01-28 2015-06-23 Oracle International Corporation System and method for using cluster level quorum to prevent split brain scenario in a data grid cluster
US9772784B2 (en) 2011-08-10 2017-09-26 Nutanix, Inc. Method and system for maintaining consistency for I/O operations on metadata distributed amongst nodes in a ring structure
US20150169598A1 (en) 2012-01-17 2015-06-18 Oracle International Corporation System and method for providing a persistent snapshot of a running system in a distributed data grid
US10637918B2 (en) 2012-02-27 2020-04-28 Red Hat, Inc. Load balancing content delivery servers
US9658841B2 (en) * 2012-08-30 2017-05-23 Avaya Inc. System and method for efficient software replication
US9058251B1 (en) * 2013-03-13 2015-06-16 Google Inc. Detecting external software update failure of local application
US9614716B2 (en) * 2014-04-07 2017-04-04 International Business Machines Corporation Controller maintenance in a network-attached storage system
US9619490B2 (en) * 2014-04-11 2017-04-11 Nutanix, Inc. Mechanism for performing lockless rolling upgrade of NoSQL database
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US9740472B1 (en) * 2014-05-15 2017-08-22 Nutanix, Inc. Mechanism for performing rolling upgrades in a networked virtualization environment
US9733958B2 (en) * 2014-05-15 2017-08-15 Nutanix, Inc. Mechanism for performing rolling updates with data unavailability check in a networked virtualization environment for storage management
US9430668B2 (en) 2014-05-30 2016-08-30 Microsoft Technology Licensing, Llc Seamless upgrade for network system
US10474659B2 (en) 2014-06-28 2019-11-12 Microsoft Technology Licensing, Llc Large scale network system upgrade
US10664495B2 (en) 2014-09-25 2020-05-26 Oracle International Corporation System and method for supporting data grid snapshot and federation
US9858309B2 (en) 2014-10-07 2018-01-02 Sap Se Managing write accesses during database upgrade procedure
US9614853B2 (en) 2015-01-20 2017-04-04 Enzoo, Inc. Session security splitting and application profiler
US10642507B2 (en) 2015-01-30 2020-05-05 Nutanix, Inc. Pulsed leader consensus management
US9898495B2 (en) 2015-02-23 2018-02-20 Sap Se Zero downtime upgrade for database applications with altering sequences
US9898494B2 (en) 2015-02-23 2018-02-20 Sap Se Zero downtime upgrade for database applications using tables with sequences
US9772915B2 (en) 2015-06-30 2017-09-26 International Business Machines Corporation Cluster file system support for extended network service addresses
US11163498B2 (en) 2015-07-01 2021-11-02 Oracle International Corporation System and method for rare copy-on-write in a distributed computing environment
US10860378B2 (en) 2015-07-01 2020-12-08 Oracle International Corporation System and method for association aware executor service in a distributed computing environment
US10798146B2 (en) 2015-07-01 2020-10-06 Oracle International Corporation System and method for universal timeout in a distributed computing environment
US10585599B2 (en) 2015-07-01 2020-03-10 Oracle International Corporation System and method for distributed persistent store archival and retrieval in a distributed computing environment
US20170115978A1 (en) * 2015-10-26 2017-04-27 Microsoft Technology Licensing, Llc Monitored upgrades using health information
CN106936622B (zh) * 2015-12-31 2020-01-31 阿里巴巴集团控股有限公司 一种分布式存储系统升级方法和装置
US10025583B2 (en) 2016-02-17 2018-07-17 International Business Machines Corporation Managing firmware upgrade failures
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10001983B2 (en) * 2016-07-27 2018-06-19 Salesforce.Com, Inc. Rolling version update deployment utilizing dynamic node allocation
US10289400B2 (en) 2016-09-07 2019-05-14 Amplidata N.V. Outdated resource handling and multiple-version upgrade of cloud software
US10362092B1 (en) 2016-10-14 2019-07-23 Nutanix, Inc. Entity management in distributed systems
US10534598B2 (en) * 2017-01-04 2020-01-14 International Business Machines Corporation Rolling upgrades in disaggregated systems
US11153164B2 (en) 2017-01-04 2021-10-19 International Business Machines Corporation Live, in-line hardware component upgrades in disaggregated systems
US11550820B2 (en) 2017-04-28 2023-01-10 Oracle International Corporation System and method for partition-scoped snapshot creation in a distributed data computing environment
CN107104844B (zh) * 2017-05-27 2020-05-26 苏州浪潮智能科技有限公司 一种ctdb迁移公共ip地址的方法及装置
US10769019B2 (en) 2017-07-19 2020-09-08 Oracle International Corporation System and method for data recovery in a distributed data computing environment implementing active persistence
CN107454165A (zh) * 2017-08-04 2017-12-08 郑州云海信息技术有限公司 一种hadoop集群对ceph集群的访问方法及装置
US10721095B2 (en) 2017-09-26 2020-07-21 Oracle International Corporation Virtual interface system and method for multi-tenant cloud networking
US10862965B2 (en) 2017-10-01 2020-12-08 Oracle International Corporation System and method for topics implementation in a distributed data computing environment
US10564863B2 (en) 2018-04-24 2020-02-18 International Business Machines Corporation Identifying an availability of a system
US10776208B2 (en) * 2018-07-18 2020-09-15 EMC IP Holding Company LLC Distributed memory checkpointing using storage class memory systems
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11150886B2 (en) 2019-09-03 2021-10-19 Microsoft Technology Licensing, Llc Automatic probabilistic upgrade of tenant devices
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11412040B1 (en) 2021-07-23 2022-08-09 Vmware, Inc. Using maintenance mode to upgrade a distributed system
US11748222B2 (en) 2021-07-23 2023-09-05 Vmware, Inc. Health measurement and remediation of distributed systems upgrades
US20230246938A1 (en) * 2022-02-01 2023-08-03 Bank Of America Corporation System and method for monitoring network processing optimization
US11841759B2 (en) * 2022-04-04 2023-12-12 Vmware, Inc. Fault tolerance handling for services

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210461A1 (en) * 2004-03-17 2005-09-22 Oracle International Corporation Method and mechanism for performing a rolling upgrade of distributed computer software
US20050234931A1 (en) * 2004-04-06 2005-10-20 Microsoft Corporation Managing client configuration data
US20060168574A1 (en) * 2005-01-21 2006-07-27 David Giannini Methods and systems for transferring data over a network
US20060294413A1 (en) * 2005-06-28 2006-12-28 Filz Frank S Fault tolerant rolling software upgrade in a cluster
CN201063621Y (zh) * 2007-02-12 2008-05-21 雷柏元 一种实现对等设备之间通讯的装置
CN101465757A (zh) * 2009-01-15 2009-06-24 武汉烽火网络有限责任公司 一种集群网络中批量升级的方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781908A (en) * 1995-12-18 1998-07-14 J.D. Edwards World Source Company File data synchronizer in a distributed data computer network
US6446218B1 (en) * 1999-06-30 2002-09-03 B-Hub, Inc. Techniques for maintaining fault tolerance for software programs in a clustered computer system
US6681389B1 (en) * 2000-02-28 2004-01-20 Lucent Technologies Inc. Method for providing scaleable restart and backout of software upgrades for clustered computing
EP1292892A4 (en) * 2000-04-14 2006-11-15 Goahead Software Inc SYSTEM AND METHOD FOR UPGRADING NETWORKED EQUIPMENT
WO2001084313A2 (en) * 2000-05-02 2001-11-08 Sun Microsystems, Inc. Method and system for achieving high availability in a networked computer system
FR2816085A1 (fr) * 2000-10-27 2002-05-03 Frederic Baron Procede et dispositif pour procurer un produit en permettant de faire evoluer ledit produit
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US6996817B2 (en) * 2001-12-12 2006-02-07 Valve Corporation Method and system for upgrading and rolling back versions
US7305669B2 (en) * 2002-09-27 2007-12-04 Sun Microsystems, Inc. Software upgrades with multiple version support
US7260818B1 (en) * 2003-05-29 2007-08-21 Sun Microsystems, Inc. System and method for managing software version upgrades in a networked computer system
US7207033B2 (en) * 2003-08-08 2007-04-17 International Business Machines Corporation Automatic backup and restore for configuration of a logical volume manager during software installation
US7360208B2 (en) * 2004-05-17 2008-04-15 Oracle International Corp. Rolling upgrade of distributed software with automatic completion
US8627149B2 (en) * 2004-08-30 2014-01-07 International Business Machines Corporation Techniques for health monitoring and control of application servers
WO2006053093A2 (en) * 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US20060130042A1 (en) * 2004-12-15 2006-06-15 Dias Daniel M Method and apparatus for dynamic application upgrade in cluster and grid systems for supporting service level agreements
CN100442901C (zh) * 2005-10-25 2008-12-10 华为技术有限公司 在设备管理中监控和升级软件的方法及装置
US8073922B2 (en) * 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
US8429643B2 (en) * 2007-09-05 2013-04-23 Microsoft Corporation Secure upgrade of firmware update in constrained memory
US8214470B2 (en) * 2007-11-02 2012-07-03 Telefonaktiebolaget L M Ericsson (Publ) Upgrading software in radio base station nodes
US20090144720A1 (en) 2007-11-30 2009-06-04 Sun Microsystems, Inc. Cluster software upgrades
US8209403B2 (en) * 2008-08-18 2012-06-26 F5 Networks, Inc. Upgrading network traffic management devices while maintaining availability
JP2010198383A (ja) * 2009-02-25 2010-09-09 Fujitsu Ltd ストレージ装置、ソフトウェア更新方法およびソフトウェア更新プログラム
US8473939B2 (en) * 2009-06-10 2013-06-25 International Business Machines Corporation Concurrent upgrade of all components in storage subsystems
US8589535B2 (en) * 2009-10-26 2013-11-19 Microsoft Corporation Maintaining service performance during a cloud upgrade

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210461A1 (en) * 2004-03-17 2005-09-22 Oracle International Corporation Method and mechanism for performing a rolling upgrade of distributed computer software
US20050234931A1 (en) * 2004-04-06 2005-10-20 Microsoft Corporation Managing client configuration data
US20060168574A1 (en) * 2005-01-21 2006-07-27 David Giannini Methods and systems for transferring data over a network
US20060294413A1 (en) * 2005-06-28 2006-12-28 Filz Frank S Fault tolerant rolling software upgrade in a cluster
CN201063621Y (zh) * 2007-02-12 2008-05-21 雷柏元 一种实现对等设备之间通讯的装置
CN101465757A (zh) * 2009-01-15 2009-06-24 武汉烽火网络有限责任公司 一种集群网络中批量升级的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ELLARD T. ROUSH: "Cluster rolling upgrade using multiple version support", 《CLUSTER COMPUTING, 2001. PROCEEDINGS. 2001 IEEE INTERNATIONAL》, 17 October 2001 (2001-10-17), pages 63 - 70 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108037947A (zh) * 2017-12-11 2018-05-15 北京奇虎科技有限公司 补丁包加载方法及其装置、终端
CN108037947B (zh) * 2017-12-11 2021-09-07 北京奇虎科技有限公司 补丁包加载方法及其装置、终端
CN109062633A (zh) * 2018-07-31 2018-12-21 郑州合撷亨商贸有限公司 一种实现多级无线异步更新配置程序的方法
CN110377332A (zh) * 2019-07-23 2019-10-25 北京交大思诺科技股份有限公司 安全计算机平台软件程序在线换装方法

Also Published As

Publication number Publication date
US20110271091A1 (en) 2011-11-03
US8479056B2 (en) 2013-07-02
GB2485518A (en) 2012-05-16
US20110107135A1 (en) 2011-05-05
WO2011051265A2 (en) 2011-05-05
US9946587B2 (en) 2018-04-17
GB201204503D0 (en) 2012-04-25
US9037923B2 (en) 2015-05-19
US20150212908A1 (en) 2015-07-30
CN102597955B (zh) 2014-10-22
DE112010004238T5 (de) 2012-09-27
GB2535661A (en) 2016-08-24
US8108734B2 (en) 2012-01-31
US20160253102A1 (en) 2016-09-01
GB2485518B (en) 2016-08-03
WO2011051265A3 (en) 2011-07-14
US20130232244A1 (en) 2013-09-05
US9298526B2 (en) 2016-03-29

Similar Documents

Publication Publication Date Title
CN102597955B (zh) 数据存储系统的智能滚动升级
US9495258B2 (en) Dynamic generation of disaster recovery plan which react to changes to an underlying topology
TWI625621B (zh) 用於資料庫中進行回復的方法、電腦可用程式產品、與資料處理系統
US10884879B2 (en) Method and system for computing a quorum for two node non-shared storage converged architecture
US9396052B2 (en) Periodic validation and health reports of disaster recovery plan
CN103853595B (zh) 用于替换虚拟机盘的方法和系统
CN101390336B (zh) 灾难恢复体系结构
US20100228960A1 (en) Virtual memory over baseboard management controller
US20170004058A1 (en) Managing backup operations from a client system to a primary server and secondary server
CA3054040A1 (en) Synchronously replicating datasets and other managed objects to cloud-based storage systems
US8806265B2 (en) LPAR creation and repair for automated error recovery
US8255476B2 (en) Automated tape drive sharing in a heterogeneous server and application environment
US10880153B2 (en) Method and system for providing service redundancy between a master server and a slave server
US8099634B2 (en) Autonomic component service state management for a multiple function component
US8880552B2 (en) Database system and database control method
US10509700B2 (en) Storage system and storage management method
Dufrasne et al. Ds8870 data migration techniques
US10365934B1 (en) Determining and reporting impaired conditions in a multi-tenant web services environment
US20230409386A1 (en) Automatically orchestrating a computerized workflow
RU2714602C1 (ru) Способ и система для обработки данных
US8930762B1 (en) Optimal tracking of cluster-wide shared storage connectivity for graceful error handling
Adra et al. IBM System p Advanced POWER Virtualization Best Practices
WO2015186226A1 (ja) 計算機、計算機システム、osブート制御方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant