一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

快速通用的RAID降级为RAID5的方法、系统、设备和存储介质与流程

2022-06-01 16:18:10 来源:中国专利 TAG:

快速通用的raid降级为raid5的方法、系统、设备和存储介质
技术领域
1.本发明涉及磁盘阵列领域,更具体地,特别是指一种快速通用的raid降级为raid5的方法、系统、设备和存储介质。


背景技术:

2.raid(redundant arrays of independent disks)即具有冗余能力的磁盘阵列,磁盘阵列是通过将多个独立磁盘组合一起,从而得到一个容量巨大的磁盘组。采用raid存储技术,可以大大提高存储容量,提高系统输入输出的请求处理能力并且通过数据的分布式存储技术,并行访问手段和信息冗余技术提高数据的可靠性。按照不同的策略和架构,raid可以被分为不同的等级:raid 0、1、5、6、10。
3.raid 5(分布式奇偶校验的独立磁盘结构)。它的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它的意思也相同。raid 5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。对于raid 5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在raid 5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
4.raid 6是带两种分布存储的奇偶校验码独立磁盘结构。它是对raid 5的扩展,主要是用于要求数据绝对不能出错的场合。由于引入了第二种奇偶校验值,所以需要n 2个磁盘,同时对控制器的设计变得十分复杂,进一步提升了磁盘阵列的数据可靠性。需要更多的空间来存储校验值,同时在写操作中具有更高的性能损失。
5.实际的应用场景下,用户存在对已经组好的raid组降级的需求,降级即是将raid6降为raid5、1、0或是将tp-raid降为raid6或raid5、1、0等操作,无论哪种降级,都会涉及将一块原本用来存储校验的盘从raid组抽出,而原本的raid组需要完成数据搬移,降级后的raid组计算等工作。传统的raid降级是在抽取磁盘后,基于负载均衡算法,重新迁移数据然后完成编码的,这样的操作较为复杂。


技术实现要素:

6.有鉴于此,本发明实施例的目的在于提出一种快速通用的raid降级为raid5的方法、系统、计算机设备及计算机可读存储介质,本发明可以减少数据迁移,减少新的raid5的raid组校验编码,在保证功能正确的前提下,保证操作简单,且针对任意raid组都通用的优势。
7.基于上述目的,本发明实施例的一方面提供了一种快速通用的raid降级为raid5的方法,包括如下步骤:根据负载均衡的排布位置关系确定待降级的raid组编码的参数信息;根据需求在所述待降级的raid组中抽调出对应的磁盘,并对剩下的raid组进行重新排布编号;基于负载均衡排布算法计算出新的排布位置,并对位置发生了变化的数据块或校
验块进行移位;以及根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新。
8.在一些实施方式中,所述对位置发生了变化的数据块或校验块进行移位包括:将所述待降级的raid组的数据全部读入动态存储器,并根据新的排布位置将数据写入对应的位置。
9.在一些实施方式中,所述根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新包括:对所述待降级的raid组的校验码进行异或计算以得到降级后的校验码。
10.在一些实施方式中,方法还包括:将所述降级后的校验码存储到存储介质中,并根据所述新的排布位置将所述降级后的校验码写入对应的磁盘。
11.本发明实施例的另一方面,提供了一种快速通用的raid降级为raid5的系统,包括:获取模块,配置用于根据负载均衡的排布位置关系确定待降级的raid组编码的参数信息;排布模块,配置用于根据需求在所述待降级的raid组中抽调出对应的磁盘,并对剩下的raid组进行重新排布编号;移位模块,配置用于基于负载均衡排布算法计算出新的排布位置,并对位置发生了变化的数据块或校验块进行移位;以及更新模块,配置用于根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新。
12.在一些实施方式中,所述移位模块配置用于:将所述待降级的raid组的数据全部读入动态存储器,并根据新的排布位置将数据写入对应的位置。
13.在一些实施方式中,所述更新模块配置用于:对所述待降级的raid组的校验码进行异或计算以得到降级后的校验码。
14.在一些实施方式中,系统还包括写入模块,配置用于:将所述降级后的校验码存储到存储介质中,并根据所述新的排布位置将所述降级后的校验码写入对应的磁盘。
15.本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。
16.本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
17.本发明具有以下有益技术效果:可以减少数据迁移,减少新的raid5的raid组校验编码,在保证功能正确的前提下,保证操作简单,且针对任意raid组都通用的优势。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
19.图1为本发明提供的快速通用的raid降级为raid5的方法的实施例的示意图;
20.图2为本发明提供的快速通用的raid降级为raid5的方法的实施例的架构图;
21.图3为本发明提供的快速通用的raid降级为raid5的系统的实施例的示意图;
22.图4为本发明提供的快速通用的raid降级为raid5的计算机设备的实施例的硬件
结构示意图;
23.图5为本发明提供的快速通用的raid降级为raid5的计算机存储介质的实施例的示意图。
具体实施方式
24.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
25.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
26.本发明实施例的第一个方面,提出了一种快速通用的raid降级为raid5的方法的实施例。图1示出的是本发明提供的快速通用的raid降级为raid5的方法的实施例的示意图。如图1所示,本发明实施例包括如下步骤:
27.s1、根据负载均衡的排布位置关系确定待降级的raid组编码的参数信息;
28.s2、根据需求在所述待降级的raid组中抽调出对应的磁盘,并对剩下的raid组进行重新排布编号;
29.s3、基于负载均衡排布算法计算出新的排布位置,并对位置发生了变化的数据块或校验块进行移位;以及
30.s4、根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新。
31.图2示出的是本发明提供的快速通用的raid降级为raid5的方法的实施例的架构图,结合图2对本发明实施例进行说明。在完成raid组后,基于用户的需求,可能需要对raid组进行降级,降级指的是将现有组好的raid组向下降一级或两级,将本来存放校验数据的位置空出,实现硬盘的空出以作其他功能需求的使用,而降级针对现有的raid组一般包括tp-raid向raid5、6、0进行降级,raid6向raid5、0进行降级。
32.常用的raid算法需要首先确定raid编码的参数信息,参数信息一般基于负载均衡的具体排布位置关系确定,以常见的左旋不对齐的负载均衡排布为例,当数据盘为3,校验盘为2,进行raid6组的情况下,一般raid组的排布形式如图2中

所示。
33.本发明在降级时保证上述关系外,还可针对任意raid算法降级为raid5的需求,进行快速简单的实现。为对其操作方法的正确性进行说明,首先介绍raid5和raid6的算法。
34.传统的raid5的算法原理使用的是:
35.d1 d2 d3 ... dm p=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
36.raid6的算法原理是:
[0037][0038]
raid的编解码算法就是在做上述关系式的以p为未知数的方程求解。这里的运算在存储中使用伽罗华域运算,因此可知在传统raid5和6中p的关系式分别是:
[0039]
raid5:
[0040]
[0041]
raid6:
[0042][0043]
在存储的系统中,为了减少运算复杂度,保证数据不会溢出,以上的统一和存储的编解码运算一般会通过伽罗华域来实现。亦即是表现在硬件的实现中,加减法会通过异或运算来实现,而乘除法会用针对不同伽罗华域多项式的伽罗华乘除法实现。
[0044]
正常的raid运算中,当发生降级后,会基于负载均衡的算法排布需求,对所有涉及的数据进行重新拍布,然后重新进行编码。本发明的操作方式不同于传统操作,为进行说明,以raid6在图2中的左旋不对齐方式下降级为raid5的操作方式为例进行举例说明:
[0045]
根据负载均衡的排布位置关系确定待降级的raid组编码的参数信息。图2中的p1和p2表示的是raid6组中的两个校验,d0-d14是不同的用户数据块,行代表的是条带,列代表的是实际的硬盘。数据块和校验块基于负载均衡的方式在5块硬盘所组成的raid6组中排布,校验块的位置基于左旋不对齐的方式每条带不同,从而实现对盘访问需求的平均化。基于盘号(1-5)可以得到raid6的编解码参数关系,基于其关系使用对应的数据块,即可完成每条带的编码。如果发生降级,需要首先拆除相应的校验块,其次基于负载均衡算法的需求,挪动相应的数据块,并改写编码校验块的信息。
[0046]
根据需求在所述待降级的raid组中抽调出对应的磁盘,并对剩下的raid组进行重新排布编号。基于需求,抽调出任意一个磁盘,这里为了举例方便,任意抽调了编号为3的磁盘。抽调的磁盘在图2中以虚线表示,主机及其他的记录会表示这块磁盘不在此raid组中,如有新的需求,则将新的信息写入虚线的磁盘即可。虚线中的数据需要全部读入ddr(double data rate,双倍速率同步动态随机存储器)等动态存储器,因为其数据信息涉及重新写入新的位置,校验信息涉及计算得到新的raid组校验信息。
[0047]
基于负载均衡排布算法计算出新的排布位置,并对位置发生了变化的数据块或校验块进行移位。基于负载均衡排布算法计算出新的排布位置,图2中的灰色块(也即d0、d1、d5、d7、d9、d12、d13和d14)表示的是相比之前发生了变化的数据块或校验块。其中的数据块需要通过移位的操作进行处理。
[0048]
在一些实施方式中,所述对位置发生了变化的数据块或校验块进行移位包括:将所述待降级的raid组的数据全部读入动态存储器,并根据新的排布位置将数据写入对应的位置。移位的操作方式为首先将原本的数据读入ddr等动态存储器,然后将数据写入到正确的位置所在的数据。其读取和写入的顺序以不影响数据的正确性以及保证数据完整性为前提,以尽量少的访问ddr为准。
[0049]
根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新。
[0050]
在一些实施方式中,所述根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新包括:对所述待降级的raid组的校验码进行异或计算以得到降级后的校验码。
[0051]
raid6或raid-tp以及其他可能涉及的高等级raid组,在降级为raid5时,都涉及校验码的更新,因为raid算法的变化,此时的校验码值一定会变化。传统的方法为基于raid5
的算法对其重新计算,而本发明实施例给出的是基于负载均衡排布,对raid5的校验码进行更新的一种快速算法。其算法为:
[0052][0053]
这里的p’为降级为raid5后的校验,p1p2为对应的raid6中的原本校验。其他raid算法的降级也采用同样的方式。下面对其进行算法可行性的验证,以公式(4)的raid6编码为例,对其p1p2进行求和,可得到:
[0054]
所得结果和公式(3)的raid5的p相同,证明本发明方法正确。相应的,可推得其他raid算法,通过本发明方法,也都会得到相同的运算结果,即证明这样的更新校验码的方法,符合raid5的编码要求,校验码正确。
[0055]
在一些实施方式中,方法还包括:将所述降级后的校验码存储到存储介质中,并根据所述新的排布位置将所述降级后的校验码写入对应的磁盘。使用本发明实施例的更新方式的第一步为通过从磁盘取校验数据直接进行异或运算,这里举例为raid6,因此有两个校验盘数据,而对于其他高级raid算法,取出相应数量的校验数据即可。第二步将异或运算的结果存储ddr或buffer等其他可以存取数据的存储介质。然后是第三步,基于负载均衡运算的排布方式,在合适的时间,将数据写入新的磁盘即可。
[0056]
本发明实施例通过对算法的推导改良,得到了一种区别于传统raid组的降级运算方式,将数据进行简单运算得到相应的校验数据即可,而基于这种方式,操作运算的方法进行了针对性的改进,可以针对任意高级raid算法降级raid5的运算,以一种通用简便的方式实施,减少运算复杂度,减少ddr访问次数,从而达到高速完成运算的优势。
[0057]
需要特别指出的是,上述快速通用的raid降级为raid5的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于快速通用的raid降级为raid5的方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在实施例之上。
[0058]
基于上述目的,本发明实施例的第二个方面,提出了一种快速通用的raid降级为raid5的系统。如图3所示,系统200包括如下模块:获取模块,配置用于根据负载均衡的排布位置关系确定待降级的raid组编码的参数信息;排布模块,配置用于根据需求在所述待降级的raid组中抽调出对应的磁盘,并对剩下的raid组进行重新排布编号;移位模块,配置用于基于负载均衡排布算法计算出新的排布位置,并对位置发生了变化的数据块或校验块进行移位;以及更新模块,配置用于根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新。
[0059]
在一些实施方式中,所述移位模块配置用于:将所述待降级的raid组的数据全部读入动态存储器,并根据新的排布位置将数据写入对应的位置。
[0060]
在一些实施方式中,所述更新模块配置用于:对所述待降级的raid组的校验码进
行异或计算以得到降级后的校验码。
[0061]
在一些实施方式中,系统还包括写入模块,配置用于:将所述降级后的校验码存储到存储介质中,并根据所述新的排布位置将所述降级后的校验码写入对应的磁盘。
[0062]
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:s1、根据负载均衡的排布位置关系确定待降级的raid组编码的参数信息;s2、根据需求在所述待降级的raid组中抽调出对应的磁盘,并对剩下的raid组进行重新排布编号;s3、基于负载均衡排布算法计算出新的排布位置,并对位置发生了变化的数据块或校验块进行移位;以及s4、根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新。
[0063]
在一些实施方式中,所述对位置发生了变化的数据块或校验块进行移位包括:将所述待降级的raid组的数据全部读入动态存储器,并根据新的排布位置将数据写入对应的位置。
[0064]
在一些实施方式中,所述根据所述待降级的raid组的校验码对移位后的raid组的校验码进行更新包括:对所述待降级的raid组的校验码进行异或计算以得到降级后的校验码。
[0065]
在一些实施方式中,步骤还包括:将所述降级后的校验码存储到存储介质中,并根据所述新的排布位置将所述降级后的校验码写入对应的磁盘。
[0066]
如图4所示,为本发明提供的上述快速通用的raid降级为raid5的计算机设备的一个实施例的硬件结构示意图。
[0067]
以如图4所示的装置为例,在该装置中包括一个处理器301以及一个存储器302。
[0068]
处理器301和存储器302可以通过总线或者其他方式连接,图4中以通过总线连接为例。
[0069]
存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的快速通用的raid降级为raid5的方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现快速通用的raid降级为raid5的方法。
[0070]
存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据快速通用的raid降级为raid5的方法的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0071]
一个或者多个快速通用的raid降级为raid5的方法对应的计算机指令303存储在存储器302中,当被处理器301执行时,执行上述任意方法实施例中的快速通用的raid降级为raid5的方法。
[0072]
执行上述快速通用的raid降级为raid5的方法的计算机设备的任何一个实施例,
可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0073]
本发明还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时执行快速通用的raid降级为raid5的方法的计算机程序。
[0074]
如图5所示,为本发明提供的上述快速通用的raid降级为raid5的计算机存储介质的一个实施例的示意图。以如图5所示的计算机存储介质为例,计算机可读存储介质401存储有被处理器执行时执行如上方法的计算机程序402。
[0075]
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,快速通用的raid降级为raid5的方法的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0076]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0077]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0078]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0079]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0080]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献