CN111176688A - 多控存储集群的软件升级方法、装置、设备及介质 - Google Patents
多控存储集群的软件升级方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN111176688A CN111176688A CN201911386520.XA CN201911386520A CN111176688A CN 111176688 A CN111176688 A CN 111176688A CN 201911386520 A CN201911386520 A CN 201911386520A CN 111176688 A CN111176688 A CN 111176688A
- Authority
- CN
- China
- Prior art keywords
- controller node
- controller
- software
- node
- backup
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种多控存储集群的软件升级方法、装置、设备及计算机可读存储介质,方法包括:利用配置节点接收软件包,检测软件包是否可用,若是,将软件包分发给除配置节点外的控制器节点;利用软件包依次对各控制器节点的软件主程序进行升级,并在对当前控制节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且进行IO负载均衡;当所有控制器节点的软件主程序完成升级时,对各控制器节点中的集群数据管理器进行同步升级。本申请公开的上述技术方案,通过软件主程序的依次升级及软件主程序和集群数据管理器的分步升级来实现软件的在线升级,以在尽量不中断IO处理的情况下实现软件的升级,从而提高多控存储集群的性能。
Description
技术领域
本申请涉及存储技术领域,更具体地说,涉及一种多控存储集群的软件升级方法、装置、设备及计算机可读存储介质。
背景技术
在云计算时代,海量数据的爆发式增长对存储集群的性能、安全性和稳定性提出了更高的要求。为了进一步提高存储设备的性能和稳定性,在原有双控集群的基础上,目前已经出现了多存储控制器(3个或4个等)组成的控制器集群(即多控存储集群)来管理后端磁盘和下发的IO(Input/Ouput,读取/写入)请求。其中,出于存储控制器功能的扩展以及缺陷修复等目的,需要对控制器集群中各控制器的软件进行升级。
对于存储控制器数量大于2的多控存储集群,目前,一般采用离线升级方式对各控制器的软件进行升级,其在升级前需要先停止全部存储控制器的业务处理和IO请求处理,并关闭所有存储控制器软件,在软件更新升级之后再进行软件的启动并继续业务处理,这种升级方式会导致存储控制器在升级过程中不可用,从而会导致IO处理出现长时间的中断,进而会降低多控存储集群的性能。
综上所述,如何在多控存储集群进行软件升级时尽量使得IO处理无需出现长时间的中断,从而提高多控存储集群的性能,是目前本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本申请的目的是提供一种多控存储集群的软件升级方法,用于在多控存储集群进行软件升级时尽量使得IO处理无需出现长时间的中断,从而提高多控存储集群的性能。
为了实现上述目的,本申请提供如下技术方案:
一种多控存储集群的软件升级方法,包括:
利用多控存储集群中作为配置节点的控制器节点接收软件包,检测所述软件包是否可用,若是,则将所述软件包分发给除所述配置节点外的控制器节点;
利用所述软件包依次对各所述控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过所述剩余控制器节点进行IO负载均衡;其中,所述软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;
当所有所述控制器节点的软件主程序完成升级时,对各所述控制器节点中的集群数据管理器进行同步升级。
优选的,通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,包括:
利用所述当前控制器节点的后一控制器节点接管所述当前控制器节点所负责的IO请求;
将所述当前控制器的备份缓存数据作为所述当前控制器节点的后一控制器节点的工作缓存数据,并依据最近最久未使用原则选取目标数据,且将所述目标数据下刷到磁盘,以使所述当前控制器节点的后一控制器节点的工作缓存数据的大小恢复到正常大小;
将所述当前控制器的前一控制器节点的工作缓存数据备份到所述当前控制器节点的后一控制器节点的备份缓存数据中,并保持其余控制器节点的备份关系不变,以使所述剩余控制器节点形成所述循环备份关系并进行缓存数据备份。
优选的,在利用所述当前控制器节点的后一控制器节点接管所述当前控制器节点所负责的IO请求时,还包括:
利用所述当前控制器节点对前一控制器节点的备份缓存数据进行更新;
相应地,在将所述当前控制器的前一控制器节点的工作缓存数据备份到所述当前控制器节点的后一控制器节点的备份缓存数据中之后,还包括:
中止所述当前控制器节点对前一控制器节点的备份缓存数据的更新。
优选的,各所述控制器节点中的集群数据管理器以动态链接库形式实现。
优选的,对各所述控制器节点中的集群数据管理器进行同步升级,包括:
基于PAXOS算法将事件发送至所述控制器节点,以通过事件驱动对各所述控制器节点中的集群数据管理器进行同步升级。
优选的,对各所述控制器节点中的集群数据管理器进行同步升级,包括:
发送集群数据管理器更新指令,并使各所述控制器节点静默;
卸载各所述控制器节点中旧版本的集群数据管理器动态链接库,并装载新版本的集群数据管理器动态链接库;
取消各所述控制器节点的静默。
一种多控存储集群的软件升级装置,包括:
检测模块,用于利用多控存储集群中作为配置节点的控制器节点接收软件包,检测所述软件包是否可用,若是,则将所述软件包分发给除所述配置节点外的控制器节点;
第一升级模块,用于利用所述软件包依次对各所述控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过所述剩余控制器节点进行IO负载均衡;其中,所述软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;
第二升级模块,用于当所有所述控制器节点的软件主程序完成升级时,对各所述控制器节点中的集群数据管理器进行同步升级。
优选的,所述第一升级模块包括:
接管单元,用于利用所述当前控制器节点的后一控制器节点接管所述当前控制器节点所负责的IO请求;
下刷单元,用于将所述当前控制器的备份缓存数据作为所述当前控制器节点的后一控制器节点的工作缓存数据,并依据最近最久未使用原则选取目标数据,且将所述目标数据下刷到磁盘,并保持其余控制器节点的备份关系不变,以使所述当前控制器节点的后一控制器节点的工作缓存数据的大小恢复到正常大小;
备份单元,用于将所述当前控制器的前一控制器节点的工作缓存数据备份到所述当前控制器节点的后一控制器节点的备份缓存数据中,以使所述剩余控制器节点形成所述循环备份关系并进行缓存数据备份。
一种多控存储集群的软件升级设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述的多控存储集群的软件升级方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的多控存储集群的软件升级方法的步骤。
本申请提供了一种多控存储集群的软件升级方法、装置、设备及计算机可读存储介质,其中,该方法包括:利用多控存储集群中作为配置节点的控制器节点接收软件包,检测软件包是否可用,若是,则将软件包分发给除配置节点外的控制器节点;利用软件包依次对各控制器节点的软件主程序进行升级,并在对当前控制节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过剩余控制器节点进行IO负载均衡;其中,软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;当所有控制器节点的软件主程序完成升级时,对各控制器节点中的集群数据管理器进行同步升级。
本申请公开的上述技术方案,利用配置节点接收软件包并在软件包可用时将软件包分发给配置节点之外的控制器节点,利用软件包依次对各控制器节点的软件主程序进行升级,在进行升级时通过剩余的控制器节点形成循环备份的关系并进行缓存数据备份,并通过剩余控制器节点进行IO负载均衡,以使得多控存储集群在进行软件主程序升级时仍旧能够实现缓存数据的备份,并能够继续进行IO的处理,从而提高多控存储集群的性能和可靠性,另外,在对各控制器节点的软件主程序进行升级之后,可以对各控制器节点中的集群数据管理器进行同步升级,以保证多控存储集群状态数据的一致性,即通过各控制器节点软件主程序的依次升级及软件主程序和集群数据管理器的分步升级实现多控存储集群的软件的在线升级,以在尽量不中断IO处理的情况下实现软件的平滑升级,从而提高多控存储集群的性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种多控存储集群的软件升级方法的流程图;
图2为本申请实施例提供的一种多控制器的循环备份示意图
图3为本申请实施例提供的通过剩余控制器节点形成循环备份的关系并进行缓存数据备份的流程图;
图4为本申请实施例提供的一种多控存储集群的软件升级装置的结构示意图;
图5为本申请实施例提供的一种多控存储集群的软件升级设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,其示出了本申请实施例提供的一种多控存储集群的软件升级方法的流程图,本申请实施例提供的一种多控存储集群的软件升级方法,可以包括:
S11:利用多控存储集群中作为配置节点的控制器节点接收软件包,检测软件包是否可用,若是,则将软件包分发给除配置节点外的控制器节点。
利用多控存储集群(其包含的控制器节点数大于2)中作为配置节点的控制器节点接收用于对多控存储集群中各控制器节点的软件主程序进行升级的软件包,并利用多控存储集群中作为配置节点的控制器节点检测软件包是否可用,若该软件包可用,则将软件包分发给除配置节点之外的控制器节点,若该软件包不可用,则不将软件包分发下去,此时,多控存储集群中的各控制器节点均不进行软件升级,以保证所有控制器节点软件版本的一致性,从而便于各控制器节点能够相互接替。
S12:利用软件包依次对各控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过剩余控制器节点进行IO负载均衡。
其中,软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序。
在将软件包分发给除配置节点之外的控制器节点之后,可以利用软件包依次对各控制器节点的软件主程序进行升级。其中,在对各控制器节点的软件主程序进行升级时可以先对除配置节点之外的控制器节点进行升级,并当多控存储集群中半数或半数以上的控制器节点完成升级之后,可以对配置节点进行转移,此时,原配置节点可以变为非配置节点,并可以对作为原配置节点的控制器节点进行升级。另外,这里提及的软件主程序具体为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件。
在利用软件包对当前控制器节点进行升级时,当前控制器节点可以暂时退出多控存储集群(在其软件包升级完成之后可以重新进入多控存储集群),并停止IO处理,退出IO处理进程,与此同时,可以通过多控存储集群中除当前控制器节点之外的剩余控制器节点形成循环备份的关系并进行缓存数据备份,以使得多控存储集群仍旧可以对缓存数据进行备份,从而提高多控存储集群的性能和可靠性,而且可以通过剩余控制器节接管当前控制器节点的IO,并进行IO负载均衡,以使得多控存储集群在进行软件升级时仍旧可以进行IO的处理,从而提高多控存储集群的性能。其中,剩余控制器节点的数量大于等于2,且在当前控制器节点为非配置节点时,则剩余控制器节点中包含作为配置节点的控制器节点,而且在形成循环备份关系并进行缓存数据备份的过程中,若每个控制器节点对自身的工作缓存数据进行修改时,会同步将修改后的工作缓存数据备份到后一控制器节点的备份缓存数据中,以保证数据的一致性。
以多控存储集群包含控制器节点1、控制器节点2、控制器节点3、控制器节点4这四个控制器节点为例,每个控制器节点的缓存数据都会同步写入到其备份的控制器节点中,如控制器节点1的工作缓存数据会同步备份到控制器节点2中、控制器节点2中的工作缓存数据会同步备份到控制器节点3中,控制器节点3中的工作缓存数据会同步备份到控制器节点4中,控制器节点4的工作缓存数据会同步备份到控制器节点1中,以形成一个环状的循环备份关系,当对控制器节点2进行升级时,控制器节点1、控制器节点3、控制器节点4这三个控制器节点则可以形成一个环状的循环备份关系,上述过程具体可以参见图2,其示出了本申请实施例提供的一种多控制器的循环备份示意图,在上述三个控制器节点形成循环备份关系的同时,上述三个控制器节点会对接收到的IO进行调整,以使得三个控制器节点的IO负载逐渐平衡。
S13:当所有控制器节点的软件主程序完成升级时,对各控制器节点中的集群数据管理器进行同步升级。
考虑到多控存储集群的状态数据都由集群数据管理器(Cluster Data Manager,CDM)进行管理,且由CDM对状态数据进行修改,因此,当所有控制器节点的软件主程序完成升级时,可以对各控制器节点中的集群数据管理器进行同步升级,以保证状态数据的一致性。另外,在利用软件包对各控制器节点的软件主程序进行升级的过程中,可以利用旧版本的CDM,以使得状态数据在软件主程序进行升级的过程中可以保持一致。
通过对各控制器节点软件主程序的依次升级和集群数据管理器的同步升级使得多控存储集群中各个存储控制节点在运行的全过程中可以保持软件版本和集群状态数据的一致性,从而使得各控制器节点能够随时相互接替,进而提高多控存储集群的可靠性和稳定性。
由上述升级过程可知,本申请通过对控制器节点软件主程序的依次升级,并通过软件主程序和集群数据管理器的分步升级来实现多控存储集群软件的在线升级,从而能够实现在尽量不中断IO处理的前提下实现多控存储集群软件的平滑更新,从而提高多控存储集群的可靠性和稳定性。
本申请公开的上述技术方案,利用配置节点接收软件包并在软件包可用时将软件包分发给配置节点之外的控制器节点,利用软件包依次对各控制器节点的软件主程序进行升级,在进行升级时通过剩余的控制器节点形成循环备份的关系并进行缓存数据备份,并通过剩余控制器节点进行IO负载均衡,以使得多控存储集群在进行软件主程序升级时仍旧能够实现缓存数据的备份,并能够继续进行IO的处理,从而提高多控存储集群的性能和可靠性,另外,在对各控制器节点的软件主程序进行升级之后,可以对各控制器节点中的集群数据管理器进行同步升级,以保证多控存储集群状态数据的一致性,即通过各控制器节点软件主程序的依次升级及软件主程序和集群数据管理器的分步升级实现多控存储集群的软件的在线升级,以在尽量不中断IO处理的情况下实现软件的平滑升级,从而提高多控存储集群的性能。
参见图3,其示出了本申请实施例提供的通过剩余控制器节点形成循环备份的关系并进行缓存数据备份的流程图,本申请实施例提供的一种多控存储集群的软件升级方法,上述步骤S12中,通过剩余控制器节点形成循环备份的关系并进行缓存数据备份的过程具体为:
S121:利用当前控制器节点的后一控制器节点接管当前控制器节点所负责的IO请求;
S122:将当前控制器的备份缓存数据作为当前控制器节点的后一控制器节点的工作缓存数据,并依据最近最久未使用原则选取目标数据,且将目标数据下刷到磁盘,并保持其余控制器节点的备份关系不变,以使当前控制器节点的后一控制器节点的工作缓存数据的大小恢复到正常大小;
S123:将当前控制器的前一控制器节点的工作缓存数据备份到当前控制器节点的后一控制器节点的备份缓存数据中,以使剩余控制器节点形成循环备份关系并进行缓存数据备份。
通过剩余控制器节点形成循环备份的关系并进行缓存数据备份的具体过程为:
在当前控制器节点利用软件包对软件主程序进行升级时,当前控制器节点会立即停止处理IO请求,此时,可以利用当前控制器节点的后一控制器节点接管该当前控制器节点所负责的IO请求;
同时,可以将当前控制器节点的备份缓存数据作为当前控制器节点的后一控制器节点的工作缓存数据(其中,多控存储集群中的每个控制器节点都有一块工作缓存数据和一块用于备份前一个控制器节点的缓存数据的备份缓存数据,这两块缓存数据的大小相同),并可以对当前控制器节点的备份缓存数据进行标记,以便于区分,此时,当前控制器节点的后一控制器节点的工作缓存数据为正常的两倍大小,为此,可以依据最近最久未使用原则从其工作缓存数据中选取目标数据,并将所选取出的目标数据下刷到磁盘,以使得当前控制器节点的后一控制器节点的工作缓存数据的大小可以恢复到正常大小,从而腾出空间做备份缓存;
在当前控制器节点的后一控制器节点腾出空间之后,可以将当前控制器节点的前一控制器节点的工作缓存数据备份到当前控制器节点的后一控制器节点的备份缓存数据中,而其余控制器节点的备份关系保持不变,以使剩余控制器节点形成循环备份关系并进行缓存数据备份,从而使得多控存储集群在其中一个控制器节点进行软件主程序升级时,剩余的控制器节点仍旧可以实现环状的循环备份关系并进行缓存数据备份,从而提高多控存储集群的可靠性和稳定性。
本申请实施例提供的一种多控存储集群的软件升级方法,在利用当前控制器节点的后一控制器节点接管当前控制器节点所负责的IO请求时,还可以包括:
利用当前控制器节点对前一控制器节点的备份缓存数据进行更新;
相应地,在将当前控制器的前一控制器节点的工作缓存数据备份到当前控制器节点的后一控制器节点的备份缓存数据中之后,还可以包括:
中止当前控制器节点对前一控制器节点的备份缓存数据的更新。
在利用当前控制器节点的后一控制器节点接管当前控制器节点所负责的IO请求时,当前控制器节点虽会立即停止IO请求的处理,但仍旧可以利用当前控制器节点对前一控制器节点的备份缓存进行更新,以避免造成前一控制器节点工作缓存数据与对其备份所得到的备份缓存数据不一致的情况,从而提高多控存储集群的可靠性。
相应地,在将当前控制器的前一控制器节点的工作缓存数据备份到当前控制器节点的后一控制器节点的备份缓存数据中之后,由于此时已经成功利用当前控制器节点的后一控制器节点来对当前控制器节点的前一控制器节点进行备份,因此,则可以中止当前控制器节点对其前一控制器节点的备份缓存数据的更新,以使得当前控制器可以退出多控存储集群并利用软件包进行升级,且可以由剩余控制器节点形成循环备份的关系。
本申请实施例提供的一种多控存储集群的软件升级方法,各控制器节点中的集群数据管理器以动态链接库形式实现。
在多控存储集群中,各控制器节点中的集群数据管理器可以以动态链接库的形式进行实现,以使得集群管理器可以在运行时进行装载和卸载,从而实现多控存储集群的软件的在线升级。
本申请实施例提供的一种多控存储集群的软件升级方法,对各控制器节点中的集群数据管理器进行同步升级,可以包括:
基于PAXOS算法将事件发送至控制器节点,以通过事件驱动对各控制器节点中的集群数据管理器进行同步升级。
在对各控制器节点中的集群数据管理器进行同步升级时,可以基于PAXOS算法保证动作的一致性,以确保各个控制器节点的集群数据管理器始终保持一致。具体地,可以以事件进行驱动,将集群数据管理器以动态链接库的方式实现,并基于PAXOS算法将事件发送至控制器节点,以事件机制来驱动集群数据管理器在各控制器节点上的同步替换,并通过PAXOS算法使得事件的发送和执行可以采用二次提交的方式进行实现,从而实现在运行时更新软件,而不破坏各控制器节点的一致性。
其中,这里所用到的PAXOS算法是莱斯利·兰伯特所提出的一种基于消息传递的一致性算法,其为现有技术中已经存在的算法。本申请实施例提供的一种多控存储集群的软件升级方法,对各控制器节点中的集群数据管理器进行同步升级,可以包括:
发送集群数据管理器更新指令,并使各控制器节点静默;
卸载各控制器节点中旧版本的集群数据管理器动态链接库,并装载新版本的集群数据管理器动态链接库;
取消各控制器节点的静默。
对各控制器节点中的集群数据管理器进行同步升级的过程为:
待全部控制器节点完成软件包升级之后,发送集群数据管理器更新指令,并使各控制器节点静默,以使各控制器节点暂停业务处理;然后,卸载各控制器节点中旧版本的集群数据管理器动态链接库,并装载新版本的集群数据管理器动态链接库;之后,则取消各控制器节点的静默,以使得各控制器节点可以继续进行业务处理。
通过上述方式可以缩短业务处理在软件升级过程中的中断时间,从而提高多控存储集群的可靠性和稳定性。
本申请实施例还提供了一种多控存储集群的软件升级装置,参见图4,其示出了本申请实施例提供的一种多控存储集群的软件升级装置的结构示意图,可以包括:
检测模块21,用于利用多控存储集群中作为配置节点的控制器节点接收软件包,检测软件包是否可用,若是,则将软件包分发给除配置节点外的控制器节点;
第一升级模块22,用于利用软件包依次对各控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过剩余控制器节点进行IO负载均衡;其中,软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;
第二升级模块23,用于当所有控制器节点的软件主程序完成升级时,对各控制器节点中的集群数据管理器进行同步升级。
本申请实施例提供的一种多控存储集群的软件升级装置,第一升级模块22可以包括:
接管单元,用于利用当前控制器节点的后一控制器节点接管当前控制器节点所负责的IO请求;
下刷单元,用于将当前控制器的备份缓存数据作为当前控制器节点的后一控制器节点的工作缓存数据,并依据最近最久未使用原则选取目标数据,且将目标数据下刷到磁盘,并保持其余控制器节点的备份关系不变,以使当前控制器节点的后一控制器节点的工作缓存数据的大小恢复到正常大小;
备份单元,用于将当前控制器的前一控制器节点的工作缓存数据备份到当前控制器节点的后一控制器节点的备份缓存数据中,以使剩余控制器节点形成循环备份关系并进行缓存数据备份。
本申请实施例提供的一种多控存储集群的软件升级装置,还可以包括:
更新模块,用于在利用当前控制器节点的后一控制器节点接管当前控制器节点所负责的IO请求时,利用当前控制器节点对前一控制器节点的备份缓存数据进行更新;
相应地,还可以包括:
中止更新模块,用于在将当前控制器的前一控制器节点的工作缓存数据备份到当前控制器节点的后一控制器节点的备份缓存数据中之后,中止当前控制器节点对前一控制器节点的备份缓存数据的更新。
本申请实施例提供的一种多控存储集群的软件升级装置,各控制器节点中的集群数据管理器以动态链接库形式实现。
本申请实施例提供的一种多控存储集群的软件升级装置,第二升级模块23可以包括:
升级单元,用于基于PAXOS算法将事件发送至控制器节点,以通过事件驱动对各控制器节点中的集群数据管理器进行同步升级。
本申请实施例提供的一种多控存储集群的软件升级装置,升级单元可以包括:
发送子单元,用于发送集群数据管理器更新指令,并使各控制器节点静默;
卸载子单元,用于卸载各控制器节点中旧版本的集群数据管理器动态链接库,并装载新版本的集群数据管理器动态链接库;
取消静默子单元,用于取消各控制器节点的静默。
本申请实施例还提供了一种多控存储集群的软件升级设备,参见图5,其示出了本申请实施例提供的一种多控存储集群的软件升级设备的结构示意图,可以包括:
存储器31,用于存储计算机程序;
处理器32,用于执行存储器31存储的计算机程序时可实现如下步骤:
利用多控存储集群中作为配置节点的控制器节点接收软件包,检测软件包是否可用,若是,则将软件包分发给除配置节点外的控制器节点;利用软件包依次对各控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过剩余控制器节点进行IO负载均衡;其中,软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;当所有控制器节点的软件主程序完成升级时,对各控制器节点中的集群数据管理器进行同步升级。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
利用多控存储集群中作为配置节点的控制器节点接收软件包,检测软件包是否可用,若是,则将软件包分发给除配置节点外的控制器节点;利用软件包依次对各控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过剩余控制器节点进行IO负载均衡;其中,软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;当所有控制器节点的软件主程序完成升级时,对各控制器节点中的集群数据管理器进行同步升级。
该计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的一种多控存储集群的软件升级装置、设备及计算机可读存储介质中相关部分的说明可以参见本申请实施例提供的一种多控存储集群的软件升级方法中对应部分的详细说明,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种多控存储集群的软件升级方法,其特征在于,包括:
利用多控存储集群中作为配置节点的控制器节点接收软件包,检测所述软件包是否可用,若是,则将所述软件包分发给除所述配置节点外的控制器节点;
利用所述软件包依次对各所述控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过所述剩余控制器节点进行IO负载均衡;其中,所述软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;
当所有所述控制器节点的软件主程序完成升级时,对各所述控制器节点中的集群数据管理器进行同步升级。
2.根据权利要求1所述的多控存储集群的软件升级方法,其特征在于,通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,包括:
利用所述当前控制器节点的后一控制器节点接管所述当前控制器节点所负责的IO请求;
将所述当前控制器的备份缓存数据作为所述当前控制器节点的后一控制器节点的工作缓存数据,并依据最近最久未使用原则选取目标数据,且将所述目标数据下刷到磁盘,以使所述当前控制器节点的后一控制器节点的工作缓存数据的大小恢复到正常大小;
将所述当前控制器的前一控制器节点的工作缓存数据备份到所述当前控制器节点的后一控制器节点的备份缓存数据中,并保持其余控制器节点的备份关系不变,以使所述剩余控制器节点形成所述循环备份关系并进行缓存数据备份。
3.根据权利要求2所述的多控存储集群的软件升级方法,其特征在于,在利用所述当前控制器节点的后一控制器节点接管所述当前控制器节点所负责的IO请求时,还包括:
利用所述当前控制器节点对前一控制器节点的备份缓存数据进行更新;
相应地,在将所述当前控制器的前一控制器节点的工作缓存数据备份到所述当前控制器节点的后一控制器节点的备份缓存数据中之后,还包括:
中止所述当前控制器节点对前一控制器节点的备份缓存数据的更新。
4.根据权利要求1所述的多控存储集群的软件升级方法,其特征在于,各所述控制器节点中的集群数据管理器以动态链接库形式实现。
5.根据权利要求4所述的多控存储集群的软件升级方法,其特征在于,对各所述控制器节点中的集群数据管理器进行同步升级,包括:
基于PAXOS算法将事件发送至所述控制器节点,以通过事件驱动对各所述控制器节点中的集群数据管理器进行同步升级。
6.根据权利要求5所述的多控存储集群的软件升级方法,其特征在于,对各所述控制器节点中的集群数据管理器进行同步升级,包括:
发送集群数据管理器更新指令,并使各所述控制器节点静默;
卸载各所述控制器节点中旧版本的集群数据管理器动态链接库,并装载新版本的集群数据管理器动态链接库;
取消各所述控制器节点的静默。
7.一种多控存储集群的软件升级装置,其特征在于,包括:
检测模块,用于利用多控存储集群中作为配置节点的控制器节点接收软件包,检测所述软件包是否可用,若是,则将所述软件包分发给除所述配置节点外的控制器节点;
第一升级模块,用于利用所述软件包依次对各所述控制器节点的软件主程序进行升级,并在对当前控制器节点进行升级时通过剩余控制器节点形成循环备份的关系并进行缓存数据备份,且通过所述剩余控制器节点进行IO负载均衡;其中,所述软件主程序为进行IO处理、命令行处理、配置界面处理和操作系统处理的软件程序;
第二升级模块,用于当所有所述控制器节点的软件主程序完成升级时,对各所述控制器节点中的集群数据管理器进行同步升级。
8.根据权利要求7所述的多控存储集群的软件升级装置,其特征在于,所述第一升级模块包括:
接管单元,用于利用所述当前控制器节点的后一控制器节点接管所述当前控制器节点所负责的IO请求;
下刷单元,用于将所述当前控制器的备份缓存数据作为所述当前控制器节点的后一控制器节点的工作缓存数据,并依据最近最久未使用原则选取目标数据,且将所述目标数据下刷到磁盘,以使所述当前控制器节点的后一控制器节点的工作缓存数据的大小恢复到正常大小;
备份单元,用于将所述当前控制器的前一控制器节点的工作缓存数据备份到所述当前控制器节点的后一控制器节点的备份缓存数据中,并保持其余控制器节点的备份关系不变,以使所述剩余控制器节点形成所述循环备份关系并进行缓存数据备份。
9.一种多控存储集群的软件升级设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的多控存储集群的软件升级方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的多控存储集群的软件升级方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911386520.XA CN111176688A (zh) | 2019-12-29 | 2019-12-29 | 多控存储集群的软件升级方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911386520.XA CN111176688A (zh) | 2019-12-29 | 2019-12-29 | 多控存储集群的软件升级方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111176688A true CN111176688A (zh) | 2020-05-19 |
Family
ID=70655833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911386520.XA Withdrawn CN111176688A (zh) | 2019-12-29 | 2019-12-29 | 多控存储集群的软件升级方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176688A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579139A (zh) * | 2020-12-09 | 2021-03-30 | 北京红山信息科技研究院有限公司 | 一种多集群补丁更新方法、系统、服务器和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140096121A1 (en) * | 2012-10-02 | 2014-04-03 | Oracle International Corporation | Forcibly completing upgrade of distributed software in presence of failures |
US20170031602A1 (en) * | 2015-07-27 | 2017-02-02 | Datrium, Inc. | Coordinated Upgrade of a Cluster Storage System |
CN107273169A (zh) * | 2017-06-30 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种存储控制器集群的软件在线升级方法及系统 |
CN109408299A (zh) * | 2018-11-02 | 2019-03-01 | 郑州云海信息技术有限公司 | 三控制器集群的数据处理方法、装置、设备及存储介质 |
-
2019
- 2019-12-29 CN CN201911386520.XA patent/CN111176688A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140096121A1 (en) * | 2012-10-02 | 2014-04-03 | Oracle International Corporation | Forcibly completing upgrade of distributed software in presence of failures |
US20170031602A1 (en) * | 2015-07-27 | 2017-02-02 | Datrium, Inc. | Coordinated Upgrade of a Cluster Storage System |
CN107273169A (zh) * | 2017-06-30 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种存储控制器集群的软件在线升级方法及系统 |
CN109408299A (zh) * | 2018-11-02 | 2019-03-01 | 郑州云海信息技术有限公司 | 三控制器集群的数据处理方法、装置、设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579139A (zh) * | 2020-12-09 | 2021-03-30 | 北京红山信息科技研究院有限公司 | 一种多集群补丁更新方法、系统、服务器和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE41162E1 (en) | Method for providing scaleable restart and backout of software upgrades for clustered computing | |
US8352933B2 (en) | Concurrent patching of operating systems | |
JPH03278126A (ja) | 計算機システム立上げ方式 | |
US20080126792A1 (en) | Systems and methods for achieving minimal rebooting during system update operations | |
US8843581B2 (en) | Live object pattern for use with a distributed cache | |
JP2009230577A (ja) | ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法 | |
EP3311272B1 (en) | A method of live migration | |
CN111552489B (zh) | 用户态文件系统热升级方法、装置、服务器及介质 | |
US10445295B1 (en) | Task-based framework for synchronization of event handling between nodes in an active/active data storage system | |
CN107273169A (zh) | 一种存储控制器集群的软件在线升级方法及系统 | |
US20220114004A1 (en) | Containerized application management system and management method | |
US6654880B1 (en) | Method and apparatus for reducing system down time by restarting system using a primary memory before dumping contents of a standby memory to external storage | |
CN112328365A (zh) | 一种虚拟机迁移方法、装置、设备及存储介质 | |
CN111176688A (zh) | 多控存储集群的软件升级方法、装置、设备及介质 | |
US6502176B1 (en) | Computer system and methods for loading and modifying a control program without stopping the computer system using reserve areas | |
CN108804129A (zh) | 一种软件升级方法及装置 | |
CN115643168A (zh) | 一种节点超融合升级方法、装置、设备及存储介质 | |
JPH113240A (ja) | 制御用計算機システム | |
US20050160242A1 (en) | Asynchronous hybrid mirroring system | |
CN112328429A (zh) | 一种基于Openstack的硬盘快照方法和装置 | |
CN114168261A (zh) | 一种基于OpenStack管理裸金属实例的高可用方法及装置 | |
JP2008217202A (ja) | ディスクアレイ装置及びファームウェア更新方法 | |
US11934819B2 (en) | Bare-metal deployment | |
US11947827B2 (en) | Synchronizing a stale component of a distributed object using a delta component during maintenance | |
JP3234029B2 (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200519 |
|
WW01 | Invention patent application withdrawn after publication |