一种在线升级方法、装置及系统与流程

文档序号:13250379阅读:177来源:国知局
技术领域本发明涉及计算机技术领域,尤其涉及一种在线升级方法、装置及系统。

背景技术:
在分布式存储系统中,可以利用RAID(RedundantArraysofIndependentDisks,磁盘阵列)技术,将同一分条(stripe)中的各个条带存储在不同的存储节点上,一个条带可以为数据条带或者冗余条带,同一分条内数据条带和冗余条带的个数是一定的,例如,一个分条由4个数据条带和1个冗余条带组成,1个冗余条带与任意3个数据条带可以恢复出剩余的1个数据条带,也就是说,在一个分条内,不可用的数据条带的个数应该小于冗余条带的个数,从保证有效的恢复出不可用的数据条带。如图1所示,分条1中的4个数据条带和1个冗余条带分别存储在5个存储节点内,当存储节点1在线升级时,确定存储节点1的备份节点为存储节点2,用于保存存储节点1在在线升级期间需要写入的写入数据,例如,该写入数据为分条2中的数据,类似的,分条2也由4个数据条带和1个冗余条带组成,此时,存储节点2中不仅存储了分条2中原本写入自身的1个数据条带,还保存了需要写入存储节点1的1个数据条带,即存储节点2中存储了分条2中的2个数据条带。这样一来,当存储节点1完成在线升级时,如果下一个升级的节点为存储节点2,此时,若直接将存储节点2下电进行在线升级,则分条2中剩余的1个冗余条带和2个数据条带无法恢复出存储节点2中存储的分条2中的2个数据条带,从而使用户无法读取存储节点2中存储的分条2中的2个数据条带,因此,在升级存储节点2之前,需要先将存储节点2内保存的需要写入存储节点1的1个数据条带回迁至存储节点1,进而,为存储节点2重新选择备份节点,以完成对存储节点2的升级,直至5个存储节点均完成升级为止。可以看出,在每次升级当前的存储节点时,还需要额外等待将该存储节点作为备份节点临时写入的业务数据,回迁至上一个进行升级的存储节点的时间,从而增加了整个分布式存储系统进行在线升级的时间。

