容灾异常处理方法、系统、计算机设备和存储介质与流程

文档序号:32498180发布日期:2022-12-10 04:53阅读:45来源:国知局
容灾异常处理方法、系统、计算机设备和存储介质与流程

1.本技术涉及数据容灾领域,特别是涉及一种容灾异常处理方法、系统、计算机设备和存储介质。


背景技术:

2.在存储系统中,rc(remotecopy,远程复制)定义的是卷与卷之间的关系,通常一个卷被指定为主卷,另一个被指定为辅卷。通常主机应用程序将数据写入主卷,不对辅卷运行i/o(input/output)操作,虽然数据仅写入到一个卷,但系统会将数据按照远程复制关系拷贝到另一个卷,在灾难恢复时,可使用另一个卷上的拷贝数据作为备份。
3.如果主端系统(包括主卷)完全故障,此时会切换到辅端系统(包括辅卷),使用辅端的辅卷给上层主机(或主机集群)提供持续的数据存储业务;如果主卷并未完全故障,可能仅是某一个或多个块(block,数据块)存在数据异常,如果此时上层主机下发读i/o操作,来获取该一个或多个数据块,多次读重试后仍为读超时,此时并不会切换到辅卷进行数据获取,在该状态下会对上层主机返回读失败。针对此场景,存储本身自带阵列层级的镜像或校验,可以从阵列级的镜像读出该一个或多个数据块,或者通过使用的raid5/raid6校验位反向计算出该一个或多个数据块;当阵列层级未有镜像或者同时该一个或多个数据块的校验位也出现错误,此时上层主机读取数据必然会读超时失败,因此会出现上层应用主机读i/o操作失败场景,尤其是底层使用盘已经老化或者hdd丢磁,ssd固态颗粒读写次数过多时,上述场景出现概率会明显增大,严重影响容灾处理效率。


技术实现要素:

