CN109445984B - 一种业务恢复方法、装置、仲裁服务器以及存储*** - Google Patents
一种业务恢复方法、装置、仲裁服务器以及存储*** Download PDFInfo
- Publication number
- CN109445984B CN109445984B CN201811015654.6A CN201811015654A CN109445984B CN 109445984 B CN109445984 B CN 109445984B CN 201811015654 A CN201811015654 A CN 201811015654A CN 109445984 B CN109445984 B CN 109445984B
- Authority
- CN
- China
- Prior art keywords
- arbitration
- storage array
- state
- result
- arbitration result
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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 persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
一种业务恢复方法、装置、仲裁服务器以及存储***,该方法包括:在存储***由双从状态切换到故障恢复状态后,第一存储阵列首先向仲裁服务器发送第一仲裁请求,当仲裁服务器接收该第一存储阵列发送的该第一仲裁请求后,则确定该第一存储阵列的第一仲裁结果以及该第二存储阵列的第二仲裁结果,在确定该第一仲裁结果和第二仲裁结果之后,则向第一存储阵列发送该第一仲裁结果以及向第二存储阵列发送该第二仲裁结果。该第一存储阵列在接收根据该第一仲裁结果后,则向该第二存储阵列发起协商,确定协商结果,若确定协商结果为该第一存储阵列为获胜winning状态且该第二存储阵列为失败losing状态,则该第一存储阵列向客户端提供业务服务。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种业务恢复方法、装置、仲裁服务器以及存储***。
背景技术
随着互联网时代的到来,各行各业的业务需求越来越多。为了保证服务的可靠性,采用双活存储***提供云计算服务。
请参考图1,为双活存储***的一种结构示意图。如图1所示,双活存储***中包括仲裁服务器以及两个互为备份的存储阵列(分别为存储阵列A和存储阵列B)。当双活存储***正常运行时,两个存储阵列均处于运行状态,且由两个存储阵列同时提供业务。当存储阵列A掉电或者发生设备故障等,导致无法处理业务,则由仲裁服务器对将存储阵列A和存储阵列B的状态进行仲裁,从而原先分布在存储阵列A上的业务,平滑到存储阵列B接管,该双活存储***的工作模式由原先的存储阵列A和存储阵列B同时提供业务,变由存储阵列B独立提供业务。这样,可以给用户提供较高的数据可靠性以及业务连续性。
然而,由于组网环境的局限性,双活存储***在使用过程中,会大量遇到由于网络故障、供电故障等原因导致双活存储***出现两个存储阵列均无法处理业务的双从状态。当双活存储***处于双从状态后,即使故障恢复,也需要人工对各个存储阵列的日志进行分析,然后,选择其中一个存储阵列拉起业务。而人工分析日志所需的时间较长,往往影响业务的及时恢复。
发明内容
本申请实施例提供一种业务恢复方法、装置、仲裁服务器以及存储***,用于提高双活存储***的业务恢复效率。
第一方面,本申请实施例提供一种业务恢复方法,应用于存储***,该存储***包括第一存储阵列、第二存储阵列以及仲裁服务器,在所述存储***由双从状态切换到故障恢复状态后,第一存储阵列首先向仲裁服务器发送第一仲裁请求,当仲裁服务器接收该第一存储阵列发送的该第一仲裁请求后,则确定该第一存储阵列的第一仲裁结果以及该第二存储阵列的第二仲裁结果,在确定该第一仲裁结果和第二仲裁结果之后,则向第一存储阵列发送该第一仲裁结果以及向第二存储阵列发送该第二仲裁结果。该第一存储阵列在接收根据该第一仲裁结果后,则向该第二存储阵列发起协商,确定协商结果,若确定协商结果为该第一存储阵列为获胜winning状态且该第二存储阵列为失败losing状态,则该第一存储阵列向客户端提供业务服务。
在上述技术方案中,当存储***从双从状态变为故障恢复状态后,可以通过第一存储阵列主动发送协商过程,自动确定获胜的存储阵列,并由获胜的存储阵列主动拉起业务,从而可以减少人为操作拉起业务的等待时间,可以提高存储***的业务恢复效率。
在一种可能的设计中,该第一存储阵列在接收该第一仲裁结果后,则向该第二存储阵列发起协商,当第二存储阵列接收该协商请求后,则向第一存储阵列反馈该仲裁服务器对该第二存储阵列的仲裁结果,也就是第二仲裁结果。该第一存储阵列再从该第二存储阵列接收该第二仲裁结果后,则根据该第一仲裁结果和该第二仲裁结果,确定协商结果。
在上述技术方案中,第一存储阵列可以根据仲裁服务器发送的仲裁结果发起协商,可以提高协商结果的准确性。
在一种可能的设计中,该第一存储阵列可以根据如下协商原则,确定协商结果,该协商原则可以包括但不限于如下几种情况:
若该第一仲裁结果为获胜winning状态,该第二仲裁结果为检查checking状态,则该第一存储阵列确定该第一存储阵列为winning状态且该第二存储阵列为losing状态;或
若该第一仲裁结果为获胜winning状态,该第二仲裁结果为losing状态,则该第一存储阵列确定该第一存储阵列为winning状态且该第二存储阵列为losing状态;或
若该第一仲裁结果为失败losing状态,该第二仲裁结果为winning状态,则该第一存储阵列确定该第一存储阵列为losing状态且该第二存储阵列为winning状态;或
若该第一仲裁结果为检查checking状态,该第二仲裁结果为checking状态,则该第一存储阵列确定该第一存储阵列为winning状态且该第二存储阵列为losing状态。
在上述技术方案中,通过预先上述多种协商原则,可以增加存储***在恢复业务过程中的灵活性。
在一种可能的设计中,在该第一存储阵列向客户端提供业务服务之后,该第一存储阵列向该第二存储阵列发送同步数据。
当第一存储阵列提供业务服务后,则将业务的最新数据发送给第二存储阵列,从而第二使存储阵列中的业务数据与第一存储阵列同步,待第一存储阵列的差异数据全部同步到第二存储阵列以后,存储***双活特性恢复,从而可由第一存储阵列和第二存储阵列同时提供业务。
在一种可能的设计中,若在该第一存储阵列与该第二存储阵列之间的复制链路断开且在处于该双从状态之前,该仲裁服务器根据接收的该第一存储阵列发送的第三仲裁请求和/或该第二存储阵列发送的第四仲裁请求,已经确定并存储仲裁结果,且未反馈给该第一存储阵列以及该第二存储阵列,那么,该仲裁服务器在接收第一存储阵列发送的第一仲裁请求后,则直接从存储的仲裁结果中确定该第一仲裁结果及该第二仲裁结果。
在上述技术方案中,若仲裁服务器在存储***变为双从之前,已经存储有第一存储阵列的仲裁结果和第二存储阵列的仲裁结果,则仲裁服务器可以直接将存储的仲裁结果发送给第一存储阵列和第二存储阵列,可以减少仲裁服务器的能耗。
在一种可能的设计中,仲裁服务器中存储的仲裁结果包括但不限于如下几种情况:
该第一仲裁结果为检查winning状态以及该第二仲裁结果为losing状态;或
该第一仲裁结果为未知winning状态以及该第二仲裁结果为checking状态;或
所述第一仲裁结果为检查losing状态以及该第二仲裁结果为winning状态;
该第一仲裁结果为检查checking状态以及该第二仲裁结果为checking状态。
在一种可能的设计中,若仲裁服务器在确定该第一存储阵列的第一仲裁结果以及该第二存储阵列的第二仲裁结果之前,从该第二存储阵列接收第二仲裁请求,则仲裁服务器根据接收该第一仲裁请求及接收该第二仲裁请求的先后顺序,确定该第一仲裁结果及该第二仲裁结果。例如,该仲裁服务器先接收该第一仲裁请求,然后才接收该第二仲裁请求,则该仲裁服务器确定第一仲裁结果为winning状态,以及该第二仲裁结果为losing状态。
在上述技术方案中,仲裁服务器也可以根据接收到两个存储阵列的仲裁请求的先后顺序确定仲裁结果,例如,将与先收到的仲裁请求对应的存储阵列确定为winning状态,而另一存储阵列则确定为losing状态,可以提高仲裁服务器的灵活性。
在一种可能的设计中,若仲裁服务器确定在接收到该第一仲裁请求开始的预设时长内未从该第二存储阵列接收第二仲裁请求,则该仲裁服务器确定第一仲裁结果为winning状态,以及该第二仲裁结果为checking状态。
在上述技术方案中,若仲裁服务器未收到某个存储阵列的仲裁请求,则可以认为该存储阵列发生故障,从而可以将与收到的仲裁请求对应的存储阵列设置为winning状态,将未收到仲裁请求的存储阵列设置为checking状态,可以提高仲裁服务器的灵活性。
第二方面,本申请实施例提供一种业务恢复装置,应用于第一存储阵列,该第一存储阵列位于一存储***中,该存储***还包括第二存储阵列以及仲裁服务器,该装置包括处理器,用于实现上述第一方面描述的方法中由第一存储阵列执行的方法。该装置还可以包括存储器,用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储器中存储的程序指令,用于实现上述第一方面描述的方法中由第一存储阵列执行的方法。该装置还可以包括通信接口,该通信接口用于该装置与其它设备进行通信。示例性地,该其它设备包括上述第一方面中提及的第二存储阵列或仲裁服务器。
在一种可能的设计中,该装置包括通信接口和处理器,具体地,在该存储***由双从状态切换到故障恢复状态后,该处理器通过该通信接口向仲裁服务器发送第一仲裁请求,并通过该通信接口从该仲裁服务器接收第一仲裁结果,以及根据该第一仲裁结果,通过该通信接口向该第二存储阵列发起协商,确定协商结果,若确定协商结果为该第一存储阵列为获胜winning状态且该第二存储阵列为失败losing状态,则该处理器通过该通信接口向客户端提供业务服务。
在一种可能的设计中,该处理器根据该第一仲裁结果,通过该通信接口向该第二存储阵列发起协商,并该通信接口从该第二存储阵列接收第二仲裁结果,该第二仲裁结果为该仲裁服务器对该第二存储阵列的仲裁结果,根据该第一仲裁结果和该第二仲裁结果,确定协商结果。
在一种可能的设计中,若该第一仲裁结果为获胜winning状态,该第二仲裁结果为检查checking状态,该处理器确定该存储阵列为winning状态且该第二存储阵列为losing状态;或,若该第一仲裁结果为获胜winning状态,该第二仲裁结果为losing状态,该处理器确定该存储阵列为winning状态且该第二存储阵列为losing状态;或,若该第一仲裁结果为失败losing状态,该第二仲裁结果为winning状态,该处理器确定该存储阵列为losing状态且该第二存储阵列为winning状态;或,若该第一仲裁结果为检查checking状态,该第二仲裁结果为checking状态,该处理器确定该存储阵列为winning状态且该第二存储阵列为losing状态。
在一种可能的设计中,在该处理器通过该通信接口向客户端提供业务服务之后,该处理器还用于向该第二存储阵列发送同步数据。
第三方面,本申请实施例提供一种仲裁服务器,位于一存储***中,该存储***还包括第一存储阵列和第二存储阵列,该仲裁服务器包括处理器,用于实现上述第一方面描述的方法中由仲裁服务器执行的方法。该仲裁服务器还可以包括存储器,用于存储程序指令和数据。该存储器与该处理器耦合,该处理器可以调用并执行该存储器中存储的程序指令,用于实现上述第一方面描述的方法中由仲裁服务器执行的方法。该仲裁服务器还可以包括通信接口,该通信接口用于该仲裁服务器与其它设备进行通信。示例性地,该其它设备包括上述第一方面中提及的第一存储阵列或第二存储阵列。
在一种可能的设计中,该仲裁服务器包括处理器和通信接口,具体地,在该存储***由双从状态切换到故障恢复状态后,该处理器通过该通信接口从第一存储阵列接收第一仲裁请求,该处理器确定该第一存储阵列的第一仲裁结果以及该第二存储阵列的第二仲裁结果,该处理器通过该通信接口向该第一存储阵列发送该第一仲裁结果,以及,通过该通信接口向该第二存储阵列发送该第二仲裁结果。
在一种可能的设计中,该处理器从存储的仲裁结果中确定该第一仲裁结果及该第二仲裁结果,该存储的仲裁结果为在该存储***的复制链路断开且处于该双从状态之前,由该仲裁服务器确定的且未反馈给该第一存储阵列以及该第二存储阵列的仲裁结果,该复制链路为该第一存储阵列与该第二存储阵列之间的链路;
该处理器在该存储***的复制链路断开且在处于该双从状态之前,该处理器根据通过该通信接口接收的该第一存储阵列发送的第三仲裁请求和/或通过该通信接口接收的该第二存储阵列发送的第四仲裁请求,确定该存储的仲裁结果。
在一种可能的设计中,该存储的仲裁结果包括:
该第一仲裁结果为检查winning状态以及该第二仲裁结果为losing状态;或
该第一仲裁结果为未知winning状态以及该第二仲裁结果为checking状态;或
该第一仲裁结果为检查losing状态以及该第二仲裁结果为winning状态;
该第一仲裁结果为检查checking状态以及该第二仲裁结果为checking状态。
在一种可能的设计中,在处理器确定该第一存储阵列的第一仲裁结果以及该第二存储阵列的第二仲裁结果之前,通过该通信接口从该第二存储阵列接收第二仲裁请求,该处理器根据接收该第一仲裁请求及接收该第二仲裁请求的先后顺序,确定该第一仲裁结果及该第二仲裁结果,若该处理器接收该第一仲裁请求后才接收该第二仲裁请求,则确定第一仲裁结果为winning状态,以及该第二仲裁结果为losing状态。
在一种可能的设计中,该处理器确定在通过该通信接口接收到该第一仲裁请求开始的预设时长内未从该第二存储阵列接收第二仲裁请求,则确定第一仲裁结果为winning状态,以及该第二仲裁结果为checking状态。
第四方面,本申请实施例提供一种业务恢复装置,应用于第一存储阵列,该第一存储阵列位于一存储***中,该存储***还包括第二存储阵列以及仲裁服务器,该装置可以包括收发单元和处理单元,这些模块可以执行上述第一方面任一种设计示例中第一存储阵列相应的功能,且这些模块可以通过软件模块实现,也可以通过相应的硬件实体实现,比如当通过相应的硬件实体实现时,收发单元的功能与上述第二方面中通信接口的功能类似,处理单元与上述第二方面中处理器的功能类似。
第五方面,本申请实施例提供一种仲裁服务器,该仲裁服务器可以包括收发单元和处理单元,这些模块可以执行上述第一方面任一种设计示例中仲裁服务器相应的功能,且这些模块可以通过软件模块实现,也可以通过相应的硬件实体实现,比如当通过相应的硬件实体实现时,收发单元的功能与上述第三方面中通信接口的功能类似,处理单元与上述第三方面中处理器的功能类似。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中由第一存储阵列执行的任意一项所述的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中由仲裁服务器执行的任意一项所述的方法。
第八方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中由第一存储阵列执行的任意一项所述的方法。
第九方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面中由仲裁服务器执行的任意一项所述的方法。
第十方面,本申请提供了一种芯片***,该芯片***包括处理器,还可以包括存储器,用于实现第一方面由第一存储阵列执行的方法或由仲裁服务器执行的方法。该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
第十一方面,本申请提供了一种存储***,该存储***包括第二方面或第四方面的业务恢复装置和第三方面或第五方面的仲裁服务器。
第十二方面,本申请提供了一种存储***,该存储***包括第二方面或第四方面的业务恢复装置、第三方面或第五方面的仲裁服务器以及第二存储阵列。
上述第二方面至第十二方面及其实现方式的有益效果可以参考对第一方面的方法及其实现方式的有益效果的描述。
附图说明
图1为本申请实施例提供的一种双活存储***的结构图;
图2为本申请实施例提供的另一种双活存储***的结构图;
图3A为本申请实施例提供的另一种双活存储***的结构图;
图3B为本申请实施例提供的另一种双活存储***的结构图;
图4为本申请实施例提供的业务恢复方法的一种示例的流程图;
图5为本申请实施例中存储阵列的状态变化过程的示意图;
图6为本申请实施例提供的业务恢复方法的另一种示例的流程图;
图7为本申请实施例提供的一种业务恢复装置的结构示意图;
图8为本申请实施例提供的另一种业务恢复装置的结构示意图;
图9为本申请实施例提供的一种仲裁服务器的结构示意图;
图10为本申请实施例提供的另一种仲裁服务器的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合说明书附图以及具体的实施方式对本申请实施例中的技术方案进行详细的说明。
本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
另外,需要理解的是,本申请实施例涉及的“多个”,是指两个或大于两个。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本申请实施例提供一种业务恢复方法,该方法应用于双活存储***中。该双活存储***可以为文件存储***、块存储***或者对象存储***,或者上述存储***的组合,在本申请实施例中不作限制。
请参考图1~图3B,为本申请实施例中的双活存储***的四种可能的架构图。如图1所示的双活存储***已在前文中进行了描述,在此不再赘述。与图1所示的双活存储***不同的是,在图2所示的双活存储***中,每个存储阵列是由多个存储节点构成的一种耦合的节点集合,协同起来对外提供服务。如图2所示,该双活存储***的存储阵列A中包括存储节点0~存储节点2,存储阵列B中包括存储节点3~存储节点5。
需要说明的是,在图1或图2所示的双活存储***中,存储阵列A和存储阵列B可以位于同一个区域(region)内,如图3A所示,存储阵列A和存储阵列B位于同一个region内,存储阵列A和存储阵列B之间可以是通过高速网络连接,从而保证有较低的时延。存储阵列A和存储阵列B也可以位于不同的region中,如图3B所示,存储阵列A位于region1中,存储阵列B位于region2中,各个region之间支持光纤通道(fiber channel,FC)、互联网小型计算机***接口(internet small computer system interface,iSCSI)等有线连接的网络。
需要说明的是,双活存储***不限于如图1~图3B所示的架构,本申请实施例描述的双活存储***是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着存储技术和存储***架构的演变,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以下,对与存储***相关的术语进行说明,以便于本领域技术人员理解。
(1)复制链路,表示双活存储***中两个存储阵列之间的链路。
(2)仲裁链路,表示双活存储***中的两个存储阵列分别与仲裁服务器之间的链路,例如,存储阵列A与仲裁服务器之间的链路以及存储阵列B和仲裁服务器之间的链路。
(3)双活,表示两个存储阵列互为备份,且都处于运行状态,可以同时处理相同的业务。当双活存储***中的一个存储阵列发生故障时,业务迅速地切换到另一个存储阵列,保证业务的连续性。
(4)双从,表示两个存储阵列均无法处理业务。当双活存储***中的业务无法切换至任一存储阵列时,业务中断。导致双活存储***变为双从状态的原因包括但不限于如下三种:a)双活存储***的两个阵列同时掉电;b)双活存储***的两个阵列和仲裁服务器同时掉电;c)双活存储***的复制链路和仲裁链路同时故障。
(5)一致性组,由双活存储***中互为备份的两个存储阵列上的逻辑存储单元(logic unit number,LUN)或者文件构成。构成一致性组的两个存储阵列中设置有优先阵列和非优先阵列,例如,存储阵列A为优先阵列,存储阵列B为非优先阵列。
(6)仲裁服务器,当复制链路断开,仲裁服务器以双活一致性组为单位进行仲裁。仲裁服务器可以是独立的设备,该设备可以是计算机或者移动终端等,也可以是逻辑概念,例如为软件模块,或者,为虚拟化实现下的一个虚拟机,在此不作限制。
下面,以图1所述的双活存储***,且导致双活存储***变为双从的原因为复制链路和仲裁链路同时故障为例,对现有技术中的业务恢复流程进行介绍。
步骤1、双活存储***正常使用时,由两个存储阵列同时提供业务,例如,设置存储阵列A处理一部分任务,存储阵列B处理另一部分业务。当存储阵列A或者存储阵列B处理业务时,会实时对方发送同步数据,以使两个存储阵列中的数据同步。例如,当存储阵列A处理业务1时,存储阵列A会将业务1的数据发送给存储阵列B,或者,当存储阵列B处理业务2时,存储阵列B也会将业务2的数据发送给存储阵列A。
在这种情况下,由于不需要仲裁服务器进行仲裁,因此,存储阵列A和存储阵列B在仲裁服务器中的状态为未知unknown状态。
步骤2、当双活存储***的机房掉电,或者存储阵列A、存储阵列B以及仲裁服务器同时掉电,或者在复制链路发生故障后,存储阵列A与仲裁服务器之间的仲裁链路以及存储阵列B与仲裁服务器之间的仲裁链路也发生故障等,在这种情况下,仲裁服务器将无法对存储阵列进行仲裁。存储阵列A和存储阵列B确定仲裁超时,从而存储阵列A和存储阵列B均变为losing状态,从而双活存储***则变为双从状态。
步骤3、当复制链路和仲裁链路的故障恢复后,为了保证业务的延续性,需要选择存储有该业务的最新的数据对应的存储阵列继续处理该业务,因此,需要技术人员对两个存储阵列的日志进行分析,确定每个存储阵列变为losing状态的时间点。由于存储阵列A变为losing状态的时间晚于存储阵列B,因此,技术人员选择存储阵列A拉起业务。存储阵列A在接收该拉起业务的指令后,则继续处理业务。
由于人工分析存储阵列的日志所需的时间较长,因此,现有技术中的业务恢复方法存在影响业务的及时恢复的问题。
鉴于此,本申请实施例提供一种业务恢复方法,用于提高双活存储***的业务恢复效率。下面结合附图介绍本申请实施例提供的技术方案。
请参考图4,为本申请实施例提供的业务恢复方法的流程图,该流程的描述如下:
步骤401、存储***正常运行,存储阵列处理业务。
在本申请实施例中,该存储***包括第一存储阵列、第二存储阵列以及仲裁服务器,可以理解为该存储***为双活存储***,具体可以是如图1~图3B所示的存储***中的其中一种。为方便说明,在下面的介绍中,将以图1所示的存储***为例进行说明,也就是说,第一存储阵列为图1中的存储阵列A,第二存储阵列为图1中的存储阵列B,仲裁服务器为图1中的仲裁服务器。
当存储***正常运行时,则由存储阵列A和存储阵列B一起处理业务。具体过程与现有技术中的步骤1相同,在此不再赘述。
需要说明的是,由于存储***正常运行时不需要仲裁服务器进行仲裁,因此,存储阵列A和存储阵列B在仲裁服务器中的状态均为unknown状态。请参考图5,为本申请实施例中存储阵列的状态变化过程。在这种情况下,存储阵列的状态为状态1。
步骤402、存储***的复制链路发生故障,存储阵列A向仲裁服务器发送第三仲裁请求和/或存储阵列B向仲裁服务器发送第四仲裁请求,仲裁服务器接收该仲裁请求。
需要说明的是,第三仲裁请求和第四仲裁请求分别为存储***在变成双从状态以前发送的仲裁请求。
具体来讲,存储阵列A向仲裁服务器发送第三仲裁请求和/或存储阵列B向仲裁服务器发送第四仲裁请求,包括如下三种情况:
第一种发送情况:当存储阵列A和存储阵列B之间的复制链路发生故障,例如,该复制链路断开等,若存储阵列A和存储阵列B均处于正常状态,也就是说,存储阵列A和存储阵列B均处于上电状态且未发生设备故障,则存储阵列A和存储阵列B均会向仲裁服务器发送仲裁请求,若存储阵列A和存储阵列B与仲裁服务器之间的仲裁链路未发生故障,则仲裁服务器分别接收到两个存储阵列发送的两个仲裁请求,即该第三仲裁请求和该第四仲裁请求。若其中一个存储阵列与仲裁服务器之间的仲裁链路发生故障,则虽然该存储阵列向仲裁服务器发送了仲裁请求,但仲裁服务器无法接收该仲裁请求。例如,存储阵列A与仲裁服务器之间的仲裁链路断开,则仲裁服务器无法接收存储阵列A发送的第三仲裁请求。
第二种发送情况:若存储阵列A处于正常状态,而存储阵列B掉电或者发生设备故障,则仅存储阵列A向仲裁服务器发送第三仲裁请求,若存储阵列A与仲裁服务器之间的仲裁链路未发生故障,仲裁服务器仅接收存储阵列A发送的第三仲裁请求。
第三种发送情况:若存储阵列B处于正常状态,而存储阵列A掉电或者发生设备故障,则仅存储阵列B向仲裁服务器发送第四仲裁请求,若存储阵列B与仲裁服务器之间的仲裁链路未发生故障,仲裁服务器仅接收存储阵列B发送的第四仲裁请求。
需要说明的是,在步骤402中,存储***还未处于双从状态,只是由于复制链路发生故障而触发仲裁过程。另外,在本申请实施例中,仲裁请求可以是一个携带特定内容的数据包或者携带有特定包头的空包,该特定内容和特定包头为仲裁服务器和存储阵列预先约定的,当然,仲裁请求也可以是其他形式,在此不作限制。在图4中,以存储阵列A向仲裁服务器发送第三仲裁请求,以及存储阵列B向仲裁服务器发送第四仲裁请求为例。
步骤403、仲裁服务器确定并存储仲裁结果。
在本申请实施例中,仲裁服务器确定仲裁结果包括但不限于如下两种方式。下面对这两种方式分别进行说明。
第一种确定方式,仲裁服务器根据接收的第三仲裁请求和/或第四仲裁请求,确定仲裁结果。下面针对不同的仲裁过程进行说明。
第一种仲裁过程,若仲裁服务器分别接收到两个存储阵列发送的第三仲裁请求和第四仲裁请求,则仲裁服务器根据接收到第三仲裁请求和第四仲裁请求的先后顺序,确定仲裁结果,即,先接收到某个存储阵列发送的仲裁请求,则确定该存储阵列的仲裁结果为winning状态,而另一个存储阵列的仲裁结果则为losing状态。例如,仲裁请求中携带有存储阵列的标识信息,该标识信息可以是存储阵列的编号或者索引号等,仲裁服务器在接收到第一个仲裁请求后,从该仲裁请求中获取存储阵列的标识信息,例如,仲裁服务器确定接收到的第一个仲裁请求中携带存储阵列A的编号,则确定存储阵列A的仲裁结果为winning状态,存储阵列B的仲裁结果为losing状态。
第二种仲裁过程,若仲裁服务器仅接收一个存储阵列发送的仲裁请求,则仲裁服务器可以根据该仲裁请求中携带的存储阵列的标识信息,确定该仲裁请求的发送方为存储阵列A或者为存储阵列B,并确定发送该仲裁请求的存储阵列为winning状态,而另一个存储阵列即为losing状态或者unknown状态或者检查checking状态。例如,仲裁服务器确定接收的仲裁请求中携带存储阵列A的编号,则仲裁服务器确定存储阵列A的仲裁结果为winning状态,存储阵列B的仲裁结果为checking状态。
需要说明的是,当某个存储阵列的状态为checking状态,则表示该存储阵列为不可读写的状态。
第三种仲裁过程,仲裁服务器也可以根据接收的仲裁请求和其他信息一起确定存储阵列的仲裁结果,该其他信息可以为存储阵列的心跳。例如,存储阵列A和存储阵列B分别向仲裁服务器发送了第三仲裁请求和第四仲裁请求,但由于仲裁服务器与存储阵列B之间的仲裁链路发生故障,导致仲裁服务器仅接收一个存储阵列发送的仲裁请求,仲裁服务器根据该仲裁请求中携带的存储阵列的标识信息确定该仲裁请求的发送方为存储阵列A,则仲裁服务器根据接收到的仲裁请求确定未收到仲裁请求的存储阵列B的仲裁结果为checking状态。若存储阵列A在发出第三仲裁请求的时刻,由于其他原因导致掉电,则仲裁服务器确定接收到该存储阵列A发送的第三仲裁请求却无法检测该存储阵列的心跳,从而确定存储阵列A的仲裁结果为checking状态。需要说明的是,仲裁服务器可以通过每个存储阵列的心跳确定各个存储阵列是否处于正常状态,例如,每个存储阵列可以周期性向仲裁服务器发送心跳,若检测到某个存储阵列的心跳,则确定该存储阵列为正常状态,若无法检测某个存储阵列的心跳,则确定该存储阵列为故障状态。用于承载各个存储阵列的心跳的通信链路与仲裁链路相同,例如,iSCSI链路等。
当然,仲裁服务器也可以采用其他方式确定仲裁结果,在此不一一列举。请继续参考图5,在这种情况下,存储阵列的状态变为:若仲裁结果为成功,则变为winning状态,即状态2,若仲裁结果为失败,则变为losing状态,即状态3。
当仲裁服务器确定仲裁结果后,则存储该仲裁结果。
步骤404、存储阵列A以及存储阵列B的状态均为checking状态,存储***变为双从状态。
若存储阵列的机房掉电,或者存储阵列A、存储阵列B以及仲裁服务器同时掉电,或者在复制链路发生故障后,存储阵列A与仲裁服务器之间的仲裁链路以及存储阵列B与仲裁服务器之间的仲裁链路也发生故障等,导致仲裁服务器确定存储阵列A和存储阵列B的仲裁结果之后,无法将仲裁结果发送给存储阵列,因此,由于存储阵列A和存储阵列B未收到仲裁结果,因此,存储阵列A和存储阵列B的状态均为checking状态,存储***将变为双从状态。在这种情况下,存储阵列A和存储阵列B均处于不可读写的状态,无法提供业务。
请继续参考图5,在这种情况下,由于存储***变为双从状态,则存储阵列的状态变化为checking状态,即状态4。
需要说明的是,导致存储***变为双从状态的场景包括但不限于上述情况,在本申请实施例中不作限制。
步骤401~步骤404为可选步骤,即不是必须要执行的,在图4中以虚线为例进行说明。
步骤405、存储***由双从状态切换到故障恢复状态,存储阵列A向仲裁服务器发送第一仲裁请求,仲裁服务器接收该第一仲裁请求。
若由于存储***的机房掉电或者存储阵列A、存储阵列B以及仲裁服务器同时掉电导致存储***变为双从状态,则当存储***上电后,则存储阵列A会向仲裁服务器发送第一仲裁请求。或者,若由于存储***的复制链路、存储阵列A与仲裁服务器之间的仲裁链路以及存储阵列B与仲裁服务器之间的仲裁链路发生故障导致存储***变为双从状态,则当存储阵列A检测到该复制链路和两条仲裁链路的故障恢复后,存储阵列A会向仲裁服务器发送第一仲裁请求。
需要说明的是,第一仲裁请求可以理解为,在存储***从双从状态变成故障恢复状态后,由存储阵列A向仲裁服务器发送的仲裁请求。在图1所示的存储***中,存储阵列A为存储***的主存储阵列,因此,存储阵列A向仲裁服务器发送第一仲裁请求,可以理解为,当存储***从双从状态变为故障恢复状态后,由存储***的主存储阵列发送第一仲裁请求。
步骤406、存储阵列B向仲裁服务器发送第二仲裁请求,仲裁服务器接收该第二仲裁请求。
在存储***从双从状态变成故障恢复状态后,存储阵列B也可以向仲裁服务器发送的仲裁请求,即第二仲裁请求。存储阵列B向仲裁服务器发送第二仲裁请求,可以理解为,存储***中除主存储阵列外的其他存储阵列向仲裁服务器发送仲裁请求,当存储***中的存储阵列包括3个或者3个以上时,可以理解为存储***中除主存储阵列外的其他存储阵列中的每一个存储阵列向仲裁服务器发送仲裁请求。
需要说明的是,步骤406为可选步骤,即不是必须要执行的。若执行步骤406,则步骤406可以与步骤405同时执行,也可以先执行步骤406再执行步骤405,或者先执行步骤405再执行步骤406,在本申请实施例中,不对步骤405和步骤406的执行顺序进行限制。在图4中,以先执行步骤405后执行步骤406为例。
步骤407、仲裁服务器确定存储阵列A的第一仲裁结果以及存储阵列B的第二仲裁结果。
当仲裁服务器在接收存储阵列A发送第一仲裁请求和/或存储阵列B发送的第二仲裁请求后,仲裁服务器会判断是否已经存储有存储阵列A和存储阵列B的仲裁结果。由于仲裁服务器保存持久化的仲裁结果,在步骤403中确定的仲裁结果未反馈给存储阵列A和存储阵列B,因此,仲裁服务器则直接从存储的仲裁结果中确定该第一仲裁结果及该第二仲裁结果。例如,当存储的仲裁结果为存储阵列A为winning状态,存储阵列B为losing状态,则仲裁服务器确定第一仲裁结果为winning状态,第二仲裁结果为losing状态;当存储的仲裁结果为存储阵列A为unknown状态,存储阵列B为checking状态,则第一仲裁结果为unknown状态,第二仲裁结果为checking状态。当然,若存储的仲裁结果为其他内容,则第一仲裁结果和第二仲裁结果也会相应发生改变,在此不一一列举。
步骤408、仲裁服务器向存储阵列A发送该第一仲裁结果,以及,向存储阵列B发送该第二仲裁结果,存储阵列A接收该第一仲裁结果,存储阵列B接收该第二仲裁结果。
步骤409、存储阵列A根据该第一仲裁结果,向存储阵列B发起协商。
具体来讲,当存储阵列A接收该第一仲裁结果后,则向存储阵列B发送协商请求,该协商请求可以用于询问存储阵列B的第二仲裁结果的请求信息,当然,也可以是一个携带特定内容的数据包或者携带有特定包头的空包,该特定内容和特定包头为存储阵列A和存储阵列B预先约定的,当然,协商请求也可以是其他形式,在此不作限制。
步骤410、存储阵列B向存储阵列A反馈该第二仲裁结果,存储阵列A接收该第二仲裁结果。
当存储阵列B接收存储阵列A发送的协商请求后,则将从仲裁服务器获取的第二仲裁结果反馈给存储阵列A,存储阵列A接收该第二仲裁结果。
步骤411、存储阵列A接根据该第一仲裁结果和该第二仲裁结果,确定协商结果。
当存储阵列A接收存储阵列B反馈的第二仲裁结果后,则根据预设的协商原则,确定与存储阵列B的协商结果。作为一种示例,存储阵列A的协商原则可参考表1所示的内容。如表1所示,该协商原则为当本端阵列状态为checking状态且对端阵列状态为winning状态时,则协商结果为本端阵列状态为losing状态且对端阵列状态为winning状态;当本端阵列状态为checking状态且对端阵列状态为losing状态时,则协商结果为本端阵列状态为winning状态且对端阵列状态为losing状态;当本端阵列状态为checking状态且对端阵列状态为unknown状态时,则协商结果为本端阵列状态为losing状态且对端阵列状态为winning状态;当本端阵列状态为checking状态且对端阵列状态为checking状态时,则协商结果为本端阵列状态为winning状态且对端阵列状态为losing状态。在表1中,本端阵列即确定协商结果的阵列,例如为存储阵列A,对端阵列即与确定协商结果的阵列进行协商的阵列,例如为存储阵列B。当然,若确定协商结果的阵列为存储阵列B,则本端阵列即为存储阵列B,而对端阵列即为存储阵列A,本领域技术人员需灵活解释本端阵列和对端阵列的含义,在此不一一说明。
表1
本端阵列状态 | 对端阵列状态 | 协商结果 |
checking状态 | winning状态 | (losing,winnig) |
checking状态 | losing状态 | (winnig,losing) |
checking状态 | unknown状态 | (losing,winnig) |
checking状态 | checking状态 | (winnig,losing) |
具体来讲,若存储阵列A确定第一仲裁结果为winning状态,第二仲裁结果为checking状态,则根据表1所示的协商原则,确定协商结果为存储阵列A为winning状态且存储阵列B为losing状态;若存储阵列A确定第一仲裁结果为checking状态,第二仲裁结果为losing状态,则根据表1所示的协商原则,确定协商结果为存储阵列A为winning状态且存储阵列B为losing状态;若存储阵列A确定第一仲裁结果为unknown状态,第二仲裁结果为checking状态,则根据表1所示的协商原则,存储阵列A确定协商结果为存储阵列A为winning状态且存储阵列B为losing状态;若存储阵列A确定第一仲裁结果为checking状态,第二仲裁结果为checking状态,则根据表1所示的协商原则,存储阵列A确定协商结果为存储阵列A为winning状态且存储阵列B为losing状态。
需要说明的是,在表1所示的协商原则仅以本端阵列的状态为checking状态为例进行说明,只是一种示例,不应理解为对协商原则的限制。当本端阵列的仲裁结果为其他状态时,协商原则可以参照表1所示的原则进行调整,在此不一一列举。
另外需要说明的是,协商结果只包括两种状态,即winning状态和losing状态。
请继续参考图5,在这种情况下,由于存储***从双从状态变为故障恢复状态,存储阵列通过协商,确定协商成功时,存储阵列的状态变为:若协商成功则变为winning状态,即状态2,若协商失败,则变为losing状态,即状态3。
步骤412、存储阵列A确定协商结果为存储阵列A为winning状态且存储阵列B为losing状态,存储阵列A向客户端提供业务服务。
当存储阵列A确定协商结果为本端阵列获胜,则存储阵列A主动恢复本端阵列状态为winning状态,从而提供业务服务。当然,当存储阵列A确定协商结果为对端阵列获胜,则存储阵列A可以将协商结果发送给存储阵列B,这样,当存储阵列B确定该阵列获胜后,则主动拉起业务,提供业务服务。
需要说明的是,若存储阵列A确定第一仲裁结果和第二仲裁结果均为winning状态,或者,存储阵列A确定第一仲裁结果和第二仲裁结果均为losing状态,在这种情况下,存储阵列A确定协商失败。若存储阵列A确定协商失败,则存储***无法自动恢复业务。
步骤413、存储阵列A向存储阵列B发送同步数据。
当存储阵列A提供业务服务后,则将业务的最新数据发送给存储阵列B,从而使存储阵列B中的业务数据与存储阵列A同步,待阵列A的差异数据全部同步到阵列B以后,存储***双活特性恢复,从而可由存储阵列A和存储阵列B同时提供业务。
步骤413为可选步骤,即不是必须要执行的。
在上述技术方案中,当存储***从双从状态变为故障恢复状态后,可以通过上述协商原则,自动确定获胜的存储阵列,并由获胜的存储阵列主动拉起业务,从而可以减少人为操作拉起业务的等待时间,可以提高存储***的业务恢复效率。
在图4所示的实施例中,当存储***由双从状态变为故障恢复状态后,仲裁服务器根据预先存储的仲裁结果确定故障恢复状态后各个存储阵列的仲裁结果。下面,介绍当存储***由双从状态变为故障恢复状态后,仲裁服务器重新确定仲裁结果的实施例。
请参考图6,为本申请实施例提供的业务恢复方法的另一种实施例的流程图,该流程的描述如下:
步骤601、存储***正常运行,存储阵列处理业务。
在本申请实施例中,该存储***包括第一存储阵列、第二存储阵列以及仲裁服务器,可以理解为该存储***为双活存储***,具体可以是如图1~图3B所示的存储***中的其中一种。为方便说明,在下面的介绍中,将以图1所示的存储***为例进行说明,也就是说,第一存储阵列为图1中的存储阵列A,第二存储阵列为图1中的存储阵列B,仲裁服务器为图1中的仲裁服务器。
步骤601与步骤401相同,在此不再赘述。
步骤602、存储***变为双从状态,存储阵列A以及存储阵列B的状态均为checking状态。
在本申请实施例中,存储***直接由正常运行变为双从状态,例如,存储阵列的机房掉电,或者存储阵列A、存储阵列B以及仲裁服务器同时掉电,或者在复制链路发生故障的同一时刻,存储阵列A与仲裁服务器之间的仲裁链路以及存储阵列B与仲裁服务器之间的仲裁链路也发生故障等。在这种情况下,存储阵列A和存储阵列B还未来得及向仲裁服务器请求仲裁,便直接变为双从状态。
需要说明的是,步骤601~步骤602为可选步骤,即不是必须要执行的。
步骤603、存储***由双从状态切换到故障恢复状态,存储阵列A向仲裁服务器发送第一仲裁请求,仲裁服务器接收该第一仲裁请求。
步骤603与步骤405相同,且第一仲裁请求与步骤405中的第一仲裁请求相同。
步骤604、存储阵列B向仲裁服务器发送第二仲裁请求,仲裁服务器接收该第二仲裁请求。
步骤604与步骤406相同,且第二仲裁请求与步骤406中的第二仲裁请求相同。
需要说明的是,步骤604为可选步骤,即不是必须要执行的。例如,当存储***从双从状态变为故障恢复状态后,可能由于存储阵列B与仲裁服务器之间的仲裁链路故障或者存储阵列B发送设备故障等,导致存储阵列B无法向仲裁服务器发送第二仲裁请求。
步骤605、仲裁服务器确定存储阵列A的第一仲裁结果以及存储阵列B的第二仲裁结果。
当仲裁服务器在接收存储阵列A发送第一仲裁请求和/或存储阵列B发送的第二仲裁请求后,仲裁服务器会判断是否已经存储有存储阵列A和存储阵列B的仲裁结果。由于存储***直接由正常运行变为双从状态,也就是说,在存储***变为双从状态之前,存储阵列A和存储阵列B均未向仲裁服务器发送仲裁请求,因此,仲裁服务器中还未对存储阵列A和存储阵列B进行仲裁的仲裁结果。
若本申请实施例中的方法执行步骤603以及步骤604,也就是说,仲裁服务器从存储阵列A以及存储阵列B接收了两个仲裁请求,则仲裁服务器需要根据从存储阵列A接收的第一仲裁请求和从存储阵列B接收的第二仲裁请求,对存储阵列的状态重新进行仲裁。具体来讲,仲裁服务器根据接收该第一仲裁请求及接收该第二仲裁请求的先后顺序,确定该第一仲裁结果及该第二仲裁结果。若仲裁服务器接收该第一仲裁请求后才接收该第二仲裁请求,则确定第一仲裁结果为winning状态,以及确定该第二仲裁结果为losing状态。例如,仲裁服务器接收第一个仲裁请求后,确定该仲裁请求中携带存储阵列A的标识信息,然后仲裁服务器接收到第二个仲裁请求,该仲裁请求中携带存储阵列B的标识信息,则确定先收到第一仲裁请求,后接收第二仲裁请求,从而确定存储阵列A的仲裁结果为winning状态,存储阵列B的仲裁结果为losing状态。
若本申请实施例中的方法仅执行步骤603,也就是说,仲裁服务器仅从存储阵列A接收了第一仲裁请求,且在接收到该第一仲裁请求开始的预设时长内未从存储阵列B接收第二仲裁请求,则仲裁服务器确定第一仲裁结果为winning状态,以及第二仲裁结果为checking状态。
需要说明的是,该预设时长可以是仲裁服务器预配置的,也可以是仲裁服务器与存储在阵列预先约定的,具体可以为2ms或5ms等,在此不作限制。
步骤606、仲裁服务器向存储阵列A发送该第一仲裁结果,以及,向存储阵列B发送该第二仲裁结果,存储阵列A接收该第一仲裁结果,存储阵列B接收该第二仲裁结果。
步骤607、存储阵列A根据该第一仲裁结果,向存储阵列B发起协商。
步骤608、存储阵列B向存储阵列A反馈该第二仲裁结果,存储阵列A接收该第二仲裁结果。
步骤609、存储阵列A接根据该第一仲裁结果和该第二仲裁结果,确定协商结果。
步骤610、存储阵列A确定协商结果为存储阵列A为winning状态且存储阵列B为losing状态,存储阵列A向客户端提供业务服务。
步骤611、存储阵列A向存储阵列B发送同步数据。
步骤606~步骤611与步骤408~步骤413相同,在此不再赘述。
在上述技术方案中,当存储***从双从状态变为故障恢复状态后,可以通过上述协商原则,自动确定获胜的存储阵列,并由获胜的存储阵列主动拉起业务,从而可以减少人为操作拉起业务的等待时间,可以提高存储***的业务恢复效率。
在图4和图6的实施方式中,存储***需要根据仲裁服务器的仲裁结果拉起业务。在其他场景中,例如,多重故障场景下,存储***也可以不依赖仲裁服务器,由主阵列主动发起协商从而恢复业务。下面对多重故障场景下的业务恢复过程进行说明。
作为一种示例,在图1所示的双活存储***处于正常工作状态下,可能由于某些原因导致仲裁服务器与存储阵列A之间的仲裁链路断开,由于仲裁链路断开不影响存储***的运行,因此,在这种情况下,存储阵列A和存储阵列B仍能保持正常工作状态,即存储阵列A和存储阵列B同时处理业务。当存储阵列A和存储阵列B同时处理业务时,该业务的数据会写入到存储阵列A以及存储阵列B中,若存储阵列B发生故障,则该业务的数据无法成功写入存储阵列B,此时,存储阵列B会将自身的状态设置为losing状态,从而停止处理该业务,而存储阵列A确定该业务的数据无法成功写入存储阵列B,则确认存储阵列B发生故障,从而确定需要将自身的状态设置为winning状态,由存储阵列A处理该业务。
若存储阵列A在确定需要将自身状态设置为winning状态,且在存储阵列A变为winning状态之前,存储阵列A和存储阵列B之间的复制链路断开,此时,将触发仲裁服务器的仲裁过程,由于仲裁服务器与存储阵列A之间的仲裁链路断开,则仲裁服务器无法接收存储阵列A发送的第三仲裁请求,因此,存储阵列A不会接收到仲裁服务网的仲裁结果。当存储阵列A在预设时长内未收到仲裁结果,则确定仲裁超时,从而将自身的状态设置为checking状态。
这样,当存储阵列A和存储阵列B之间的复制链路恢复后,存储阵列A可以主动向存储阵列B发起协商,然后存储阵列B将自身存储的状态,即losing状态,发送给存储阵列A,存储阵列A可以根据表1所示的协商原则,确定存储阵列A的协商结果为winning状态,存储阵列B的协商结果为losing状态,从而确定由存储阵列A处理业务。
作为另一种示例,在图1所示的双活存储***处于正常工作状态下,可能由于某些原因导致仲裁服务器与存储阵列A之间的仲裁链路断开,由于仲裁链路断开不影响存储***的运行,因此,在这种情况下,存储阵列A和存储阵列B仍能保持正常工作状态,即存储阵列A和存储阵列B同时处理业务。由于存储阵列B为正常状态,因此,存储阵列B的状态为unknow状态,若存储阵列B发生掉电后重启,重启完成后也为unknow状态。
若存储阵列B在掉电重启的时刻,存储阵列A和存储阵列B之间的复制链路断开,此时,将触发仲裁服务器的仲裁过程,由于仲裁服务器与存储阵列A之间的仲裁链路断开,则仲裁服务器无法接收存储阵列A发送的第三仲裁请求,因此,仲裁服务器不会进行仲裁,从而,存储阵列A也不会收到仲裁服务器的仲裁结果,当存储阵列A在预设时长内未收到仲裁结果,则确定仲裁超时,从而将自身的状态设置为checking状态。由于存储阵列B掉电后重启,因此,存储阵列B重启后的状态为unknown状态。
这样,当存储阵列A和存储阵列B之间的复制链路恢复后,存储阵列A可以主动向存储阵列B发起协商,然后存储阵列B将自身存储的状态,即unknown状态,发送给存储阵列A,存储阵列A可以根据表1所示的协商原则,确定存储阵列A的协商结果为losing状态,存储阵列B的协商结果为winning状态,从而确定由存储阵列B处理业务。
通过上述技术方案,存储阵列之间也可以主动进行协商,从而确定在故障恢复后,用于处理业务的存储阵列,可以减少存储阵列与仲裁服务器之间的交互,提高处理效率。
上述本申请提供的实施例中,分别从第一存储阵列、第二存储阵列及仲裁服务器之间交互的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,第一存储阵列可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
图7示出了一种业务恢复装置700的结构示意图。其中,业务恢复装置700可以应用于第一存储阵列,或者是第一存储阵列中的装置,能够实现本申请实施例提供的方法中第一存储阵列的功能;业务恢复装置700也可以是能够支持第一存储阵列实现本申请实施例提供的方法中第一存储阵列的功能的装置。业务恢复装置700可以是硬件结构、软件模块、或硬件结构加软件模块。业务恢复装置700可以由芯片***实现。本申请实施例中,芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
业务恢复装置700可以包括收发单元701和处理单元702。
收发单元701可以用于执行图4所示的实施例中的步骤401、步骤402、步骤405、步骤408~步骤410以及步骤413,和/或用于执行图6所示的实施例中的步骤601、步骤603、步骤606~步骤608以及步骤611,和/或用于支持本文所描述的技术的其它过程。收发单元701用于存储阵列700和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
处理单元702可以用于执行图4所示的实施例中的步骤401、步骤404、步骤411以及步骤412,和/或用于执行图6所示的实施例中的步骤601、步骤602、步骤609以及步骤610,和/或用于支持本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图8所示为本申请实施例提供的业务恢复装置800,其中,业务恢复装置800可以是图4或图6所示的实施例中的第一存储阵列,或者是第一存储阵列中的装置,能够实现本申请图4或图6所示的实施例中的第一存储阵列的功能;业务恢复装置800也可以是能够支持第一存储阵列实现本申请图4或图6所示的实施例提供的方法中第一存储阵列的功能的装置。其中,业务恢复装置800可以为芯片***。本申请实施例中,芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
业务恢复装置800包括至少一个处理器820,用于实现或用于支持业务恢复装置800实现本申请图4或图6所示的实施例中的第一存储阵列的功能。示例性地,处理器820可以根据第一仲裁结果,向第二存储阵列发起协商,确定协商结果,以及,确定协商结果为存储阵列为获胜winning状态且第二存储阵列为失败losing状态,则向客户端提供业务服务,具体参见方法示例中的详细描述,此处不做赘述。
业务恢复装置800还可以包括至少一个存储器830,用于存储程序指令和/或数据。存储器830和处理器820耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器820可能和存储器830协同操作。处理器820可能执行存储器830中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。当处理器820执行存储器830中的程序指令时,可以实现图4或图6所示的方法。
业务恢复装置800还可以包括通信接口810,用于通过传输介质和其它设备进行通信,从而用于存储阵列800中的装置可以和其它设备进行通信。示例性地,该其它设备可以是第二存储阵列或仲裁服务器。处理器820可以利用通信接口810收发数据。
本申请实施例中不限定上述通信接口810、处理器820以及存储器830之间的具体连接介质。本申请实施例在图8中以存储器830、处理器820以及通信接口810之间通过总线840连接,总线在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器820可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器830可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
图9示出了一种仲裁服务器900的结构示意图。其中,仲裁服务器900能够实现本申请实施例提供的方法中仲裁服务器的功能;仲裁服务器900也可以是能够支持仲裁服务器实现本申请实施例提供的方法中仲裁服务器的功能的装置。仲裁服务器900可以是硬件结构、软件模块、或硬件结构加软件模块。仲裁服务器900可以由芯片***实现。本申请实施例中,芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
仲裁服务器900可以包括收发单元901和处理单元902。
收发单元901可以用于执行图4所示的实施例中的步骤402、步骤405、步骤406以及步骤408,和/或用于执行图6所示的实施例中的步骤603、步骤604以及步骤606,和/或用于支持本文所描述的技术的其它过程。收发单元901用于仲裁服务器900和其它模块进行通信,其可以是电路、器件、接口、总线、软件模块、收发器或者其它任意可以实现通信的装置。
处理单元902可以用于执行图4所示的实施例中的步骤403以及步骤407,和/或用于执行图6所示的实施例中的步骤605,和/或用于支持本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图10所示为本申请实施例提供的仲裁服务器1000,其中,仲裁服务器1000可以是图4或图6所示的实施例中的仲裁服务器,能够实现本申请图4或图6所示的实施例中的仲裁服务器的功能;仲裁服务器1000也可以是能够支持仲裁服务器实现本申请图4或图6所示的实施例提供的方法中仲裁服务器的功能的装置。其中,仲裁服务器1000可以为芯片***。本申请实施例中,芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
仲裁服务器1000包括至少一个处理器1020,用于实现或用于支持仲裁服务器1000实现本申请图4或图6所示的实施例中的仲裁服务器的功能。示例性地,处理器1020可以根据第一仲裁请求,确定第一存储阵列的第一仲裁结果以及第二存储阵列的第二仲裁结果,具体参见方法示例中的详细描述,此处不做赘述。
仲裁服务器1000还可以包括至少一个存储器1030,用于存储程序指令和/或数据。存储器1030和处理器1020耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1020可能和存储器1030协同操作。处理器1020可能执行存储器1030中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。当处理器1020执行存储器1030中的程序指令时,可以实现图4或图6所示的方法。
仲裁服务器1000还可以包括通信接口1010,用于通过传输介质和其它设备进行通信,从而用于存储阵列1000中的装置可以和其它设备进行通信。示例性地,该其它设备可以是第二存储阵列或第一存储阵列。处理器1020可以利用通信接口1010收发数据。
本申请实施例中不限定上述通信接口1010、处理器1020以及存储器1030之间的具体连接介质。本申请实施例在图10中以存储器1030、处理器1020以及通信接口1010之间通过总线1040连接,总线在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器1020可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器1030可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图4或图6所示的实施例中第一存储阵列执行的方法。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图4或图6所示的实施例中仲裁服务器执行的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图4或图6所示的实施例中第一存储阵列执行的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图4或图6所示的实施例中仲裁服务器执行的方法。
本申请实施例提供了一种芯片***,该芯片***包括处理器,还可以包括存储器,用于实现前述方法中第一存储阵列的功能。该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例提供了一种芯片***,该芯片***包括处理器,还可以包括存储器,用于实现前述方法中仲裁服务器的功能。该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例还提供一种存储***,该存储***包括前述方法中所述的第一存储阵列以及前述方法中的仲裁服务器。
本申请实施例还提供一种存储***,该存储***包括前述方法中所述的第一存储阵列、第二存储阵列以及前述方法中的仲裁服务器。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,SSD)等。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (20)
1.一种业务恢复方法,其特征在于,应用于存储***,所述存储***包括第一存储阵列、第二存储阵列以及仲裁服务器,所述方法包括:
在所述存储***由双从状态切换到故障恢复状态后,第一存储阵列向仲裁服务器发送第一仲裁请求;在所述存储***处于所述双从状态时,所述第一存储阵列和所述第二存储阵列均无法处理业务;
所述第一存储阵列从所述仲裁服务器接收第一仲裁结果;
所述第一存储阵列根据所述第一仲裁结果,向所述第二存储阵列发起协商,确定协商结果;
若确定协商结果为所述第一存储阵列为获胜winning状态且所述第二存储阵列为失败losing状态,则所述第一存储阵列向客户端提供业务服务。
2.根据权利要求1所述的方法,其特征在于,所述第一存储阵列根据所述第一仲裁结果,向所述第二存储阵列发起协商,确定协商结果,包括:
所述第一存储阵列根据所述第一仲裁结果,向所述第二存储阵列发起协商;
所述第一存储阵列从所述第二存储阵列接收第二仲裁结果,所述第二仲裁结果为所述仲裁服务器对所述第二存储阵列的仲裁结果;
所述第一存储阵列根据所述第一仲裁结果和所述第二仲裁结果,确定协商结果。
3.根据权利要求2所述的方法,其特征在于,所述第一存储阵列根据所述第一仲裁结果和所述第二仲裁结果,确定所述协商结果,包括:
若所述第一仲裁结果为获胜winning状态,所述第二仲裁结果为检查checking状态,所述第一存储阵列确定所述第一存储阵列为winning状态且所述第二存储阵列为losing状态;或
若所述第一仲裁结果为获胜winning状态,所述第二仲裁结果为losing状态,所述第一存储阵列确定所述第一存储阵列为winning状态且所述第二存储阵列为losing状态;或
若所述第一仲裁结果为失败losing状态,所述第二仲裁结果为winning状态,所述第一存储阵列确定所述第一存储阵列为losing状态且所述第二存储阵列为winning状态;或
若所述第一仲裁结果为检查checking状态,所述第二仲裁结果为checking状态,所述第一存储阵列确定所述第一存储阵列为winning状态且所述第二存储阵列为losing状态。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述第一存储阵列向客户端提供业务服务之后,所述方法还包括:
所述第一存储阵列向所述第二存储阵列发送同步数据。
5.一种业务恢复方法,其特征在于,应用于存储***,所述存储***包括第一存储阵列、第二存储阵列以及仲裁服务器,所述方法包括:
在所述存储***由双从状态切换到故障恢复状态后,仲裁服务器从第一存储阵列接收第一仲裁请求;在所述存储***处于所述双从状态时,所述第一存储阵列和所述第二存储阵列均无法处理业务;
所述仲裁服务器确定所述第一存储阵列的第一仲裁结果以及所述第二存储阵列的第二仲裁结果;
所述仲裁服务器向所述第一存储阵列发送所述第一仲裁结果,以及,向所述第二存储阵列发送所述第二仲裁结果。
6.根据权利要求5所述的方法,其特征在于,所述仲裁服务器确定所述第一存储阵列的第一仲裁结果以及所述第二存储阵列的第二仲裁结果,包括:
所述仲裁服务器从存储的仲裁结果中确定所述第一仲裁结果及所述第二仲裁结果,所述存储的仲裁结果为在所述存储***的复制链路断开且处于所述双从状态之前,由所述仲裁服务器确定的且未反馈给所述第一存储阵列以及所述第二存储阵列的仲裁结果,所述复制链路为所述第一存储阵列与所述第二存储阵列之间的链路;
所述仲裁服务器确定所述存储的仲裁结果,包括:
在所述存储***的复制链路断开且在处于所述双从状态之前,所述仲裁服务器根据接收的所述第一存储阵列发送的第三仲裁请求和/或所述第二存储阵列发送的第四仲裁请求,确定所述存储的仲裁结果。
7.根据权利要求6所述的方法,其特征在于,所述存储的仲裁结果包括:
所述第一仲裁结果为检查winning状态以及所述第二仲裁结果为losing状态;或
所述第一仲裁结果为未知winning状态以及所述第二仲裁结果为checking状态;或
所述第一仲裁结果为检查losing状态以及所述第二仲裁结果为winning状态;
所述第一仲裁结果为检查checking状态以及所述第二仲裁结果为checking状态。
8.根据权利要求5所述的方法,其特征在于,在所述仲裁服务器确定所述第一存储阵列的第一仲裁结果以及所述第二存储阵列的第二仲裁结果之前,所述方法还包括:
所述仲裁服务器从所述第二存储阵列接收第二仲裁请求;
所述仲裁服务器确定所述第一存储阵列的第一仲裁结果以及所述第二存储阵列的第二仲裁结果,包括:
所述仲裁服务器根据接收所述第一仲裁请求及接收所述第二仲裁请求的先后顺序,确定所述第一仲裁结果及所述第二仲裁结果,若所述仲裁服务器接收所述第一仲裁请求后才接收所述第二仲裁请求,则确定第一仲裁结果为winning状态,以及所述第二仲裁结果为losing状态。
9.根据权利要求5所述的方法,其特征在于,所述仲裁服务器确定所述第一存储阵列的第一仲裁结果以及所述第二存储阵列的第二仲裁结果,包括:
所述仲裁服务器确定在接收到所述第一仲裁请求开始的预设时长内未从所述第二存储阵列接收第二仲裁请求;
所述仲裁服务器确定第一仲裁结果为winning状态,以及所述第二仲裁结果为checking状态。
10.一种业务恢复装置,应用于第一存储阵列,其特征在于,所述第一存储阵列位于一存储***中,所述存储***还包括第二存储阵列以及仲裁服务器,所述装置包括通信接口和处理器,其中:
所述处理器,用于在所述存储***由双从状态切换到故障恢复状态后,通过所述通信接口向所述仲裁服务器发送第一仲裁请求;并通过所述通信接口从所述仲裁服务器接收第一仲裁结果;以及根据所述第一仲裁结果,通过所述通信接口向所述第二存储阵列发起协商,确定协商结果;在所述存储***处于所述双从状态时,所述第一存储阵列和所述第二存储阵列均无法处理业务;
若确定协商结果为所述第一存储阵列为获胜winning状态且所述第二存储阵列为失败losing状态,则通过所述通信接口向客户端提供业务服务。
11.根据权利要求10所述的装置,其特征在于,所述处理器根据所述第一仲裁结果,通过所述通信接口向所述第二存储阵列发起协商,确定协商结果时,具体用于:
根据所述第一仲裁结果,通过所述通信接口向所述第二存储阵列发起协商;
通过所述通信接口从所述第二存储阵列接收第二仲裁结果,所述第二仲裁结果为所述仲裁服务器对所述第二存储阵列的仲裁结果;
根据所述第一仲裁结果和所述第二仲裁结果,确定协商结果。
12.根据权利要求11所述的装置,其特征在于,所述处理器根据所述第一仲裁结果和所述第二仲裁结果,确定所述协商结果时,具体用于:
所述处理器在所述第一仲裁结果为获胜winning状态,所述第二仲裁结果为检查checking状态时,确定所述存储阵列为winning状态且所述第二存储阵列为losing状态;或
所述处理器在所述第一仲裁结果为获胜winning状态,所述第二仲裁结果为losing状态时,确定所述存储阵列为winning状态且所述第二存储阵列为losing状态;或
所述处理器在所述第一仲裁结果为失败losing状态,所述第二仲裁结果为winning状态时,确定所述存储阵列为losing状态且所述第二存储阵列为winning状态;或
所述处理器在所述第一仲裁结果为检查checking状态,所述第二仲裁结果为checking状态时,确定所述存储阵列为winning状态且所述第二存储阵列为losing状态。
13.根据权利要求10-12中任一项所述的装置,其特征在于,所述处理器还用于:
在通过所述通信接口向客户端提供业务服务之后,向所述第二存储阵列发送同步数据。
14.一种仲裁服务器,位于一存储***中,其特征在于,所述存储***还包括第一存储阵列和第二存储阵列,所述仲裁服务器包括处理器和通信接口,其中:
所述处理器,用于在所述存储***由双从状态切换到故障恢复状态后,通过所述通信接口从第一存储阵列接收第一仲裁请求;针对所述第一存储阵列确定第一仲裁结果以及针对所述第二存储阵列确定第二仲裁结果;在所述存储***处于所述双从状态时,所述第一存储阵列和所述第二存储阵列均无法处理业务;以及
通过所述通信接口向所述第一存储阵列发送所述第一仲裁结果,通过所述通信接口向所述第二存储阵列发送所述第二仲裁结果。
15.根据权利要求14所述的仲裁服务器,其特征在于,所述处理器针对所述第一存储阵列确定第一仲裁结果以及针对所述第二存储阵列确定第二仲裁结果时,具体用于:
从存储的仲裁结果中确定所述第一仲裁结果及所述第二仲裁结果,所述存储的仲裁结果为在所述存储***的复制链路断开且处于所述双从状态之前,由所述处理器确定的且未反馈给所述第一存储阵列以及所述第二存储阵列的仲裁结果,所述复制链路为所述第一存储阵列与所述第二存储阵列之间的链路;
所述处理器确定所述存储的仲裁结果时,具体用于:
在所述存储***的复制链路断开且在处于所述双从状态之前,所述处理器根据通过所述通信接口接收的所述第一存储阵列发送的第三仲裁请求和/或通过所述通信接口接收的所述第二存储阵列发送的第四仲裁请求,确定所述存储的仲裁结果。
16.根据权利要求15所述的仲裁服务器,其特征在于,所述存储的仲裁结果包括:
所述第一仲裁结果为检查winning状态以及所述第二仲裁结果为losing状态;或
所述第一仲裁结果为未知winning状态以及所述第二仲裁结果为checking状态;或
所述第一仲裁结果为检查losing状态以及所述第二仲裁结果为winning状态;
所述第一仲裁结果为检查checking状态以及所述第二仲裁结果为checking状态。
17.根据权利要求14所述的仲裁服务器,其特征在于,所述处理器还用于:
确定所述第一存储阵列的第一仲裁结果以及所述第二存储阵列的第二仲裁结果之前,通过所述通信接口从所述第二存储阵列接收第二仲裁请求;
所述处理器针对所述第一存储阵列确定第一仲裁结果以及针对所述第二存储阵列确定第二仲裁结果时,具体用于:
根据接收所述第一仲裁请求及接收所述第二仲裁请求的先后顺序,确定所述第一仲裁结果及所述第二仲裁结果,若所述处理器接收所述第一仲裁请求后才接收所述第二仲裁请求,则确定第一仲裁结果为winning状态,以及所述第二仲裁结果为losing状态。
18.根据权利要求14所述的仲裁服务器,其特征在于,所述处理器针对所述第一存储阵列确定第一仲裁结果以及针对所述第二存储阵列确定第二仲裁结果时,具体用于:
确定在通过所述通信接口接收到所述第一仲裁请求开始的预设时长内未从所述第二存储阵列接收第二仲裁请求;
确定第一仲裁结果为winning状态,以及所述第二仲裁结果为checking状态。
19.一种存储***,其特征在于,包括如权利要求14~18任一所述的仲裁服务器、第一存储阵列和第二存储阵列,其中,所述第一存储阵列中包括如权利要求10~13任一所述的业务恢复装置。
20.一种计算机可读存储介质,其特征在于,所述介质上存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-4或5-9任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811015654.6A CN109445984B (zh) | 2018-08-31 | 2018-08-31 | 一种业务恢复方法、装置、仲裁服务器以及存储*** |
CN202011331689.8A CN112612653A (zh) | 2018-08-31 | 2018-08-31 | 一种业务恢复方法、装置、仲裁服务器以及存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811015654.6A CN109445984B (zh) | 2018-08-31 | 2018-08-31 | 一种业务恢复方法、装置、仲裁服务器以及存储*** |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011331689.8A Division CN112612653A (zh) | 2018-08-31 | 2018-08-31 | 一种业务恢复方法、装置、仲裁服务器以及存储*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109445984A CN109445984A (zh) | 2019-03-08 |
CN109445984B true CN109445984B (zh) | 2020-12-15 |
Family
ID=65532596
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811015654.6A Active CN109445984B (zh) | 2018-08-31 | 2018-08-31 | 一种业务恢复方法、装置、仲裁服务器以及存储*** |
CN202011331689.8A Pending CN112612653A (zh) | 2018-08-31 | 2018-08-31 | 一种业务恢复方法、装置、仲裁服务器以及存储*** |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011331689.8A Pending CN112612653A (zh) | 2018-08-31 | 2018-08-31 | 一种业务恢复方法、装置、仲裁服务器以及存储*** |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN109445984B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502326A (zh) * | 2019-08-27 | 2019-11-26 | 珠海格力电器股份有限公司 | 基于故障检测的云服务调度与恢复的方法及终端设备 |
CN117614805B (zh) * | 2023-11-21 | 2024-06-14 | 杭州沃趣科技股份有限公司 | 一种监控数据中心状态的数据处理*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426275A (zh) * | 2015-10-30 | 2016-03-23 | 成都华为技术有限公司 | 双活集群***中容灾的方法及装置 |
CN106909307A (zh) * | 2015-12-22 | 2017-06-30 | 华为技术有限公司 | 一种管理双活存储阵列的方法及装置 |
-
2018
- 2018-08-31 CN CN201811015654.6A patent/CN109445984B/zh active Active
- 2018-08-31 CN CN202011331689.8A patent/CN112612653A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426275A (zh) * | 2015-10-30 | 2016-03-23 | 成都华为技术有限公司 | 双活集群***中容灾的方法及装置 |
CN106909307A (zh) * | 2015-12-22 | 2017-06-30 | 华为技术有限公司 | 一种管理双活存储阵列的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112612653A (zh) | 2021-04-06 |
CN109445984A (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814479B2 (en) | Simultaneous download to multiple targets | |
CN109951331B (zh) | 用于发送信息的方法、装置和计算集群 | |
US7676616B2 (en) | Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system | |
US7661022B2 (en) | System for error handling in a dual adaptor system where one adaptor is a master | |
US20200233762A1 (en) | Method and Apparatus for Redundancy in Active-Active Cluster System | |
US11397647B2 (en) | Hot backup system, hot backup method, and computer device | |
US20100318610A1 (en) | Method and system for a weak membership tie-break | |
US10430082B2 (en) | Server management method and server for backup of a baseband management controller | |
JPH086910A (ja) | クラスタ型計算機システム | |
US8676751B2 (en) | High availability database systems and methods | |
CN109445984B (zh) | 一种业务恢复方法、装置、仲裁服务器以及存储*** | |
WO2018157605A1 (zh) | 一种集群文件***中消息传输的方法及装置 | |
US7904752B2 (en) | Synchronizing device error information among nodes | |
CN115202803A (zh) | 一种故障处理方法及装置 | |
TW201709693A (zh) | 伺服器機櫃之韌體更新方法 | |
US11947431B1 (en) | Replication data facility failure detection and failover automation | |
JP6822706B1 (ja) | クラスタシステム、サーバ装置、引継ぎ方法、及びプログラム | |
CN112214466B (zh) | 分布式集群***及数据写入方法、电子设备、存储装置 | |
CN118295964A (zh) | 创建双活卷快照的方法、装置、计算机设备及存储介质 | |
WO2017013791A1 (ja) | データバックアップシステム | |
CN117729095A (zh) | 一种数据管理方法、存储***及相关设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |