RAID控制器恢复元数据的方法、装置、设备及介质转让专利

申请号 : CN202211463228.5

文献号 : CN115543692B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱红玉夏方健

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明提供了一种RAID控制器恢复元数据的方法、装置、设备及可读介质,方法包括:设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份;响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复。通过使用本发明的方案,能够增加空间利用率,增加元数据的同步速度,减小对控制器业务停止的时间影响。本发明涉及计算机领域。

权利要求 :

1.一种RAID控制器恢复元数据的方法,其特征在于,包括以下步骤:设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;

在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;

响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份,其中响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:将备份控制器的元数据备份到备份控制器的后一个控制器中后将故障控制器的上一个控制器的元数据备份到备份控制器,或将故障控制器的上一个控制器的元数据备份到备份控制器中后将备份控制器中的元数据备份到故障控制器的上一个控制器;

响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复,其中响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:将备份控制器中的元数据拷贝到恢复的控制器中。

2.根据权利要求1所述的方法,其特征在于,设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器包括:设定四控RAID控制器中的第一控制器的备份控制器为第二控制器,第二控制器的备份控制器为第三控制器,第三控制器的备份控制器为第四控制器,第四控制器的备份控制器为第一控制器。

3.根据权利要求1所述的方法,其特征在于,在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器包括:分别在每个控制器中选取16个条带,每个控制器中的条带按照数字顺序进行编号;

分别将每个控制器的16个条带中的每一个设定唯一归属控制器,其中,每个控制器中编号相同的条带的唯一归属控制器相同。

4.根据权利要求1所述的方法,其特征在于,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:响应于检测到四个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;

拷贝控制器n+1的元数据到控制器n+2,并与控制器n+2的元数据做或运行算,将运算结果覆盖控制器n+2的元数据;

拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;

RAID恢复业务。

5.根据权利要求4所述的方法,其特征在于,还包括:控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理。

6.根据权利要求1所述的方法,其特征在于,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:响应于检测到三个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;

拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;

拷贝控制器n+1的元数据到控制器n‑1,并覆盖控制器n‑1的元数据;

RAID恢复业务。

7.根据权利要求1所述的方法,其特征在于,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:响应于检测到第四个控制器n恢复,在当前任务结束后停止业务;

拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;

RAID恢复业务。

8.根据权利要求7所述的方法,其特征在于,还包括:控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;

控制器n+1扫描元数据,并将非归属于控制器n+1的元数据执行元数据的清理。

9.根据权利要求1所述的方法,其特征在于,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:响应于检测到第三个控制器n恢复,在当前任务结束后停止业务;

拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;

RAID恢复业务。

10.根据权利要求9所述的方法,其特征在于,还包括:控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;

控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理;

控制器n+2扫描元数据,将非归属于控制器n+2的元数据执行元数据的清理。

11.根据权利要求1所述的方法,其特征在于,在设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器前还包括:将每个控制器中不属于控制器的元数据进行清理。

12.根据权利要求11所述的方法,其特征在于,将每个控制器中不属于控制器的元数据进行清理包括:响应于控制器当前任务结束,停止业务;

拷贝每个控制器配置元数据描述需要进行的任务,以分割单位长度全量配置;

每个控制器扫描全量的元数据,将不归属于控制器的元数据与已完成状态进行清理;

扫描完成,RAID恢复业务。

13.一种RAID控制器恢复元数据的装置,其特征在于,所述装置包括:设置模块,所述设置模块配置为设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;

编号模块,所述编号模块配置为在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;

备份模块,所述备份模块配置为响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份,所述备份模块还配置为将备份控制器的元数据备份到备份控制器的后一个控制器中后将故障控制器的上一个控制器的元数据备份到备份控制器,或将故障控制器的上一个控制器的元数据备份到备份控制器中后将备份控制器中的元数据备份到故障控制器的上一个控制器;

恢复模块,所述恢复模块配置为响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复,所述恢复模块还配置为将备份控制器中的元数据拷贝到恢复的控制器中。

14. 一种计算机设备,其特征在于,包括:

至少一个处理器;以及

存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1‑12任意一项所述方法的步骤。

15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑12任意一项所述方法的步骤。

说明书 :

RAID控制器恢复元数据的方法、装置、设备及介质

技术领域

[0001] 本发明涉及计算机领域,并且更具体地涉及一种RAID控制器恢复元数据的方法、装置、设备及可读介质。

背景技术

[0002] 阵列为维持其高可用性从而在硬件发生故障时不使业务停止,多采用硬件冗余的方式。同一个阵列在两个以上节点上运行,两个控制器运行正常时,相互处理不同的业务以保证运行性能,某个节点故障时,其余控制器接管故障控制器的业务以保证业务运行不中断。四个控制器时,允许其中三个控制器损坏而不影响业务。
[0003] 四控RAID(独立冗余磁盘阵列)存储系统目前有两种主流的数据备份方式,即四控同步与双控同步两种,两者均支持四个控制器损坏三个控制器,不同的地方在于四控同步允许同时的四个控制损坏三个,而双控同步仅允许四个控制器依次故障,中间必须有足够的同步时间以建立新的同步关系。相对的,双控同步提供更高的运行效率与更低的读写时延。
[0004] 数据备份主要部分是RAID所用的元数据,RAID在四个控制器上都有元数据用于支持RAID的格式化、重构以及其它特性。元数据必须是备份的,这里采用四控循环镜像的方式,即控制器依次向自己的后一个控制器同步元数据;同时,控制器必须预留容纳四个控制器全部元数据的空间保证其中三个控制器故障时可以顺利的接管元数据。
[0005] 控制器故障时,四控同步因为不需要构建新的同步关系,因此无需数据复制。而循环镜像方案由于必须构建新的同步关系,因此必须将数据复制到新的节点上,该复制过程导致控制器故障时业务临时中止时间增长,控制器恢复时同理。

发明内容

[0006] 有鉴于此,本发明实施例的目的在于提出一种RAID控制器恢复元数据的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够增加空间利用率,增加元数据的同步速度,减小对控制器业务停止的时间影响。
[0007] 基于上述目的,本发明的实施例的一个方面提供了一种RAID控制器恢复元数据的方法,包括以下步骤:
[0008] 设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;
[0009] 在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;
[0010] 响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份;
[0011] 响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复。
[0012] 根据本发明的一个实施例,设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器包括:
[0013] 设定四控RAID控制器中的第一控制器的备份控制器为第二控制器,第二控制器的备份控制器为第三控制器,第三控制器的备份控制器为第四控制器,第四控制器的备份控制器为第一控制器。
[0014] 根据本发明的一个实施例,在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器包括:
[0015] 分别在每个控制器中选取16个条带,每个控制器中的条带按照数字顺序进行编号;
[0016] 分别将每个控制器的16个条带中的每一个设定唯一归属控制器,其中,每个控制器中编号相同的条带的唯一归属控制器相同。
[0017] 根据本发明的一个实施例,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:
[0018] 响应于检测到四个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;
[0019] 拷贝控制器n+1的元数据到控制器n+2,并与控制器n+2的元数据做或运行算,将运算结果覆盖控制器n+2的元数据;
[0020] 拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;
[0021] RAID恢复业务。
[0022] 根据本发明的一个实施例,还包括:
[0023] 控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理。
[0024] 根据本发明的一个实施例,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:
[0025] 响应于检测到三个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;
[0026] 拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;
[0027] 拷贝控制器n+1的元数据到控制器n‑1,并覆盖控制器n‑1的元数据;
[0028] RAID恢复业务。
[0029] 根据本发明的一个实施例,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:
[0030] 响应于检测到第四个控制器n恢复,在当前任务结束后停止业务;
[0031] 拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;
[0032] RAID恢复业务。
[0033] 根据本发明的一个实施例,还包括:
[0034] 控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;
[0035] 控制器n+1扫描元数据,并将非归属于控制器n+1的元数据执行元数据的清理。
[0036] 根据本发明的一个实施例,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:
[0037] 响应于检测到第三个控制器n恢复,在当前任务结束后停止业务;
[0038] 拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;
[0039] RAID恢复业务。
[0040] 根据本发明的一个实施例,还包括:
[0041] 控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;
[0042] 控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理;
[0043] 控制器n+2扫描元数据,将非归属于控制器n+2的元数据执行元数据的清理。
[0044] 根据本发明的一个实施例,在设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器前还包括:
[0045] 将每个控制器中不属于控制器的元数据进行清理。
[0046] 根据本发明的一个实施例,将每个控制器中不属于控制器的元数据进行清理包括:
[0047] 响应于控制器当前任务结束,停止业务;
[0048] 拷贝每个控制器配置元数据描述需要进行的任务,以分割单位长度全量配置;
[0049] 每个控制器扫描全量的元数据,将不归属于控制器的元数据与已完成状态进行清理。
[0050] 扫描完成,RAID恢复业务。
[0051] 本发明的实施例的另一个方面,还提供了一种RAID控制器恢复元数据的装置,装置包括:
[0052] 设置模块,设置模块配置为设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;
[0053] 编号模块,编号模块配置为在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;
[0054] 备份模块,备份模块配置为响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份;
[0055] 恢复模块,恢复模块配置为响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复。
[0056] 本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
[0057] 至少一个处理器;以及
[0058] 存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
[0059] 本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
[0060] 本发明具有以下有益技术效果:本发明实施例提供的RAID控制器恢复元数据的方法,通过设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份;响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复的技术方案,能够增加空间利用率,增加元数据的同步速度,减小对控制器业务停止的时间影响。