4.基于此,本技术提供一种容灾异常处理方法、系统、计算机设备和存储介质,以提高容灾异常处理能力。
5.一方面,提供一种容灾异常处理方法,所述容灾异常处理方法包括:
6.主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作;
7.待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块,并根据所述读取失败的数据块确定辅卷上相应的待读取数据块;
8.所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
9.将所述待读取数据块对应的所述辅卷的修正状态配置为允许可读状态,以获取所述主卷对所述辅卷的临时读取权限;
10.对处于允许可读状态的所述辅卷执行对所述待读取数据块的数据读取操作。
11.在其中一个实施例中,所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令前,还包括:
12.定义所述辅卷的修正状态,对处于不同修正状态的所述辅卷配置不同的读取权
限;其中,所述修正状态包括所述允许可读状态和所述拒绝可读状态;
13.当所述辅卷的修正状态配置为所述允许可读状态时,则允许所述主卷获取对所述辅卷的读取权限,允许执行所述主卷向所述辅卷发起的数据读取操作;
14.当所述辅卷的修正状态配置为所述拒绝可读状态时,则拒绝所述主卷获取对所述辅卷的读取权限,拒绝执行所述主卷向所述辅卷发起的数据读取操作。
15.在其中一个实施例中,所述根据所述读取失败的数据块确定辅卷上相应的待读取数据块,包括:
16.根据所述读取失败的数据块位于所述主卷上的位置信息确定辅卷上相同位置信息处的所述待读取数据块。
17.在其中一个实施例中,所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令前,还包括:
18.根据位图从所述辅卷上获取所述待读取数据块的标志位状态;
19.判断所述待读取数据块的标志位状态;
20.若所述待读取数据块的标志位状态为允许可读状态,则将所述待读取数据块位于所述辅卷上的位置信息存储到所述数据读取指令;
21.若所述待读取数据块对应的所述辅卷的标志位状态为拒绝可读状态,则向所述主卷返回失败信息。
22.在其中一个实施例中,所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷,包括:
23.所述主卷向所述辅卷发送所述对所述待读取数据块的数据读取指令,以从所述数据读取指令中获取所述待读取数据块位于所述辅卷上的位置信息;
24.根据所述待读取数据块位于所述辅卷上的位置信息确定所述待读取数据块对应的所述辅卷;
25.其中,所述待读取数据块位于所述辅卷上。
26.在其中一个实施例中,所述对处于允许可读状态的辅卷执行对所述待读取数据块的数据读取操作,包括:
27.执行所述主卷对所述待读取数据块的数据读取操作,以获取所述待读取数据块的本体数据和校验数据;
28.对所述待读取数据块中的所述校验数据进行校验,待所述校验数据校验通过后将所述待读取数据块返回所述主机,同时将所述待读取数据块保存到所述主卷上相应的位置。
29.在其中一个实施例中,对处于允许可读状态的辅卷执行对所述待读取数据块的数据读取操作后,还包括:
30.待所述主卷从所述辅卷执行数据读取操作完毕后将所述辅卷的修正状态配置为拒绝可读状态,以关闭所述主卷对所述辅卷的临时读取权限。
31.另一方面,提供了一种容灾异常处理系统,所述容灾异常处理系统包括:
32.读取操作模块,用于主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作,以及对处于允许可读状态的辅卷执行对所述待读取数据块的数据读取操作;
33.数据块模块,用于待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块,并根据所述读取失败的数据块确定辅卷上相应的待读取数据块;
34.读取指令模块,用于所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
35.状态配置模块,用于将所述待读取数据块对应的辅卷的修正状态配置为允许可读状态,以及待所述主卷从所述辅卷执行数据读取操作完毕后将所述辅卷的修正状态配置为拒绝可读状态;
36.权限配置模块,用于获取或关闭所述主卷对所述辅卷的临时读取权限。
37.再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
38.主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作;
39.待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块,并根据所述读取失败的数据块确定辅卷上相应的待读取数据块;
40.所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
41.将所述待读取数据块对应的所述辅卷的修正状态配置为允许可读状态,以获取所述主卷对所述辅卷的临时读取权限;
42.对处于允许可读状态的所述辅卷执行对所述待读取数据块的数据读取操作。
43.又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被处理器执行时,使得所述处理器执行以下步骤:
44.主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作;
45.待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块,并根据所述读取失败的数据块确定辅卷上相应的待读取数据块;
46.所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
47.将所述待读取数据块对应的所述辅卷的修正状态配置为允许可读状态,以获取所述主卷对所述辅卷的临时读取权限;
48.对处于允许可读状态的所述辅卷执行对所述待读取数据块的数据读取操作。
49.本技术的上述技术方案相比现有技术具有以下优点:
50.上述容灾异常处理方法、系统、计算机设备和存储介质,该方法对辅端配置了修正状态,不同的修正状态对应不同的主端对辅端的读取权限,在辅端不允许读取数据块时暂时修改辅端的修正状态,以暂时获取对辅端的数据读取权限,允许主端对辅端的数据块进行读取,提高了自修复功能,进一步提高了容灾异常处理能力。
附图说明
51.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
52.图1是本技术实施例提供的容灾异常处理方法的第一方法流程图;
53.图2是本技术实施例提供的容灾异常处理方法的第二方法流程图;
54.图3是本技术实施例提供的容灾异常处理方法的测试拓扑结构示意图;
55.图4是本技术实施例提供的容灾异常处理系统的系统结构图;
56.图5是本技术实施例提供的计算机设备的设备结构图。
具体实施方式
57.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
58.实施例一:
59.参照图1所示,图1为本技术实施例提供的容灾异常处理方法的第一方法流程图。
60.方法包括以下步骤:
61.s101,主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作;
62.具体地,对于数据存储来讲,灾难严重影响数据存储的安全性。产生灾难的概率虽小,但是对存储安全性的影响是巨大的。针对不同的灾难配备了不同的容灾处理方式,其中,自然灾难发生的概率为7%,针对7%的自然灾难所采取的容灾处理方式为远程灾备保护;硬件故障发生的概率为44%,软件、人为和病毒故障等发生的概率为49%,针对44%的硬件故障和49%的软件故障等灾难所采取的容灾处理方式为本地数据中心保护。其中,远程灾备保护中,包括同步远程复制和异步远程复制两种保护方式,同步远程复制的特点为:(1)双倍写i/o响应时间+距离延时;(2)无数据丢失;(3)集群内/间(《300km),注意:升级时,可能会导致性能受影响;(4)适用于要求rpo=0的站点级数据保护(recovery point object,恢复点目标);(5)优先fc网络,也可用于ip网络。异步远程复制的特点为:(1)一致的异步复制;(2)可在两个远距离站点间配置(》300km),所有写i/o按照源卷接收顺序传送到对端,注意:只对写i/o响应时间存在有限的影响,存在数据丢失可能;(3)适用于允许rpo》0的站点级数据保护;(4)优先fc网络,也可用于ip网络。同步远程复制中,辅端保存有主端最新的数据,异步远程复制中,所有的i/o按顺序传输到辅端,辅端时刻保存有一份次新的一致性数据。远程复制的基本原则为:任意存储存储池/控制器间的两个卷的关系;卷容量必须一致;存储池的数据块大小可以不同;初始化拷贝完成前,辅卷数据为不一致状态;辅卷不能是映射到主机的卷。远程复制的状态包括以下状态:不一致停止状态,主卷允许读写,辅卷不允许读写;不一致拷贝状态,主卷允许读写,辅卷不允许读写;一致停止状态,主卷允许读写,辅卷只允许读;一致同步状态,主卷允许读写,辅卷只允许读;空闲状态,主卷和辅卷都允许读写,空闲状态下的复制关系在网络断开下进入该状态;空闲断开状态,主卷
和辅卷都允许读写,空闲状态下的复制关系在网络断开下进入该状态;不一致断开状态,主卷允许读写,辅卷不允许读写,不一致状态下的复制关系在网络断开下进入该状态;一致断开状态,主卷允许读写,辅卷只允许读,一致状态下的复制关系在网络断开下进入该状态。
63.如上述背景技术所述,主机执行对主卷的数据读取操作,当主机对主卷的数据读取操作出现错误而导致数据块读取失败时,执行磁盘阵列的镜像操作或者校验操作,以通过磁盘阵列的镜像操作或者校验操作来恢复读取失败的数据块。
64.s102,待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块,并根据所述读取失败的数据块确定辅卷上相应的待读取数据块;
65.具体地,通过磁盘阵列的镜像操作或者校验操作来恢复读取失败的数据块,当通过磁盘阵列的镜像操作或者校验操作来恢复读取失败的数据块失败时,也就是上述阵列层级未有镜像或者同时该一个或多个数据块的校验位也出现错误,此时主机读数据必然会读超时失败,此时如果远程复制的主端和辅端处于一致同步状态或者一致停止状态时,主端的主卷上读取失败的读i/o可以从辅端相同的位置读取数据块,但是如果远程复制的主端和辅端处于非一致同步状态或者非一致停止状态时,此时辅端不允许读取数据块,因此本技术提出的容灾异常处理方法,该方法在辅端不允许读取数据块时暂时修改辅端的修正状态,以暂时允许主端对辅端的数据块进行读取,首先是从主卷上获取读取失败的数据块,并根据读取失败的数据块确定辅卷上相应的待读取数据块。
66.s103,所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
67.根据读取失败的数据块从辅卷上获取相应的待读取数据块后,主卷向辅卷发送对所述待读取数据块的数据读取指令,通过该数据读取指令确定待读取数据块对应的辅卷,以便于配置待读取数据块对应的辅卷的修正状态。
68.s104,将所述待读取数据块对应的辅卷的修正状态配置为允许可读状态,以获取所述主卷对所述辅卷的临时读取权限;
69.具体地,获取到待读取数据块对应的辅卷后,对待读取数据块对应的辅卷进行修正状态的配置,即,将待读取数据块对应的辅卷的修正状态配置为允许可读状态,以获取主卷对辅卷的临时读取权限,便于允许主卷对辅卷的读取操作。
70.s105,对处于允许可读状态的辅卷执行对所述待读取数据块的数据读取操作;
71.具体地,将待读取数据块对应的辅卷的修正状态配置为允许可读状态后,也就获取到了主卷对辅卷的临时读取权限,以便于主端能够对处于允许可读状态的辅卷进行数据块的读取操作,以对辅卷上的待读取数据块进行读取。
72.在其中一个实施方式中,所述主卷向辅卷发送对所述待读取数据块的数据读取指令前,还包括:
73.定义所述辅卷的修正状态,对处于不同修正状态的所述辅卷配置不同的读取权限;其中,所述修正状态包括所述允许可读状态和所述拒绝可读状态;
74.当所述辅卷的修正状态配置为所述允许可读状态时,则允许所述主卷获取对所述辅卷的读取权限,允许执行所述主卷向所述辅卷发起的数据读取操作;
75.当所述辅卷的修正状态配置为所述拒绝可读状态时,则拒绝所述主卷获取对所述辅卷的读取权限,拒绝执行所述主卷向所述辅卷发起的数据读取操作。
76.具体地,为了能够获取对辅卷的临时读取权限,对辅卷定义一个修正状态,通过该修正状态来更改对辅卷临时读取数据的权限。修正状态包括允许可读状态和拒绝可读状态,当辅卷的修正状态配置为允许可读状态时,则允许主端获取对辅卷的读取权限,允许执行主卷向辅卷发起的数据读取操作;当辅卷的修正状态配置为拒绝可读状态时,则拒绝主端获取对辅卷的读取权限,拒绝执行主卷向辅卷发起的数据读取操作。
77.在其中一个实施方式中,所述根据所述读取失败的数据块确定辅卷上相应的待读取数据块,包括:
78.根据所述读取失败的数据块位于所述主卷上的位置信息确定辅卷上相同位置信息处的所述待读取数据块。
79.具体地,主卷与辅卷是一一对应的,主卷上的数据块与辅卷上的数据块也是一一对应的。因此从主卷上获取到读取失败的数据块后,可以定位到读取失败的数据块在主卷上的位置信息,进一步则可以根据主卷与辅卷上数据块的对应关系,确定辅卷上相同位置处的待读取数据块。例如,主卷上的读取失败的数据块的逻辑区块地址为2、3、4号,那么辅卷上与主卷对应的数据块的逻辑区块地址也为2、3、4号,那么辅卷上逻辑区块地址为2、3、4号的数据块就是待读取数据块。
80.在其中一个实施方式中,所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令前,还包括:
81.根据位图从所述辅卷上获取所述待读取数据块的标志位状态;
82.具体地,位图保存了主卷与辅卷的数据块的同步情况,位图上设置有标志位状态,根据标志位状态便可以判断该标志位对应的数据块是否同步完毕。根据位图从辅卷上获取待读取数据块的标志位状态,便于根据待读取数据块的标志位状态来判断待读取数据块是否已同步完毕。根据位图上的标志位状态可以判断是否完成同步,来记录远程复制状态的关系,如果初始化已完成同步,远程复制关系(同步远程复制、异步远程复制)且已启动,此时远程复制关系变为一致同步状态;一致同步状态停止远程复制关系,此时远程复制关系变为一致停止状态。其中,默认位图空间1bit指向远程复制的一个拷贝粒度,称之为grainsize(晶粒度),晶粒度默认为256kb,位图空间最大值为unit32定义的参量traceid,traceid默认指示2^32*256kb/1024/1024/1024=1024tb数据量。
83.判断所述待读取数据块的标志位状态;
84.若所述待读取数据块的标志位状态为已同步状态,则将所述待读取数据块位于所述辅卷上的位置信息存储到所述数据读取指令;
85.若所述待读取数据块对应的所述辅卷的标志位状态为未同步状态,则向所述主卷返回失败信息。
86.具体地,如果待读取数据块对应的辅卷的标志位状态为已同步状态,则将待读取数据块位于辅卷上的位置信息存储到数据读取指令,以便于主卷向辅卷发送对所述待读取数据块的数据读取指令,进一步执行主卷对辅卷的数据读取操作;如果待读取数据块对应的辅卷的标志位状态为未同步状态,则向主卷返回失败信息。
87.在其中一个实施方式中,所述主卷向辅卷发送对所述待读取数据块的数据读取指令,以根据所述数据读取指令获取待读取数据块对应的辅卷,包括:
88.所述主卷向所述辅卷发送所述对所述待读取数据块的数据读取指令,以从所述数
据读取指令中获取所述待读取数据块位于所述辅卷上的位置信息;
89.根据所述待读取数据块位于所述辅卷上的位置信息确定所述待读取数据块对应的所述辅卷;
90.其中,所述待读取数据块位于所述辅卷上。
91.具体地,将待读取数据块的位置信息存储到数据读取指令后,主卷向辅卷发送数据读取指令,以便于从数据读取指令中获取待读取数据块位于辅卷上的位置信息。主机向主卷发起数据读取操作失败时,可以定位到主卷上读取失败的数据块,由于主卷的数据块与辅卷的数据块是一一对应的关系,因此在辅卷上可以获取到与主卷上读取失败的数据块所对应的待读取数据块。待读取数据块位于辅卷上,与主卷上读取失败的数据块内容一致,因此主机从主卷上读取数据失败时,主卷从辅卷上获取相应的数据块,以通过辅卷上的数据块对主卷上读取失败的数据块进行恢复,主卷从辅卷上获取的相应的数据块称为待读取数据块,根据待读取数据块位于辅卷上的位置信息可以确定待读取数据块对应的辅卷。
92.在其中一个实施方式中,所述对处于允许可读状态的辅卷执行对所述待读取数据块的数据读取操作,包括:
93.执行所述主卷对所述待读取数据块的数据读取操作,以获取所述待读取数据块中的本体数据和校验数据;
94.具体地,如果待读取数据块对应的辅卷的标志位状态为允许可读状态,则允许执行主卷对辅卷的数据读取操作,以便于主卷从辅卷上读取待读取数据块,待读取数据块包括两部分,一部分是本体数据,也就是存储的实际数据,另一部分是校验数据,用于执行数据完整性校验的数据,因此主卷对辅卷执行数据读取操作后可以获得需要的本体数据和校验数据。
95.对所述待读取数据块中的所述校验数据进行校验,待所述校验数据校验通过后将所述待读取数据块返回所述主机,同时将所述待读取数据块保存到所述主卷上相应的位置。
96.具体地,主卷从辅卷上对待读取数据块的数据读取操作后,获取到了本体数据和校验数据,然后主卷对获取到的校验数据进行校验,如果校验失败,则说明数据不完整或者异常,返回校验失败信息,如果校验通过,则说明数据完整且正常,校验通过后的数据(待读取数据块)便可以返回给主机,同时,将待读取数据块保存到主卷上相应的数据块位置,对主卷上读取失败的数据块进行恢复,完成数据的读取。
97.在其中一个实施方式中,对处于允许可读状态的辅卷执行对所述待读取数据块的数据读取操作后,还包括:
98.待所述主卷从所述辅卷执行数据读取操作完毕后将所述辅卷的修正状态配置为拒绝可读状态,以关闭所述主卷对所述辅卷的临时读取权限。
99.具体地,由于此时只是临时允许主卷对辅卷的待读取数据进行读取,因此对辅卷上的待读取数据块执行操作完毕后,便需要将辅卷的修正状态修改为拒绝可读状态,以关闭主卷对辅卷的临时读取权限,提高数据存储的安全性能。
100.在其中一个实施方式中,所述方法还包括:
101.在主端和辅端建立集群系统环境,并建立所述主端与所述辅端的通信链路;
102.其中,所述主端包括所述主卷,所述辅端包括所述辅卷。
103.具体地,主端包括主卷,辅端包括辅卷,要想实现主端与辅端之间的远程同步,首先要通过主端和辅端建立集群系统环境,然后在主端与辅端之间建立通信链路(低层链路,可以为ip、fc、fcoe、roce等),便于主端与辅端之间进行通信,以实现主端与辅端之间的远程同步(远程同步复制、远程异步复制)功能。
104.实施例二:
105.参照图2所示,图2为本技术实施例提供的容灾异常处理方法的第二方法流程图。其中,图2所示方法中,与图1所示方法中相同或相似的内容,可以参考图1方法中的描述,此处不做赘述。
106.s201,在主端和辅端建立集群系统环境,并建立所述主端与所述辅端的通信链路;
107.主端包括主卷,辅端包括辅卷,要想实现主端与辅端之间的远程同步,首先要通过主端和辅端建立集群系统环境,然后在主端与辅端之间建立通信链路,便于主端与辅端之间进行通信,以实现主端与辅端之间的远程同步功能。
108.s202,定义所述辅卷的修正状态,对处于不同修正状态的所述辅卷配置不同的读取权限;
109.为了能够获取对辅卷的临时读取权限,对辅卷定义一个修正状态,通过该修正状态来更改对辅卷临时读取数据的权限。修正状态包括允许可读状态和拒绝可读状态,当辅卷的修正状态配置为允许可读状态时,则允许主端获取对辅卷的读取权限,允许执行主卷向辅卷发起的数据读取操作;当辅卷的修正状态配置为拒绝可读状态时,则拒绝主端获取对辅卷的读取权限,拒绝执行主卷向辅卷发起的数据读取操作。
110.s203,主机执行对所述主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作;
111.主机执行对主卷的数据读取操作,当主机对主卷的数据读取操作出现错误而导致数据块读取失败时,执行磁盘阵列的镜像操作或者校验操作,以通过磁盘阵列的镜像操作或者校验操作来恢复读取失败的数据块。
112.s204,待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块;
113.通过磁盘阵列的镜像操作或者校验操作来恢复读取失败的数据块,当通过磁盘阵列的镜像操作或者校验操作来恢复读取失败的数据块失败时,也就是上述阵列层级未有镜像或者同时该一个或多个数据块的校验位也出现错误,此时主机读数据必然会读超时失败,此时如果远程复制的主端和辅端处于一致同步状态或者一致停止状态时,主端的主卷上读取失败的读i/o可以从辅端相同的位置读取数据块,但是如果远程复制的主端和辅端处于非一致同步状态或者非一致停止状态时,此时辅端不允许读取数据块,因此本技术提出的容灾异常处理方法,该方法在辅端不允许读取数据块时暂时修改辅端的修正状态,以暂时允许主端对辅端的数据块进行读取,首先是从主卷上获取读取失败的数据块。
114.s205,根据所述读取失败的数据块位于所述主卷上的位置信息确定所述辅卷上相同位置信息处的所述待读取数据块;
115.主卷与辅卷是一一对应的,主卷上的数据块与辅卷上的数据块也是一一对应的。因此从主卷上获取到读取失败的数据块后,可以定位到读取失败的数据块在主卷上的位置信息,进一步则可以根据主卷与辅卷上数据块的对应关系,确定辅卷上相同位置处的待读
取数据块。
116.s206,根据位图从所述辅卷上获取所述待读取数据块的标志位状态;
117.位图保存了主卷与辅卷的数据块的同步情况,位图上设置有标志位状态,根据标志位状态便可以判断该标志位对应的数据块是否同步完毕。根据位图从辅卷上获取待读取数据块的标志位状态,便于根据待读取数据块的标志位状态来判断待读取数据块是否已同步完毕。
118.s207,判断所述待读取数据块的标志位状态;
119.若所述待读取数据块的标志位状态为已同步状态,则将所述待读取数据块位于所述辅卷上的位置信息存储到所述数据读取指令;
120.若所述待读取数据块对应的所述辅卷的标志位状态为未同步状态,则向所述主卷返回失败信息。
121.如果待读取数据块对应的辅卷的标志位状态为已同步状态,则执行步骤s208,将待读取数据块位于辅卷上的位置信息存储到数据读取指令,以便于主卷向辅卷发送数据读取指令,进一步逕主卷对辅卷的数据读取操作;若果待读取数据块对应的辅卷的标志位状态为未同步状态,则向主卷返回失败信息。
122.s208,将所述待读取数据块位于所述辅卷上的位置信息存储到所述数据读取指令;
123.如果待读取数据块对应的辅卷的标志位状态为已同步状态,则将待读取数据块位于辅卷上的位置信息存储到数据读取指令,以便于主卷向辅卷发送数据读取指令,进一步逕主卷对辅卷的数据读取操作。
124.s209,所述主卷向辅卷发送对所述待读取数据块的所述数据读取指令,以从所述数据读取指令中获取所述待读取数据块位于所述辅卷上的位置信息;
125.将待读取数据块的位置信息存储到数据读取指令后,主卷向辅卷发送对所述待读取数据块的数据读取指令,以便于从数据读取指令中获取待读取数据块位于辅卷上的位置信息。主机向主卷发起数据读取操作失败时,可以定位到主卷上读取失败的数据块,由于主卷的数据块与辅卷的数据块是一一对应的关系,因此在辅卷上可以获取到与主卷上读取失败的数据块所对应的待读取数据块。待读取数据块位于辅卷上,与主卷上读取失败的数据块内容一致,因此主机从主卷上读取数据失败时,主卷从辅卷上获取相应的数据块,以通过辅卷上的数据块对主卷上读取失败的数据块进行恢复,主卷从辅卷上获取的相应的数据块称为待读取数据块。
126.s210,根据所述待读取数据块位于所述辅卷上的位置信息确定所述待读取数据块对应的辅卷;
127.s211,将所述待读取数据块对应的辅卷的修正状态配置为允许可读状态,以获取所述主卷对所述辅卷的临时读取权限;
128.获取到待读取数据块对应的辅卷后,对待读取数据块对应的辅卷进行修正状态的配置,将待读取数据块对应的辅卷的修正状态配置为允许可读状态,以获取主卷对辅卷的临时读取权限,便于允许主卷对辅卷的读取操作。
129.s212,执行所述主卷对所述待读取数据块的数据读取操作,以获取所述待读取数据块的本体数据和校验数据;
130.如果待读取数据块对应的辅卷的标志位状态为允许可读状态,则允许执行主卷对辅卷的数据读取操作,以便于主卷从辅卷上读取待读取数据块,待读取数据块包括两部分,一部分是本体数据,也就是存储的实际数据,另一部分是校验数据,用于执行数据完整性校验的数据,因此主卷对辅卷执行数据读取操作后可以获得需要的本体数据和校验数据。
131.s213,对所述待读取数据块中的所述校验数据进行校验,待所述校验数据校验通过后将所述待读取数据块返回所述主机,同时将所述待读取数据块保存到所述主卷上相应的位置;
132.主卷从辅卷上对待读取数据块的数据读取操作后,获取到了本体数据和校验数据,然后主卷对获取到的校验数据进行校验,如果校验失败,则说明数据不完整或者异常,返回校验失败信息,如果校验通过,则说明数据完整且正常,校验通过后的数据(待读取数据块)便可以返回给主机,同时,将待读取数据块保存到主卷上相应的数据块位置,对主卷上读取失败的数据块进行恢复,完成数据的读取。
133.s214,待所述主卷从所述辅卷执行数据读取操作完毕后将所述辅卷的修正状态配置为拒绝可读状态,以关闭所述主卷对所述辅卷的临时读取权限。
134.由于此时只是临时允许主卷对辅卷的待读取数据进行读取,因此对辅卷上的待读取数据块执行操作完毕后,便需要将辅卷的修正状态修改为拒绝可读状态,以关闭主卷对辅卷的临时读取权限,提高数据存储的安全性能。
135.本技术的容灾异常处理方法,进行了测试,测试时,1、存储池使用阵列为raid0,底层阵列级别不存在冗余保护。2、搭建远程复制环境,如图3所示的拓扑结构,采用某存储设备,版本号为6.x.x.x;cpu:intel(r)xeon(r)gold 6230cpu@2.10ghz/64bits;内存:256g;每台设备连接一个jbod扩展柜;每台设备每控各一张fc通道的qlogic卡;前端服务器接入存储环境进行业务模型压测。3、主卷写入100gb数据,并与辅卷完成数据同步。3、制造主端主卷多数据块时读media error错误注入,此时多主端该对应数据块时,测试能否正常读取。4、经过测试可以正常读取该数据块的对应数据,且校验数据时正确无误。
136.此外,本技术的容灾异常处理方法可以在原有的存储底层阵列冗余保护时,再额外增加一层保护措施,并带有快速自修复功能,存储产品在不同i/o模型不同场景下,尤其对于快速存储多控系统,该发明方法更具实用性。进一步地,本技术配合主机自动化检测监控技术,可快速高效的对不同存储产品做出数据响应和修复,极大提高产品迭安全性和可靠性,为产品优化提升提供重要保护方式。
137.应该理解的是,虽然图1~2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1~2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
138.实施例三:
139.参照图4所示,图4为本技术实施例提供的容灾异常处理系统的系统结构图。
140.本实施例的容灾异常处理系统,包括:
141.读取操作模块,用于主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作,以及对处于允许可读状态的辅卷执行对所述待读取数据块的数据读取操作。
142.将待读取数据块对应的辅卷的修正状态配置为允许可读状态后,也就获取到了主卷对辅卷的临时读取权限,以便于主端能够通过读取操作模块对处于允许可读状态的辅卷进行数据块的读取操作,以对辅卷上的待读取数据块进行读取。此外,主机执行对主卷的数据读取操作、磁盘阵列的镜像操作或者校验操作均通过读取操作模块执行。
143.数据块模块,用于待所述主机对所述主卷的数据读取操作出现数据块读取失败时,从所述主卷上获取读取失败的数据块;以及根据所述读取失败的数据块位于所述主卷上的位置信息确定所述辅卷上相同位置信息处的所述待读取数据块;
144.主卷向辅卷发送数据读取指令前,上层主机发起对主卷的数据读取操作,由于主卷的一个或多个数据块存在异常,上层主机无法从主卷上对存在异常的数据块执行数据读取操作,因此当上层主机对主卷的数据读取操作出现读取失败的情况时,首先要通过数据块模块从主卷上获取读取失败的数据块。以及通过数据块模块根据读取失败的数据块位于主卷上的位置信息确定辅卷上相同位置信息处的待读取数据块。
145.读取指令模块,所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
146.本技术的容灾异常处理方法在辅端不允许读取数据块时暂时修改辅端的修正状态,以暂时允许主端对辅端的数据块进行读取,首先是主卷通过读取指令模块向辅卷发送对所述待读取数据块的数据读取指令,数据读取指令中存储着待读取数据块的相关信息,根据数据读取指令便可以确定待读取数据块对应的辅卷。
147.状态配置模块,用于将所述待读取数据块对应的辅卷的修正状态配置为允许可读状态,以及待所述主卷从所述辅卷执行数据读取操作完毕后将所述辅卷的修正状态配置为拒绝可读状态;
148.根据数据读取指令获取到待读取数据块对应的辅卷后,对辅卷的修正状态进行配置,以更改为允许可读状态;由于此时只是暂时允许对辅卷的待读取数据进行读取,因此对辅卷上的待读取数据块执行操作完毕后,便需要将辅卷的修正状态修改为拒绝可读状态,以上对辅卷的修正状态的配置通过状态配置模块完成。
149.权限配置模块,用于获取或关闭所述主卷对所述辅卷的临时读取权限;
150.将待读取数据块对应的辅卷的修正状态配置为允许可读状态,以获取主卷对辅卷的临时读取权限,待所述主卷从所述辅卷执行数据读取操作完毕后将所述辅卷的修正状态配置为拒绝可读状态,以关闭所述主卷对所述辅卷的临时读取权限,上述权限的获取或关闭均通过权限配置模块执行。
151.在其中一个实施方式中,所述容灾异常处理系统,还包括:
152.标志获取模块,用于根据位图从所述辅卷上获取所述待读取数据块的标志位状态;
153.位图保存了主卷与辅卷的数据块的同步情况,位图上设置有标志位状态,根据标志位状态便可以判断该标志位对应的数据块是否同步完毕。根据位图通过标志获取模块从辅卷上获取待读取数据块的标志位状态,便于根据待读取数据块的标志位状态来判断待读
取数据块是否已同步完毕。
154.数据校验模块,用于对所述主卷从所述辅卷读取的所述待读取数据块进行校验,待校验通过后将所述待读取数据块返回所述主机;
155.主卷从辅卷上对待读取数据块的数据读取操作后,获取到了本体数据和校验数据,然后主卷通过数据校验模块对获取到的校验数据进行校验,如果校验失败,则说明数据不完整或者异常,返回校验失败信息,如果校验通过,则说明数据完整且正常,校验通过后的数据(待读取数据块)便可以返回给主机,同时,将待读取数据块保存到主卷上相应的数据块位置,对主卷上读取失败的数据块进行恢复,完成数据的读取。
156.通信链路模块,用于在主端和辅端建立集群系统环境,并建立所述主端与所述辅端的通信链路。
157.主端包括主卷,辅端包括辅卷,要想实现主端与辅端之间的远程同步,首先要通过通信链路模块对主端和辅端建立集群系统环境,然后通过通信链路模块在主端与辅端之间建立通信链路,便于主端与辅端之间进行通信,以实现主端与辅端之间的远程同步功能。
158.关于容灾异常处理系统的具体限定可以参见上文中对于方法的限定,在此不再赘述。上述容灾异常处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
159.实施例四:
160.本实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现容灾异常处理方法的步骤。
161.该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现容灾异常处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
162.本领域内的技术人员应明白,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
163.在其中一个实施方式中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
164.主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作;
165.待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块,并根据所述读取失败的数据块确定辅卷上相应的待读取数据块;
166.所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
167.将所述待读取数据块对应的所述辅卷的修正状态配置为允许可读状态,以获取所述主卷对所述辅卷的临时读取权限。
168.实施例五:
169.本实施例提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
170.主机执行对主卷的数据读取操作,待所述主机对所述主卷的数据读取操作出现数据块读取失败时执行磁盘阵列的镜像操作或者校验操作;
171.待所述磁盘阵列的镜像操作或者校验操作失败时,从所述主卷上获取读取失败的数据块,并根据所述读取失败的数据块确定辅卷上相应的待读取数据块;
172.所述主卷向所述辅卷发送对所述待读取数据块的数据读取指令,通过所述数据读取指令确定所述待读取数据块对应的所述辅卷;
173.将所述待读取数据块对应的所述辅卷的修正状态配置为允许可读状态,以获取所述主卷对所述辅卷的临时读取权限。
174.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
175.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
176.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1