Raid6阵列中分块编号的确定方法、系统及相关装置

文档序号:7127 发布日期:2021-09-17 浏览:37次 英文

RAID6阵列中分块编号的确定方法、系统及相关装置

技术领域

本申请涉及数据存储领域,特别涉及一种RAID6阵列中分块编号的确定方法、系统及相关装置。

背景技术

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)典型的代表为RAID6,RAID6,是由4-16块盘组成的阵列,该阵列中有两块热备盘。当阵列中同时拔下两块盘时仍保持数据的完整性。但需要确定阵列中的分块时,需要每次给定磁盘编号和条带编号,并计算一次分块编号,导致分块编号确定的过程既复杂又耗时。

发明内容

本申请的目的是提供一种RAID6阵列中分块编号的确定方法、RAID6阵列中分块编号的确定系统、计算机可读存储介质和存储设备,能够提高RAID6阵列中各分块编号的确认效率。

为解决上述技术问题,本申请提供一种RAID6阵列中分块编号的确定方法,具体技术方案如下:

接收目标分块的编号获取请求;所述获取请求包括磁盘编号和条带编号;

根据所述磁盘编号和所述条带编号判断所述RAID6阵列对应哈希表中是否存在所述目标分块的目标分块编号;

若是,从所述哈希表中读取所述目标分块编号并响应所述编号获取请求;

若否,判断所述RAID6阵列的磁盘数目是否为偶数;

若所述RAID6阵列的磁盘数目为偶数,根据所述目标分块对应的对称分块确定所述目标分块编号;其中,若磁盘数目为N,所述目标分块与所述对称分块属于相同磁盘,且所述目标分块与所述对称分块之间条带编号之差的绝对值为N/2。

可选的,根据所述目标分块对应的对称分块确定所述目标分块编号包括:

若所述对称分块的对称分块编号为校验盘,则所述目标分块的目标分块编号为与对称分块编号相反的校验盘;

若所述对称分块的对称分块编号不为校验盘,将所述对称分块编号作为所述目标分块编号。

可选的,若存储阵列对应哈希表中不存在所述目标分块的目标分块编号,还包括:

将所述磁盘编号和所述条带编号由物理地址转化为逻辑地址,并基于所述逻辑地址计算所述目标分块的目标分块编号。

可选的,基于所述逻辑地址计算所述目标分块的目标分块编号包括:

在所述逻辑地址下,根据所述条带编号计算所述磁盘编号对应磁盘上的校验盘与阵列中0号磁盘的间隔数;

根据所述间隔数和磁盘数目计算所述目标分块的目标分块编号。

可选的,基于所述逻辑地址计算所述目标分块的目标分块编号之后,还包括:

将所述目标分块的目标分块编号添加至所述RAID6阵列对应的哈希表。

本申请还提供一种RAID6阵列中分块编号的确定系统,包括:

请求接收模块,用于接收目标分块的编号获取请求;所述获取请求包括磁盘编号和条带编号;

哈希表检测模块,用于根据所述磁盘编号和所述条带编号判断所述RAID6阵列对应哈希表中是否存在所述目标分块的目标分块编号;

哈希表读取模块,用于所述哈希表检测模块的判断结果为是时,从所述哈希表中读取所述目标分块编号并响应所述编号获取请求;

判断模块,用于所述哈希表检测模块的判断结果为否时,判断所述RAID6阵列的磁盘数目是否为偶数;

编号确认模块,用于所述判断模块的判断结果为是时,根据所述目标分块对应的对称分块确定所述目标分块编号;其中,若磁盘数目为N,所述目标分块与所述对称分块属于相同磁盘,且所述目标分块与所述对称分块之间条带编号之差的绝对值为N/2。

可选的,编号确认模块包括:

第一确认单元,用于若所述对称分块的对称分块编号为校验盘,则确认所述目标分块编号为与对称分块编号相反的校验盘;

第二确认单元,用于若所述对称分块的对称分块编号不为校验盘,将所述对称分块编号作为所述目标分块编号。

可选的,还包括:

分块编号计算模块,用于若存储阵列对应哈希表中不存在所述目标分块的目标分块编号,将所述磁盘编号和所述条带编号由物理地址转化为逻辑地址,并基于所述逻辑地址计算所述目标分块的目标分块编号。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。

本申请还提供一种存储设备,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。

本申请提供一种RAID6阵列中分块编号的确定方法,包括:接收目标分块的编号获取请求;所述获取请求包括磁盘编号和条带编号;根据所述磁盘编号和所述条带编号判断所述RAID6阵列对应哈希表中是否存在所述目标分块的目标分块编号;若是,从所述哈希表中读取所述目标分块编号并响应所述编号获取请求;若否,判断所述RAID6阵列的磁盘数目是否为偶数;若所述RAID6阵列的磁盘数目为偶数,根据所述目标分块对应的对称分块确定所述目标分块编号;其中,若磁盘数目为N,所述目标分块与所述对称分块属于相同磁盘,且所述目标分块与所述对称分块之间条带编号之差的绝对值为N/2。

本申请在接收到目标分块的编号获取请求时,先检索哈希表中是否存在目标分块编号,若存在,直接从哈希表中返回。否则,可以在磁盘数为偶数时利用分块编号之间的对称性快速获取目标分块编号,从而不必逐个计算分块编号,有效提高了分块编号的确认效率。

本申请还提供一种RAID6阵列中分块编号的确定系统、计算机可读存储介质和存储设备,具有上述有益效果,此处不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种RAID6阵列中分块编号的确定方法的流程图;

图2为本申请实施例所提供的一种RAID6阵列的空间分布图;

图3为本申请实施例所提供的一种RAID6阵列中分块编号的确定系统结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种RAID6阵列中分块编号的确定方法的流程图,本申请提供一种RAID6阵列中分块编号的确定方法,具体技术方案如下:

S101:接收目标分块的编号获取请求;

S102:根据所述磁盘编号和所述条带编号判断所述RAID6阵列对应哈希表中是否存在所述目标分块的目标分块编号;若是,进入S103;若否,进入S104;

S103:从所述哈希表中读取所述目标分块编号并响应所述编号获取请求;

S104:判断所述RAID6阵列的磁盘数目是否为偶数;若是,进入S105;

S105:根据所述目标分块对应的对称分块确定所述目标分块编号;

首先接收编号获取请求,在此对于如何接收该编号获取请求不作限定。获取请求包括磁盘编号和条带编号,磁盘编号和条带编号可以直接计算得到目标分块的分块编号,但过程较为繁琐。

本实施例中,磁盘编号和条带编号用于确定对应的分块位置信息。参见图2,图2为本申请实施例所提供的一种RAID6阵列的空间分布图,图2中,表明了磁盘0到磁盘5共六个磁盘,图2右侧标注了该阵列所构成的条带,而每个条带由分块构成。每个磁盘都有固定的rotation,数值为该磁盘上的校验盘P离阵列中0号磁盘的间隔数。其中,分块编号Q和P均为校验盘。

接收到编号获取请求后,首先从哈希表中读取对应的目标分块编号,如果存在,则可以直接读取哈希表并返回,无需利用磁盘编号和条带编号进行计算。

若哈希表中不存在目标分块的目标分块编号,此时判断该RAID6阵列的磁盘数目是否为偶数。由图2可以看出,图2所示RAID6阵列的磁盘数目为六个,即偶数,其中条带0到条带2,与条带3至条带5之间除了校验盘恰好相反外,其余分块编号均相同。而实际上,只要RAID6阵列的磁盘数目为偶数,均有此规律,即前半数的条带中的分块编号与后半数条带中的分块编号除校验盘外均相同,而校验盘相反。例如,磁盘0、条带编号为2的分块编号为P,对应的磁盘0、条带编号为5的分块编号为Q。而磁盘1、条带编号为2的分块编号为Q,对应的磁盘1、条带编号为5的分块编号为P。因此可以利用目标分块的对称分块的编号确定目标分块的编号。当然,这要二者为对称分块。

对于两个分块是否为对称分块的判断方式如下:若磁盘数目为N,N为偶数,目标分块与对称分块属于相同磁盘,且目标分块与对称分块的条带编号之差为N/2。

由此可见:若对称分块的对称分块编号为校验盘,则目标分块编号为与对称分块编号相反的校验盘;若对称分块的对称分块编号不为校验盘,将对称分块编号作为目标分块编号。

若哈希表中存在目标分块的对称分块的编号,可以直接根据对称分块编号确定目标分块编号,同样无需经过复杂计算过程得到目标分块编号。

当然,若存储阵列对应哈希表中不存在目标分块的目标分块编号,此时只能通过正常计算得到目标分块编号,即将磁盘编号和条带编号由物理地址转化为逻辑地址,并基于逻辑地址计算目标分块的目标分块编号。

具体的,在逻辑地址下,根据条带编号计算磁盘编号对应磁盘上的校验盘与阵列中0号磁盘的间隔数,再根据间隔数和磁盘数目计算目标分块的目标分块编号。

若经过计算得到目标分块的分块编号,为了便于后续查询该分块编号或者该分块的对称分块的编号,可以将目标分块的目标分块编号添加至RAID6阵列对应的哈希表,从而便于快速查询。

本申请实施例在接收到目标分块的编号获取请求时,先检索哈希表中是否存在目标分块编号,若存在,直接从哈希表中返回。否则,可以在磁盘数为偶数时利用分块编号之间的对称性快速获取目标分块编号,从而不必逐个计算分块编号,基于缓存机制以及设计相关的算法很好的加速分块逻辑地址的求解速度,从而提高设备性能,有效提高了冗余阵列分块编码的求解效率。

下面对本申请实施例提供的一种RAID6阵列中分块编号的确定系统进行介绍,下文描述的确定系统与上文描述的RAID6阵列中分块编号的确定方法可相互对应参照。

参见图3,图3为本申请实施例所提供的一种RAID6阵列中分块编号的确定系统的结构示意图,本申请还提供一种RAID6阵列中分块编号的确定系统,包括:

请求接收模块,用于接收目标分块的编号获取请求;所述获取请求包括磁盘编号和条带编号;

哈希表检测模块,用于根据所述磁盘编号和所述条带编号判断所述RAID6阵列对应哈希表中是否存在所述目标分块的目标分块编号;

哈希表读取模块,用于所述哈希表检测模块的判断结果为是时,从所述哈希表中读取所述目标分块编号并响应所述编号获取请求;

判断模块,用于所述哈希表检测模块的判断结果为否时,判断所述RAID6阵列的磁盘数目是否为偶数;

编号确认模块,用于所述判断模块的判断结果为是时,根据所述目标分块对应的对称分块确定所述目标分块编号;其中,若磁盘数目为N,所述目标分块与所述对称分块属于相同磁盘,且所述目标分块与所述对称分块之间条带编号之差的绝对值为N/2。

基于上述实施例,作为优选的实施例,编号确认模块包括:

第一确认单元,用于若所述对称分块的对称分块编号为校验盘,则确认所述目标分块编号为与对称分块编号相反的校验盘;

第二确认单元,用于若所述对称分块的对称分块编号不为校验盘,将所述对称分块编号作为所述目标分块编号。

基于上述实施例,作为优选的实施例,还可以包括:

分块编号计算模块,用于若存储阵列对应哈希表中不存在所述目标分块的目标分块编号,将所述磁盘编号和所述条带编号由物理地址转化为逻辑地址,并基于所述逻辑地址计算所述目标分块的目标分块编号。

基于上述实施例,作为优选的实施例,还可以包括:

哈希表更新模块,用于将所述目标分块的目标分块编号添加至所述RAID6阵列对应的哈希表。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种存储设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述存储设备还可以包括各种网络接口,电源等组件。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种磨损均衡方法、装置、设备及可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类