技术实现要素:
本发明的实施例提供一种在线升级方法、装置及系统,可缩短分布式存储系统内各存储节点进行在线升级的时间。为达到上述目的,本发明的实施例采用如下技术方案:第一方面,本发明的实施例提供一种在线升级方法,包括:监控节点获取N个待升级节点的标识,N≥3;该监控节点根据该N个待升级节点的标识,设置该N个待升级节点的升级顺序,其中,该N个待升级节点的升级顺序均不同;该监控节点根据该N个待升级节点的升级顺序,确定该N个待升级节点中每一个待升级节点的备份节点,得到节点备份信息,该节点备份信息包含每一个待升级节点的标识与该待升级节点的备份节点的标识之间的对应关系,其中,第X个待升级节点的备份节点为:在该升级顺序中,第X个待升级节点之前的待升级节点与第X+[Z+1]个待升级节点之后的待升级节点组成的集合中的至少一个,Z为该第X个待升级节点回迁业务数据的时间与在线升级的时间的比值,1≤X≤N;该监控节点将该节点备份信息发送至该N个待升级节点,以使得该N个待升级节点中的任意待升级节点在线升级时,需写入该待升级节点的业务数据按照该节点备份信息存储至该待升级节点的备份节点。可以看出,本发明实施例提供的在线升级方法,由于严格控制了N个待升级节点的升级顺序,同时为每一个待升级节点选择升级顺序的排位较为靠后、或者已经完成升级的节点作为该待升级节点的备份节点,从而保证每一个待升级节点在线升级时不影响业务数据的读取和写入,并且,第X+1个待升级节点无需等待第X个待升级节点完成该业务数据的回迁,便可以在第X个待升级节点完成升级后直接开始在线升级,因此,分布式存储系统内的每一个待升级节点完成在线升级后可以直接进行业务数据的回迁过程,且回迁过程不影响后续待升级节点的在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间,提高了在线升级效率。在一种可能的设计中,当X=1时,第X个待升级节点的备份节点为第N个待升级节点;当1<X≤N时,第X个待升级节点的备份节点为第X-1个待升级节点。这样一来,由于第X个待升级节点的备份节点为升级顺序排在第X个待升级节点前一个的待升级节点,因此,当第X个待升级节点在线升级时,由第X-1个待升级节点承担第X个待升级节点的写入业务,此时,第X-1个待升级节点已经升级完毕,而当第X个待升级节点在线升级完毕后,监控节点可以直接指示第X+1个待升级节点进行在线升级,也就是说,第X+1个待升级节点无需等待第X个待升级节点完成该业务数据回迁,也无需计算待升级节点回迁业务数据的时间与在线升级的时间的比值,便可以直接在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间,提高在线升级效率。在一种可能的设计中,在该监控节点将该节点备份信息发送至该N个待升级节点之后,还包括:该监控节点向该N个待升级节点发送第一升级指令,该第一升级指令中携带有第1个待升级节点的标识,该第一升级指令用于触发该第1个待升级节点进行在线升级;该监控节点接收该第1个待升级节点发送的升级完成响应;该监控节点向该第1个待升级节点发送数据回迁指令,以使得该第1个待升级节点根据该数据回迁指令从该第N个待升级节点处回迁需写入该第1个待升级节点的业务数据。在一种可能的设计中,在该监控节点接收到第X-1个待升级节点发送的升级完成响应之后,还包括:该监控节点发送第二升级指令至该N个待升级节点,该第二升级指令中携带有第X个待升级节点的标识,该第二升级指令用于触发该第X个待升级节点进行在线升级。可以看出,在第X-1个待升级节点在线升级完成之后,升级顺序排在第X-1个待升级节点之后的第X个待升级节点可以立即进行在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间。在一种可能的设计中,该方法还包括:若该监控节点接收到第N-1个待升级节点发送的升级完成响应,则该监控节点判断该第1个待升级节点是否完成从该第N个待升级节点处回迁该业务数据;若该第1个待升级节点已完成从该第N个待升级节点处回迁该业务数据,则该监控节点向该N个待升级节点发送第三升级指令,该第三升级指令中携带有第N个待升级节点的标识,该第三升级指令用于触发该第N个待升级节点进行在线升级。第二方面,本发明的实施例提供一种在线升级方法,包括:第一待升级节点获取监控节点发送的节点备份信息,其中,该节点备份信息中每一个待升级节点的标识与该待升级节点的备份节点的标识之间的对应关系,该第一待升级节点为该N个待升级节点中的任一个,N≥3;该第一待升级节点接收该监控节点发送的本节点升级指令,该本节点升级指令中携带有该第一待升级节点的标识;该第一待升级节点根据该本节点升级指令,执行在线升级操作。在一种可能的设计中,在该第一待升级节点根据该本节点升级指令,执行在线升级操作之后,还包括:该第一待升级节点向该监控节点发送升级完成响应;该第一待升级节点接收该监控节点发送的数据回迁指令;该第一待升级节点根据该数据回迁指令,从该第一待升级节点的备份节点中回迁需写入该第一待升级节点的业务数据。在一种可能的设计中,在第一待升级节点获取监控节点发送的节点备份信息之后,还包括:该第一待升级节点接收该监控节点发送的非本节点升级指令,该非本节点升级指令中携带有第二待升级节点的标识,该第二待升级节点为该N个待升级节点中除该第一待升级节点外的任一个待升级节点;该第一待升级节点根据该非本节点升级指令,按照该节点备份信息确定该第二待升级节点的备份节点;若该第一待升级节点接收到需写入该第二待升级节点的业务数据,则该第一待升级节点将该业务数据发送至该第二待升级节点的备份节点。第三方面,本发明的实施例提供一种监控节点,包括:获取单元,用于获取N个待升级节点的标识,N≥3;排序单元,用于根据该N个待升级节点的标识,设置该N个待升级节点的升级顺序,其中,该N个待升级节点的升级顺序均不同;确定单元,用于根据该N个待升级节点的升级顺序,确定该N个待升级节点中每一个待升级节点的备份节点,得到节点备份信息,该节点备份信息包含每一个待升级节点的标识与该待升级节点的备份节点的标识之间的对应关系,其中,第X个待升级节点的备份节点为:在该升级顺序中,第X个待升级节点之前的待升级节点与第X+[Z+1]个待升级节点之后的待升级节点组成的集合中的至少一个,Z为该第X个待升级节点回迁业务数据的时间与在线升级的时间的比值,1≤X≤N;发送单元,用于将该节点备份信息发送至该N个待升级节点,以使得该N个待升级节点中的任意待升级节点在线升级时,需写入该待升级节点的业务数据按照该节点备份信息存储至该待升级节点的备份节点。在一种可能的设计中,该发送单元,还用于向该N个待升级节点发送第一升级指令,该第一升级指令中携带有第1个待升级节点的标识,该第一升级指令用于触发该第1个待升级节点进行在线升级;该获取单元,还用于接收该第1个待升级节点发送的升级完成响应;该发送单元,还用于向该第1个待升级节点发送数据回迁指令,以使得该第1个待升级节点根据该数据回迁指令从该第N个待升级节点处回迁需写入该第1个待升级节点的业务数据;其中,当X=1时,第X个待升级节点的备份节点为第N个待升级节点;当1<X≤N时,第X个待升级节点的备份节点为第X-1个待升级节点。在一种可能的设计中,该发送单元,还用于发送第二升级指令至该N个待升级节点,该第二升级指令中携带有第X个待升级节点的标识,该第二升级指令用于触发该第X个待升级节点进行在线升级。在一种可能的设计中,该监控节点还包括判断单元,其中,该判断单元,用于若接收到第N-1个待升级节点发送的升级完成响应,则判断该第1个待升级节点是否完成从该第N个待升级节点处回迁该业务数据;该发送单元,还用于若该第1个待升级节点已完成从该第N个待升级节点处回迁该业务数据,则该监控节点向该N个待升级节点发送第三升级指令,该第三升级指令中携带有第N个待升级节点的标识,该第三升级指令用于触发该第N个待升级节点进行在线升级。第四方面,本发明的实施例提供一种待升级节点,包括:获取单元,用于获取监控节点发送的节点备份信息,其中,该节点备份信息中包括N个待升级节点中每一个待升级节点的标识与该待升级节点的备份节点的标识之间的对应关系,N≥3;接收该监控节点发送的本节点升级指令,该本节点升级指令中携带有第一待升级节点的标识,该第一待升级节点为该N个待升级节点中的任一个;升级单元,用于根据该本节点升级指令,执行在线升级操作。在一种可能的设计中,该待升级节点还包括发送单元和回迁单元,其中,该发送单元,用于向该监控节点发送升级完成响应;该获取单元,还用于接收该监控节点发送的数据回迁指令;该回迁单元,用于根据该数据回迁指令,从该第一待升级节点的备份节点中回迁需写入该第一待升级节点的业务数据。在一种可能的设计中,该待升级节点还包括确定单元,其中,该获取单元,还用于接收该监控节点发送的非本节点升级指令,该非本节点升级指令中携带有第二待升级节点的标识,该第二待升级节点为该N个待升级节点中除该第一待升级节点外的任一个待升级节点;该确定单元,用于根据该非本节点升级指令,按照该节点备份信息确定该第二待升级节点的备份节点;发送单元,还用于若接收到需写入该第二待升级节点的业务数据,则将该业务数据发送至该第二待升级节点的备份节点。第五方面,本发明的实施例提供一种监控节点,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该监控节点运行时,该处理器执行该存储器存储的该计算机执行指令,以使该监控节点执行如第一方面中任意一项所述的在线升级方法。第六方面,本发明的实施例提供一种待升级节点,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该待升级节点运行时,该处理器执行该存储器存储的该计算机执行指令,以使该待升级节点执行如第一方面中任意一项所述的在线升级方法。第七方面,本发明的实施例提供一种在线升级系统,包括如第三方面中任一项所述的监控节点,以及N个如第四方面中任一项所述的待升级节点,N≥3。第八方面,本发明实施例提供了一种计算机存储介质,用于储存为上述监控节点所用的计算机软件指令,其包含用于执行上述方面为监控节点所设计的程序。第九方面,本发明实施例提供了一种计算机存储介质,用于储存为上述待升级节点所用的计算机软件指令,其包含用于执行上述方面为待升级节点所设计的程序。本发明中,监控节点以及待升级节点的名字对设备本身不构成限定,在实际实现中,这些设备可以以其他名称出现。只要各个设备的功能和本发明类似,属于本发明权利要求及其等同技术的范围之内。另外,第二方面至第九方面中任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。图1为现有技术中分布式存储系统内各存储节点进行在线升级的场景示意图;图2为本发明实施例提供的一种在线升级系统的场景示意图一;图3为本发明实施例提供的一种在线升级系统的场景示意图二;图4为本发明实施例提供的N个待升级节点的升级顺序的示意图;图5为本发明实施例提供的一种在线升级系统的场景示意图三;图6为本发明实施例提供的一种计算机设备的结构示意图;图7为本发明实施例提供的一种在线升级方法的流程示意图;图8为本发明实施例提供的一种在线升级方法的交互示意图;图9为本发明实施例提供的一种监控节点的结构示意图一;图10为本发明实施例提供的一种监控节点的结构示意图二;图11为本发明实施例提供的一种待升级节点的结构示意图一;图12为本发明实施例提供的一种待升级节点的结构示意图二;图13为本发明实施例提供的一种待升级节点的结构示意图三。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。另外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。本发明的实施例提供一种在线升级方法,可应用于分布式存储系统,可用于升级分布式存储系统内各个待升级节点内的安装的操作系统或软件,如图2所示,该分布式存储系统中包括监控节点01和N个待升级节点02,监控节点01可与N个待升级节点02进行通信,一个待升级节点02内可存储不同分条(stripe)的一个或多个条带块,N≥3。示例性的,如图3所示,该分布式存储系统中包括5个待升级节点(即待升级节点1-5),其中,分条1中的4个数据条带和1个冗余条带分别存储在这5个待升级节点内,由于同一分条内数据条带和冗余条带的个数是一定的,例如,分条1由4个数据条带和1个冗余条带组成,而1个冗余条带与任意3个数据条带可以恢复出剩余的1个数据条带,也就是说,在分条1内,不可用的数据条带的个数应该小于冗余条带的个数,从保证有效的恢复出不可用的数据条带。因此,当待升级节点1在线升级时,如果待升级节点2为待升级节点1的备份节点,即待升级节点2用于保存待升级节点1在在线升级期间需要写入的分条2中的数据(类似的,分条2也由4个数据条带和1个冗余条带组成),从而保证待升级节点2升级时不影响新的分条2中数据的写入,此时,待升级节点2中不仅存储了分条2中原本写入自身的1个数据条带,还保存了需要写入待升级节点1的1个数据条带,即待升级节点2中存储了分条2中的2个数据条带。那么,当待升级节点2准备在线升级时,若直接将待升级节点2下电,则分条2中剩余的1个冗余条带和2个数据条带无法恢复出待升级节点2中存储的分条2中的2个数据条带,从而使用户无法读取待升级节点2中存储的分条2中的2个数据条带,因此,在升级待升级节点2之前,必须先将待升级节点2内保存的需要写入待升级节点1的1个数据条带回迁至待升级节点1,从而保证待升级节点2升级时不影响分条2中数据的读取。而现有技术中,每次在线升级当前的待升级节点,例如待升级节点2时,还需要额外等待待升级节点2将临时写入的待升级节点1的业务数据(即分条2中的数据条带)回迁至待升级节点1的时间,从而增加了整个分布式存储系统进行在线升级的时间。具体的,为了解决上述分布式存储系统内N个待升级节点02在线升级时间过长的问题,本发明的实施例提供一种在线升级方法,其中,监控节点01在向N个待升级节点02分别发送升级指令之前,设置N个待升级节点02的升级顺序,且这N个待升级节点02的升级顺序均不同,进而,监控节点01根据这N个待升级节点02的升级顺序,确定出这N个待升级节点中每一个待升级节点02的备份节点,得到节点备份信息。上述节点备份信息中包含每一个待升级节点的标识与该待升级节点02的备份节点的标识之间的对应关系,其中,第X个待升级节点的备份节点为:在升级顺序中,第X个待升级节点之前的待升级节点与第X+[Z+1]个待升级节点之后的待升级节点组成的集合中的至少一个,Z为第X个待升级节点回迁业务数据的时间与在线升级的时间的比值,1≤X≤N,X为正整数,[]为取整函数的符号。需要说明的是,上述第X个待升级节点之前的待升级节点,是指在已经确定的第1个待升级节点至第N个待升级节点的升级顺序中,升级顺序排在第X个待升级节点之前的待升级节点,即开区间:(0,X)内的待升级节点,这样,当后续对第X个待升级节点进行在线升级时,若第X个待升级节点的备份节点为升级顺序排在第X个待升级节点之前的任意待升级节点,由于该第X个待升级节点之前的待升级节点已完成在线升级,那么,第X个待升级节点完成在线升级后,可以直接从其备份节点处进行业务数据的回迁过程,且该回迁过程不影响后续待第X+1个待升级节点的在线升级过程。相应的,上述第X+[Z+1]个待升级节点之后的待升级节点,是指在已经确定的第1个待升级节点至第N个待升级节点的升级顺序中,升级顺序排在第X+[Z+1]个待升级节点之后的待升级节点,即前开后闭区间:(X+[Z+1],N]内的待升级节点,这样,当后续对第X个待升级节点进行在线升级时,若第X个待升级节点的备份节点为升级顺序排在第X+[Z+1]个待升级节点之后的任意待升级节点,由于Z为第X个待升级节点回迁业务数据的时间与在线升级的时间的比值,即当第X+[Z+1]个待升级节点完成在线升级时,第X个待升级节点也已经完成业务数据的回迁过程,因此,第X个待升级节点完成在线升级后,可以直接从其备份节点处进行业务数据的回迁过程,且该回迁过程不影响后续待第X+1个待升级节点的在线升级过程。仍以图3所示的分布式存储系统中的5个待升级节点为例,这5个待升级节点的升级顺序为待升级节点1-待升级节点5,假设每一个待升级节点在线升级需要的时间为10分钟,而每一个待升级节点回迁业务数据需要的时间也为10分钟,此时,监控节点01在确定待升级节点1的备份节点时,可以将升级顺序在第1+[10/10+1]个待升级节点之后的待升级节点中的至少一个待升级节点,作为待升级节点1的备份节点,即:将第3个待升级节点至第5个待升级节点中的一个或多个作为待升级节点1的备份节点,例如,将第3个待升级节点作为待升级节点1的备份节点,这样一来,当待升级节点1完成在线升级后,可以直接触发待升级节点2进行在线升级,同时还可以触发待升级节点1从第3个待升级节点回迁需写入自身的业务数据,并且,由于待升级节点2在线升级需要的时间与待升级节点1回迁业务数据需要的时间相同,因此,当待升级节点2完成在线升级后,待升级节点1回迁业务数据也已完成,此时仍然可以直接触发待升级节点3进行在线升级。可以看出,本发明实施例提供的在线升级方法,由于严格控制了N个待升级节点的升级顺序,同时为每一个待升级节点选择升级顺序的排位较为靠后、或者已经完成升级的节点作为该待升级节点的备份节点,从而保证每一个待升级节点在线升级时不影响业务数据的读取和写入,并且,第X+1个待升级节点无需等待第X个待升级节点完成该业务数据的回迁,便可以在第X个待升级节点完成升级后直接开始在线升级,因此,分布式存储系统内的每一个待升级节点完成在线升级后可以直接进行业务数据的回迁过程,且回迁过程不影响后续待升级节点的在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间,提高了在线升级效率。基于上述在线升级方法,在一种可能的设计中,当X=1时,监控节点可设置第1个待升级节点的备份节点为第N个待升级节点;当1<X≤N时,监控节点可设置第X个待升级节点的备份节点为第X-1个待升级节点。也就是说,如图4所示,N个待升级节点02的升级顺序在逻辑上可以视为一个封闭的环形,其中,第X个待升级节点的备份节点为升级顺序排在第X个待升级节点前一个的待升级节点,例如,待升级节点3的备份节点为待升级节点2,备份节点用于在待升级节点在线升级时,临时代理该待升级节点存储需写入该待升级节点的业务数据,以保证分布式存储系统中的各个待升级节点在线升级时用户的读写业务不受影响。这样一来,由于严格控制了N个待升级节点的升级顺序,且第X个待升级节点的备份节点为升级顺序排在第X个待升级节点前一个的待升级节点,例如,第X-1个待升级节点,因此,当第X个待升级节点在线升级时,由第X-1个待升级节点代理第X个待升级节点存储需写入第X个待升级节点的业务数据,此时,第X-1个待升级节点已经升级完毕,而当第X个待升级节点在线升级完毕后,监控节点01可以直接向升级顺序排在第X个待升级节点后一个的待升级节点,例如第X+1个待升级节点,发送升级指令,并且指示第X个待升级节点从第X-1个待升级节点(即备份节点)中回迁本来需要写入第X个待升级节点,却临时写入第X-1个待升级节点的业务数据,也就是说,第X+1个待升级节点无需等待第X个待升级节点完成该业务数据的回迁,也无需计算待升级节点回迁业务数据的时间与在线升级的时间的比值,便可以在第X个待升级节点完成升级后直接开始在线升级,因此,分布式存储系统内的每一个待升级节点完成在线升级后可以直接进行业务数据的回迁过程,且回迁过程不影响后续待升级节点的在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间,提高了在线升级效率。进一步地,作为一种可能的实现方式,如图5所示,本发明实施例中的监控节点01可以具体用于执行升级控制服务和监控服务。例如,该升级控制服务可具体用于接收管理员下发的升级请求,监测每个待升级节点02的升级状态,收集并维护在线升级系统中的N个待升级节点02的状态,并对N个待升级节点02按照一定的规则进行排序,得到N个待升级节点02的升级顺序,并且,该升级控制服务可与监控服务进行交互,将N个待升级节点02的升级顺序、待升级节点02的升级状态等信息反馈给监控服务。相应的,监控服务可具体用于接收升级控制服务反馈的升级请求以及N个待升级节点02的升级顺序,并检测待升级节点02的状态,如果一个待升级节点02下线,监控服务可自动为该待升级节点02提供相应的备份节点,另外,当在线升级系统内的各种服务状态(如待升级节点02的切换、变更等)发生变化后,监控服务可将变化的信息自动推送到各个待升级节点02。需要说明的是,该升级控制服务和监控服务可作为功能模块承载在一个实体设备中,也可以分别设置在不同的实体设备中,又或者,可以以服务集群的形式实现上述升级控制服务和监控服务,本发明实施例对此不作任何限制。以下实施例中均以监控节点01为例详细阐述本发明的实施例提供的一种在线升级方法。如图6所示,图2中的监控节点01或任意待升级节点02可以以图6中的计算机设备(或系统)的方式来实现。图6所示为本发明实施例提供的计算机设备示意图。计算机设备100包括至少一个处理器11,通信总线12,存储器13以及至少一个通信接口14。处理器11可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specificintegratedcircuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。通信总线12可包括一通路,在上述组件之间传送信息。所述通信接口14,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(WirelessLocalAreaNetworks,WLAN)等。存储器13可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasableProgrammableRead-OnlyMemory,EEPROM)、只读光盘(CompactDiscRead-OnlyMemory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器13可以是独立存在,通过总线与处理器相连接。存储器13也可以和处理器集成在一起。其中,所述存储器13用于存储执行本发明方案的应用程序代码,并由处理器11来控制执行。所述处理器11用于执行所述存储器13中存储的应用程序代码。在具体实现中,作为一种实施例,处理器11可以包括一个或多个CPU,例如图6中的CPU0和CPU1。在具体实现中,作为一种实施例,计算机设备100可以包括多个处理器,例如图6中的处理器11和处理器18。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。在具体实现中,作为一种实施例,计算机设备100还可以包括输出设备15和输入设备16。输出设备15和处理器11通信,可以以多种方式来显示信息。例如,输出设备15可以是液晶显示器(liquidcrystaldisplay,LCD),发光二级管(lightemittingdiode,LED)显示设备,阴极射线管(cathoderaytube,CRT)显示设备,或投影仪(projector)等。输入设备16和处理器11通信,可以以多种方式接受用户的输入。例如,输入设备16可以是鼠标、键盘、触摸屏设备或传感设备等。上述的计算机设备100可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备100可以是台式机、便携式电脑、网络服务器、掌上电脑(PersonalDigitalAssistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图6中类似结构的设备。本发明实施例不限定计算机设备100的类型。需要说明的是,在本发明实例中,上述分布式存储系统中的任意一种功能节点,例如,监控节点01、待升级节点02,可能由一个实体设备实现,也可能由多个实体设备共同实现,分布式存储系统中的多个功能节点可能分别由不同的实体设备实现,也可能都由同一个实体设备实现。可以理解的是,分布式存储系统中的任意一种功能节点都可能是实体设备内的一个逻辑功能模块,也可能是由多个实体设备组成的一个逻辑功能模块。因此,在下述的本发明实施例中,可以由一个实体设备执行本发明实施例提供的方法中的各个步骤,可以由多个实体设备协作执行本发明实施例提供的方法中的各个步骤,对此本发明不作限定。实施例1基于图2-5所示的分布式存储系统,本发明的实施例提供一种在线升级方法,其中,监控节点在向N个待升级节点分别发送升级指令之前,可设置N个待升级节点02的升级顺序,并根据这N个待升级节点的升级顺序确定出每一个待升级节点的备份节点,得到节点备份信息,如图7所示,该方法具体包括:101、监控节点获取N个待升级节点的标识,N≥3。102、监控节点根据N个待升级节点的标识,设置N个待升级节点的升级顺序。103、监控节点根据N个待升级节点的升级顺序,确定N个待升级节点中每一个待升级节点的备份节点,得到节点备份信息,其中,当X=1时,第X个待升级节点的备份节点为第N个待升级节点;当1<X≤N时,第X个待升级节点的备份节点为第X-1个待升级节点。104、监控节点将节点备份信息发送至N个待升级节点,以使得N个待升级节点中的任意待升级节点在线升级时,需写入该待升级节点的业务数据按照该节点备份信息存储至该待升级节点的备份节点。在步骤101中,监控节点可以接收控制服务器发送的在线升级请求,或者,直接接收管理员在升级管理界面上触发的在线升级请求,该在线升级请求中携带有N个待升级节点的标识,进而,监控节点获取到该N个待升级节点的标识,N≥3。例如,当前的分布式存储系统中需要对分条1进行在线升级,分条1中包括10个条带块,这10个条带块分别存储在待升级节点1-10中,此时,监控节点可以接收管理员下发的在线升级请求,该在线升级请求中携带有上述待升级节点1-10的标识。由于在线升级请求中携带有N个待升级节点的标识,因此,在步骤102中,监控节点根据在线升级请求确定出需要升级的N个待升级节点,并依次设置这N个待升级节点的升级顺序。示例性的,监控节点可以根据这N个待升级节点的IP地址的大小,为这N个待升级节点进行排序,得到N个待升级节点的升级顺序,即第1个待升级节点、第2个待升级节点……第X个待升级节点……第N个待升级节点。又或者,监控节点可以根据这N个待升级节点的标识的大小进行排序,得到N个待升级节点的升级顺序,本发明实施例对此不做限定。在步骤103中,监控节点根据N个待升级节点的升级顺序,确定N个待升级节点中每一个待升级节点的备份节点,得到节点备份信息。其中,当X=1时,第X个待升级节点的备份节点为第N个待升级节点;当1<X≤N时,第X个待升级节点的备份节点为第X-1个待升级节点,也就是说,监控节点将升级顺序排在每一个待升级节点前的待升级节点,作为该待升级节点的备份节点,因此,当第X个待升级节点在线升级时,由第X-1个待升级节点代理第X个待升级节点存储需写入第X个待升级节点的业务数据。这样,在步骤104中,监控节点将上述节点备份信息发送至这N个待升级节点,由于节点备份信息中包括N个待升级节点中每一个待升级节点的备份节点,因此,每一个待升级节点便可确定自己的备份节点,以及其他N-1个待升级节点的备份节点,例如,当待升级节点1自己进行在线升级时,其他N-1个待升级节点便可以根据该节点备份信息将需要写入待升级节点1的业务数据发送至待升级节点1的备份节点,以保证分布式存储系统内用户的写入的业务数据的可靠性。至此,本发明的实施例提供一种在线升级方法,由于严格控制了N个待升级节点的升级顺序,且第X个待升级节点的备份节点为升级顺序排在第X个待升级节点前一个的待升级节点,因此,当第X个待升级节点在线升级时,由第X-1个待升级节点代理第X个待升级节点存储需写入第X个待升级节点的业务数据,此时,第X-1个待升级节点已经升级完毕,而当第X个待升级节点在线升级完毕后,监控节点可以直接向第X+1个待升级节点发送升级指令,并且指示第X个待升级节点从第X-1个待升级节点(即备份节点)中回迁本来需要写入第X个待升级节点,却临时写入第X-1个待升级节点的业务数据,也就是说,第X+1个待升级节点无需等待第X个待升级节点完成该业务数据回迁,便可以直接在线升级,因此,分布式存储系统内的待升级节点可以持续进行业务数据的回迁过程,且回迁过程不影响后续待升级节点的在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间,提高在线升级效率。实施例2基于上述实施例1中阐述的在线升级方法,本发明的实施例提供一种在线升级方法,在实施例1中监控节点确定出每一个待升级节点的备份节点以得到节点备份信息后,分布式存储系统内的各个待升级节点可进一步按照该备份信息进行在线升级,如图8所示,该方法具体包括以下步骤201-209:201、监控节点向N个待升级节点发送第一升级指令,该第一升级指令中携带有第1个待升级节点的标识。202、第1个待升级节点接收该第一升级指令后执行在线升级操作。203、若其他N-1个待升级节点接收到需写入该第1个待升级节点的业务数据,则按照节点备份信息将该业务数据发送至第N个待升级节点。204、当第1个待升级节点完成在线升级后,向监控节点发送升级完成响应。205、监控节点接收第1个待升级节点发送的升级完成响应后,向N个待升级节点发送第二升级指令,该第二升级指令中携带有第2个待升级节点的标识,以触发第2个待升级节点进行在线升级。206、监控节点向第1个待升级节点发送数据回迁指令。207、第1个待升级节点根据该数据回迁指令从第N个待升级节点处回迁该业务数据。208、若接收到第N-1个待升级节点发送的升级完成响应,则监控节点判断第1个待升级节点是否完成从第N个待升级节点处回迁业务数据。209、若第1个待升级节点已从第N个待升级节点处回迁完业务数据,则监控节点向N个待升级节点发送第三升级指令,第三升级指令中携带有第N个待升级节点的标识,以触发第N个待升级节点进行在线升级。在步骤201中,在监控节点将上述节点备份信息发送至这N个待升级节点之后,监控节点向N个待升级节点发送第一升级指令,该第一升级指令中携带有第1个待升级节点的标识,即监控节点向N个待升级节点通知当前进行在线升级的节点为第1个待升级节点。其中,第1个待升级节点的备份节点为最后一个待升级节点,即第N个待升级节点。在步骤202中,第1个待升级节点接收到该第一升级指令后,可立即执行在线升级操作。由于在第1个待升级节点执行在线升级操作的过程中,无法正常业务数据,因此,第1个待升级节点的备份节点,即第N个待升级节点,可代理第1个待升级节点存储需写入该第1个待升级节点的业务数据。进而,在步骤203中,若其他N-1个待升级节点接收到需写入该第1个待升级节点的业务数据,则按照节点备份信息将该业务数据发送至第N个待升级节点,由第N个待升级节点替第1个待升级节点临时保存这些业务数据。在步骤204中,当第1个待升级节点完成在线升级后,向监控节点发送升级完成响应。在步骤205中,监控节点接收第1个待升级节点发送的升级完成响应后,由于第1个待升级节点在线升级期间的业务数据都存储在第N个待升级节点,因此,第1个待升级节点从第N个待升级节点回迁该业务数据时并不会影响第2个待升级节点进行在线升级,因此,监控节点可以再次向N个待升级节点发送第二升级指令,该第二升级指令中携带有第2个待升级节点的标识,以触发第2个待升级节点进行在线升级,即监控节点向N个待升级节点通知当前进行在线升级的节点为第2个待升级节点。与步骤205相应的,由于第1个待升级节点在线升级期间的业务数据都存储在第N个待升级节点,因此,第2个待升级节点进行在线升级时,并不会影响第1个待升级节点从第N个待升级节点回迁该业务数据。因此,在步骤204之后,如步骤206所述,监控节点还可以向第1个待升级节点发送数据回迁指令。具体的,本发明实施例可以不限制步骤205和步骤206的执行顺序。即本发明实施例可以先执行步骤205,后执行步骤206;也可以先执行步骤206,后执行步骤205;还可以同时执行步骤205和步骤206。这样,在步骤207中,第1个待升级节点接收到该数据回迁指令之后,根据该数据回迁指令从自己的备份节点,即第N个待升级节点处,回迁第1个待升级节点在线升级时临时写入第N个待升级节点的业务数据。进一步地,与步骤201-207类似的,监控节点和待升级节点可以按照上述方法,依次对升级顺序中的第3个待升级节点至第N-1个待升级节点进行在线升级操作。在步骤208中,若监控节点接收到第N-1个待升级节点发送的升级完成响应,此时,与步骤205不同的是,监控节点需要判断第1个待升级节点是否完成从第N个待升级节点处回迁业务数据,即步骤207是否已经执行完毕。进一步地,在步骤209中,若第1个待升级节点已完成从第N个待升级节点处回迁业务数据,则与步骤205类似的,监控节点可以直接向N个待升级节点发送第三升级指令,该第三升级指令中携带有第N个待升级节点的标识,以触发第N个待升级节点进行在线升级。相应的,若第1个待升级节点从第N个待升级节点处回迁业务数据还未完成,则等待第1个待升级节点从第N个待升级节点处回迁完该业务数据后,监控节点再向第N个待升级节点发送上述第三升级指令,以触发分布式存储系统中的最后一个待升级节点,即第N个待升级节点,进行在线升级。至此,本发明的实施例提供一种在线升级方法,由于严格控制了N个待升级节点的升级顺序,且第X个待升级节点的备份节点为升级顺序排在第X个待升级节点前一个的待升级节点,因此,当第X个待升级节点在线升级时,由第X-1个待升级节点代理第X个待升级节点存储需写入第X个待升级节点的业务数据,此时,第X-1个待升级节点已经升级完毕,而当第X个待升级节点在线升级完毕后,监控节点可以直接向第X+1个待升级节点发送升级指令,并且指示第X个待升级节点从第X-1个待升级节点(即备份节点)中回迁本来需要写入第X个待升级节点,却临时写入第X-1个待升级节点的业务数据,也就是说,第X+1个待升级节点无需等待第X个待升级节点完成该业务数据回迁,便可以直接在线升级,因此,分布式存储系统内的待升级节点可以持续进行业务数据的回迁过程,且回迁过程不影响后续待升级节点的在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间,提高在线升级效率。实施例3图9为本发明实施例提供的一种监控节点的结构示意图,本发明实施例提供的监控节点可以用于实施上述图2-图8所示的本发明各实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图2-图8所示的本发明各实施例。具体的,如图9所示,该监控节点包括获取单元21、排序单元22、确定单元23以及发送单元24。其中,获取单元21,用于获取N个待升级节点的标识,N≥3;排序单元22,用于根据所述N个待升级节点的标识,设置所述N个待升级节点的升级顺序,其中,所述N个待升级节点的升级顺序均不同;确定单元23,用于根据所述N个待升级节点的升级顺序,确定所述N个待升级节点中每一个待升级节点的备份节点,得到节点备份信息,所述节点备份信息包含每一个待升级节点的标识与该待升级节点的备份节点的标识之间的对应关系,其中,第X个待升级节点的备份节点为:在所述升级顺序中,第X个待升级节点之前的待升级节点与第X+[Z+1]个待升级节点之后的待升级节点组成的集合中的至少一个,Z为所述第X个待升级节点回迁业务数据的时间与在线升级的时间的比值,1≤X≤N;发送单元24,用于将所述节点备份信息发送至所述N个待升级节点,以使得所述N个待升级节点中的任意待升级节点在线升级时,需写入该待升级节点的业务数据按照所述节点备份信息存储至该待升级节点的备份节点。进一步地,当X=1时,第X个待升级节点的备份节点为第N个待升级节点;当1<X≤N时,第X个待升级节点的备份节点为第X-1个待升级节点。其中,所述发送单元24,还用于向所述N个待升级节点发送第一升级指令,所述第一升级指令中携带有第1个待升级节点的标识,所述第一升级指令用于触发所述第1个待升级节点进行在线升级;所述获取单元21,还用于接收所述第1个待升级节点发送的升级完成响应;所述发送单元24,还用于向所述第1个待升级节点发送数据回迁指令,以使得所述第1个待升级节点根据所述数据回迁指令从所述第N个待升级节点处回迁需写入所述第1个待升级节点的业务数据。进一步地,所述发送单元24,还用于发送第二升级指令至所述N个待升级节点,所述第二升级指令中携带有第X个待升级节点的标识,所述第二升级指令用于触发所述第X个待升级节点进行在线升级。进一步地,如图10所示,所述监控节点还包括判断单元25,其中,所述判断单元25,用于若接收到第N-1个待升级节点发送的升级完成响应,则判断所述第1个待升级节点是否完成从所述第N个待升级节点处回迁所述业务数据;所述发送单元24,还用于若所述第1个待升级节点已完成从所述第N个待升级节点处回迁所述业务数据,则所述监控节点向所述N个待升级节点发送第三升级指令,所述第三升级指令中携带有第N个待升级节点的标识,所述第三升级指令用于触发所述第N个待升级节点进行在线升级。上述获取单元21、排序单元22、确定单元23、发送单元24以及判断单元25均可以通过图6所示的处理器11调用存储器13中的指令实现。图11为本发明实施例提供的一种待升级节点的结构示意图,本发明实施例提供的监控节点可以用于实施上述图2-图8所示的本发明各实施例实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照图2-图8所示的本发明各实施例。具体的,如图11所示,该待升级节点包括获取单元31以及升级单元32。其中,获取单元31,用于获取监控节点发送的节点备份信息,其中,所述节点备份信息中包括N个待升级节点中每一个待升级节点的标识与该待升级节点的备份节点的标识之间的对应关系,N≥3;接收所述监控节点发送的本节点升级指令,所述本节点升级指令中携带有第一待升级节点的标识,所述第一待升级节点为所述N个待升级节点中的任一个;升级单元32,用于根据所述本节点升级指令,执行在线升级操作。进一步地,如图12所示,所述待升级节点还包括发送单元33和回迁单元34,其中,发送单元33,用于向所述监控节点发送升级完成响应;获取单元31,还用于接收所述监控节点发送的数据回迁指令;回迁单元34,用于根据所述数据回迁指令,从所述第一待升级节点的备份节点中回迁需写入所述第一待升级节点的业务数据。进一步地,如图13所示,所述待升级节点还包括确定单元35,其中,所述获取单元31,还用于接收所述监控节点发送的非本节点升级指令,所述非本节点升级指令中携带有第二待升级节点的标识,所述第二待升级节点为所述N个待升级节点中除所述第一待升级节点外的任一个待升级节点;所述确定单元35,用于根据所述非本节点升级指令,按照所述节点备份信息确定所述第二待升级节点的备份节点;发送单元33,还用于若接收到需写入所述第二待升级节点的业务数据,则将所述业务数据发送至所述第二待升级节点的备份节点。上述获取单元31、升级单元32、发送单元33、回迁单元34以及确定单元35均可以通过图6所示的处理器11调用存储器13中的指令实现。至此,本发明的实施例提供一种在线升级装置,由于严格控制了N个待升级节点的升级顺序,同时为每一个待升级节点选择升级顺序的排位较为靠后、或者已经完成升级的节点作为该待升级节点的备份节点,从而保证每一个待升级节点在线升级时不影响业务数据的读取和写入,并且,第X+1个待升级节点无需等待第X个待升级节点完成该业务数据的回迁,便可以在第X个待升级节点完成升级后直接开始在线升级,因此,分布式存储系统内的每一个待升级节点完成在线升级后可以直接进行业务数据的回迁过程,且回迁过程不影响后续待升级节点的在线升级,从而大大缩短了分布式存储系统内各个待升级节点进行在线升级的时间,提高了在线升级效率。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1