附图说明

[0061] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0062] 图1为根据本发明一个实施例的RAID控制器恢复元数据的方法的示意性流程图;
[0063] 图2为根据本发明一个实施例的RAID的元数据空间布局的示意图;
[0064] 图3为根据本发明一个实施例的RAID中一个控制故障后的元数据空间布局的示意图;
[0065] 图4为根据本发明一个实施例的RAID控制器恢复元数据的装置的示意图;
[0066] 图5为根据本发明一个实施例的计算机设备的示意图;
[0067] 图6为根据本发明一个实施例的计算机可读存储介质的示意图。

具体实施方式

[0068] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0069] 基于上述目的,本发明的实施例的第一个方面,提出了一种RAID控制器恢复元数据的方法的一个实施例。图1示出的是该方法的示意性流程图。
[0070] 如图1中所示,该方法可以包括以下步骤:
[0071] S1设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器。本发明主要用于四控RAID系统控制器中,也可以用于包括更多控制器的系统中,如图2所示,约定node(n)标识第n个控制器,node(n+1)标识控制器的下一个控制器,例如四控时node4的下一个控制器为node1,三控时(node1离线),node4的下一个节点是node2,node(n‑
1)同理。
[0072] S2在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器。如图2所示,约定四种类型方格,四种方格从左到右分别归属于四个控制器,提出针对于RAID的元数据空间布局图,图示中四种类型的方格分别描述归属于四个控制的条带。归属于控制器的条带意味着其只会在归属的控制器上读写,约定其中d0归属于node1(控制器1,第一控制器),依次排布,其中归属于node1的条带的元数据的备份节点是node2,依次排布,node4的备份节点是node1。
[0073] S3响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份。控制器故障时,归属于控制器的条带迁移归属到控制器+1上。例如,控制器node1故障时,归属于node1的(图示左斜线的)将迁移归属到node2,同时,备份在控制器上的将备份在控制器+1上,例如,控制器node1故障时,备份在node1上的(图示方格的)将重新备份到node2上,即node4的备份节点变更为node2,如图3所示。
[0074] S4响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复。
[0075] 通过使用本发明的技术方案,能够增加空间利用率,增加元数据的同步速度,减小对控制器业务停止的时间影响。
[0076] 在本发明的一个优选实施例中,设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器包括:
[0077] 设定四控RAID控制器中的第一控制器的备份控制器为第二控制器,第二控制器的备份控制器为第三控制器,第三控制器的备份控制器为第四控制器,第四控制器的备份控制器为第一控制器。如果有更多个控制器则最后一个控制器的备份控制器是第一个控制器,能够实现每个控制器的备份控制器的有序排布,在控制器需要备份时容易找到其备份控制器。
[0078] 在本发明的一个优选实施例中,在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器包括:
[0079] 分别在每个控制器中选取16个条带,每个控制器中的条带按照数字顺序进行编号;
[0080] 分别将每个控制器的16个条带中的每一个设定唯一归属控制器,其中,每个控制器中编号相同的条带的唯一归属控制器相同。可以根据需要选用更多个条带,每个控制器中条带的数量相同,在各个控制器中编号相同的条带的唯一归属控制器相同,实现归属于控制器的条带只会在归属的控制器上进行读写,实现数据有效分布,在控制器故障时,增加元数据的同步速度,减小对控制器业务停止的时间影响。
[0081] 在本发明的一个优选实施例中,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:
[0082] 响应于检测到四个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;
[0083] 拷贝控制器n+1的元数据到控制器n+2,并与控制器n+2的元数据做或运行算,将运算结果覆盖控制器n+2的元数据;
[0084] 拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;
[0085] RAID恢复业务。通过对备份控制器的备份关系的约定,在控制器故障需要进行数据合并时,无需计算控制器的归属关系,实现内存级拷贝合并,提高数据合并速度,减少控制器业务停止的影响。
[0086] 在本发明的一个优选实施例中,还包括:
[0087] 控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理。控制器故障时完成控制器的RAID的元数据的重新同步,即上文中说明的,归属于控制器的条带迁移归属到控制器+1上,备份在控制器上的将备份在控制器+1。该过程是四个控制器中的一个控制器故障时备份的过程。
[0088] 在本发明的一个优选实施例中,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:
[0089] 响应于检测到三个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;
[0090] 拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;
[0091] 拷贝控制器n+1的元数据到控制器n‑1,并覆盖控制器n‑1的元数据;
[0092] RAID恢复业务。该过程是三个控制器中又一个控制器故障时的备份过程。通过对备份控制器的备份关系的约定,在控制器故障需要进行数据合并时,无需计算控制器的归属关系,实现内存级拷贝合并,提高数据合并速度。
[0093] 在本发明的一个优选实施例中,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:
[0094] 响应于检测到第四个控制器n恢复,在当前任务结束后停止业务;
[0095] 拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;
[0096] RAID恢复业务。在控制器恢复后,能够根据备份控制器的归属关系实现控制器数据的快速恢复。
[0097] 在本发明的一个优选实施例中,还包括:
[0098] 控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;
[0099] 控制器n+1扫描元数据,并将非归属于控制器n+1的元数据执行元数据的清理。控制器恢复时完成控制器的RAID的元数据的重新同步,原本归属于控制器现在由其他控制器接管的业务将恢复到控制器上,该过程是三个控制器恢复成四个控制器的过程,其中元数据的清理需要同时进行,能够将不属于本控制器的数据删除,提高存储空间利用率。
[0100] 在本发明的一个优选实施例中,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:
[0101] 响应于检测到第三个控制器n恢复,在当前任务结束后停止业务;
[0102] 拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;
[0103] RAID恢复业务。在控制器恢复后,能够根据备份控制器的归属关系实现控制器数据的快速恢复。
[0104] 在本发明的一个优选实施例中,还包括:
[0105] 控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;
[0106] 控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理;
[0107] 控制器n+2扫描元数据,将非归属于控制器n+2的元数据执行元数据的清理。该过程是两个控制器恢复成三个控制器的过程,其中元数据的清理需要同时进行,能够将不属于本控制器的数据删除,提高存储空间利用率。
[0108] 在本发明的一个优选实施例中,在设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器前还包括:
[0109] 将每个控制器中不属于控制器的元数据进行清理。
[0110] 在本发明的一个优选实施例中,将每个控制器中不属于控制器的元数据进行清理包括:
[0111] 响应于控制器当前任务结束,停止业务;
[0112] 拷贝每个控制器配置元数据描述需要进行的任务,以分割单位长度全量配置;
[0113] 每个控制器扫描全量的元数据,将不归属于控制器的元数据与已完成状态进行清理。扫描完成,RAID恢复业务。控制器故障与恢复是的上述算法必须配合元数据的初始配置使用,即元数据空间首先如上文中描述的分布,且元数据初始使用时必须按照控制器归属进行初始配置。这是因为控制器故障与恢复时执行的内存拷贝合并算法将不再关心控制器归属问题。控制器归属进行初始配置是指RAID模块启用控制器元数据时,RAID需要将非归属控制器的与元数据与元数据已完成状态等同。例如将元数据用于格式化,约定以bit0描述完成格式化,以bit1描述需要格式化,则控制器需要将不归属于本控制器的设置位bit0描述完成格式化。RAID元数据启用(所用任务启动时配置)时,对于四控系统中当前存在的控制器,需要同时执行上述逻辑。中途控制器故障时,元数据启用配置算法,根据存活的控制器的新的归属分配,重新执行。
[0114] 通过使用本发明的技术方案,能够增加空间利用率,增加元数据的同步速度,减小对控制器业务停止的时间影响。
[0115] 需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read‑Only Memory,ROM)或随机存取存储器(Random Access Memory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0116] 此外,根据本发明实施例公开的方法还可以被实现为由CPU 执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU 执行时,执行本发明实施例公开的方法中限定的上述功能。
[0117] 基于上述目的,本发明的实施例的第二个方面,提出了一种RAID控制器恢复元数据的装置,如图4所示,装置200包括:
[0118] 设置模块,设置模块配置为设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;
[0119] 编号模块,编号模块配置为在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;
[0120] 备份模块,备份模块配置为响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份;
[0121] 恢复模块,恢复模块配置为响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复。
[0122] 基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图5示出的是本发明提供的计算机设备的实施例的示意图。如图5所示,本发明实施例包括如下装置:至少一个处理器21;以及存储器22,存储器22存储有可在处理器上运行的计算机指令23,指令由处理器执行时实现以下方法:
[0123] 设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器;
[0124] 在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器;
[0125] 响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份;
[0126] 响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复。
[0127] 在本发明的一个优选实施例中,设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器包括:
[0128] 设定四控RAID控制器中的第一控制器的备份控制器为第二控制器,第二控制器的备份控制器为第三控制器,第三控制器的备份控制器为第四控制器,第四控制器的备份控制器为第一控制器。
[0129] 在本发明的一个优选实施例中,在每个控制器中选取预设数量的条带,并为每个条带进行编号,并设定每个控制器中编号后的条带的唯一归属控制器包括:
[0130] 分别在每个控制器中选取16个条带,每个控制器中的条带按照数字顺序进行编号;
[0131] 分别将每个控制器的16个条带中的每一个设定唯一归属控制器,其中,每个控制器中编号相同的条带的唯一归属控制器相同。
[0132] 在本发明的一个优选实施例中,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:
[0133] 响应于检测到四个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;
[0134] 拷贝控制器n+1的元数据到控制器n+2,并与控制器n+2的元数据做或运行算,将运算结果覆盖控制器n+2的元数据;
[0135] 拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;
[0136] RAID恢复业务。
[0137] 在本发明的一个优选实施例中,还包括:
[0138] 控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理。
[0139] 在本发明的一个优选实施例中,响应于控制器故障,根据设定的备份控制器和条带的唯一归属控制器对其他控制器进行备份包括:
[0140] 响应于检测到三个控制器中的一个控制器n发生故障,在当前任务结束后停止业务;
[0141] 拷贝控制器n‑1的元数据到控制器n+1,并与控制器n+1的元数据做或运行算,将运算结果覆盖控制器n+1的元数据;
[0142] 拷贝控制器n+1的元数据到控制器n‑1,并覆盖控制器n‑1的元数据;
[0143] RAID恢复业务。
[0144] 在本发明的一个优选实施例中,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:
[0145] 响应于检测到第四个控制器n恢复,在当前任务结束后停止业务;
[0146] 拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;
[0147] RAID恢复业务。
[0148] 在本发明的一个优选实施例中,还包括:
[0149] 控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;
[0150] 控制器n+1扫描元数据,并将非归属于控制器n+1的元数据执行元数据的清理。
[0151] 在本发明的一个优选实施例中,响应于控制器恢复,根据设定的备份控制器和条带的唯一归属控制器对控制器进行恢复包括:
[0152] 响应于检测到第三个控制器n恢复,在当前任务结束后停止业务;
[0153] 拷贝控制器n+1的元数据到控制器n,并覆盖控制器n的元数据;
[0154] RAID恢复业务。
[0155] 在本发明的一个优选实施例中,还包括:
[0156] 控制器n扫描元数据,并将非归属于控制器n的元数据执行元数据的清理;
[0157] 控制器n+1扫描元数据,将非归属于控制器n+1的元数据执行元数据的清理;
[0158] 控制器n+2扫描元数据,将非归属于控制器n+2的元数据执行元数据的清理。
[0159] 在本发明的一个优选实施例中,在设定RAID控制器中的每个控制器的排序,并根据排序设定每个控制器的备份控制器前还包括:
[0160] 将每个控制器中不属于控制器的元数据进行清理。
[0161] 在本发明的一个优选实施例中,将每个控制器中不属于控制器的元数据进行清理包括:
[0162] 响应于控制器当前任务结束,停止业务;
[0163] 拷贝每个控制器配置元数据描述需要进行的任务,以分割单位长度全量配置;
[0164] 每个控制器扫描全量的元数据,将不归属于控制器的元数据与已完成状态进行清理。
[0165] 扫描完成,RAID恢复业务。
[0166] 基于上述目的,本发明实施例的第四个方面,提出了一种计算机可读存储介质。图6示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图6所示,计算机可读存储介质31存储有被处理器执行时执行如上方法的计算机程序32。
[0167] 此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
[0168] 此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
[0169] 本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0170] 在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD‑ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
[0171] 以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0172] 应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0173] 上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0174] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0175] 所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。