CN104850504A - 一种加速基于xor的raid-6编解码过程的方程并行计算方法 - Google Patents
一种加速基于xor的raid-6编解码过程的方程并行计算方法 Download PDFInfo
- Publication number
- CN104850504A CN104850504A CN201510273730.3A CN201510273730A CN104850504A CN 104850504 A CN104850504 A CN 104850504A CN 201510273730 A CN201510273730 A CN 201510273730A CN 104850504 A CN104850504 A CN 104850504A
- Authority
- CN
- China
- Prior art keywords
- data block
- thread
- cam
- bst
- blocks
- 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.)
- Granted
Links
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了一种加速基于XOR的RAID-6编解码过程的方程并行计算方法:将基于XOR的RAID-6编码的校验规则用校验方程组表示,把每个校验方程在编解码过程中的求解分解为两个阶段——“预计算阶段”以及“递归求解阶段”;每个校验方程由一个独立的线程实施求解,多个校验方程的预计算阶段被并行执行;使用一个全局共享的数据块状态表记录数据块的状态以协调所有线程的执行。本发明方法利用编码的潜在并行能力,使得大部分计算可以同时使用多个线程处理,充分发挥并行处理能力,缩短计算所花费的时间,提高编解码的性能。
Description
技术领域
本发明属于磁盘阵列存储技术领域,更具体地,涉及一种加速基于XOR的RAID-6编解码过程的方法。
背景技术
磁盘阵列(Redundant Array of Independent Disks,RAID)是一种把多个磁盘组合起来,把数据分散存储在不同的磁盘中的技术。与单个磁盘相比,RAID可以达到提高读写速度或者增加容错能力的目的。RAID被分为多个级别,其中RAID-6具有冗任意两个磁盘失效的能力。
RAID-6使用纠删码对数据进行保护,依照纠删码在编解码过程需要使用的运算操作可以把纠删码区分为两大类:RS码以及基于XOR的编码。RS码是基于伽罗华域(也称有限域)运算的编码,在其编解码过程需要使用到伽罗华域乘法运算。基于XOR的编码在校验块的计算和失效块的恢复中都只需要使用异或运算。
目前在RAID-6系统中使用的基于XOR编码的编解码过程通常是被串行执行的,而现在处理器发展趋向于提高多核心并行处理能力,串行执行的编解码过程无法从这种发展中获得性能的提升。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种加速基于XOR的RAID-6编解码过程的方程并行计算方法,该方法能够应用于多种基于XOR的RAID-6编码的编解码过程中,并且以部分并行的方式缩短编解码过程所花费的时间。
本发明是一个利用基于XOR的RAID-6编码潜在并行能力以提高编解码性能的方法。该方法把RAID-6编码的校验规则用校验方程组表示,并且把校验方程组中每个校验方程的计算分为两个阶段,第一阶段(预计算阶段)使用方程包含的“存活块”计算中间值,第二阶段(递归求解阶段)把第一阶段计算的中间值与被恢复的“丢失块”一起完成该方程的求解。该方法把每个方程指派给一个线程,所有线程的预计算阶段可以被并行执行。
本发明提供了一种加速基于XOR的RAID-6编解码过程的方程并行计算方法,包括:
步骤1将基于XOR的RAID-6编码的校验规则用校验方程组表示,方程组中第j个方程记为Ej,方程总数记为k;校验方程组中的每一个方程Ej都使用一个数组EVj={pj,0,pj,1,…,pj,l}表示,数组中每个元素代表该方程所涉及的一个数据块的序号;将所有EVj记录到数据结构EVS中;
步骤2把需要进行编解码的条带的所有数据块从磁盘阵列读取到内存中,这个条带的磁盘数和行数分别记为n和r,第i个数据块记为Bi,所有数据块存入到数据结构BlkS中,其中所述0≤i<(n*r);
步骤3条带中的每一个数据块都是“可用”的或者“不可用”的,这称为数据块的状态;其中“可用”表示数据块记录的数据是完整的,而“不可用”表示数据块记录的数据不完整或者为空;使用一个数组BST记录条带中所有数据块的状态,BST称为数据块状态表;BST中的第i个元素对应条带第i个数据块的状态,元素“1”代表对应的数据块“可用”,而“0”代表对应的数据块“不可用”;
步骤4把EVS、BlkS以及BST输入到EOPC的主线程COM中;
步骤5EOPC主线程COM为EVS中记录的每个校验方程创建一个EOPC的计算线程CAM;
步骤6每个计算线程CAM完成其对应校验方程的求解。
具体地,所述步骤6包括多个CAM线程求解对应校验方程的过程,其中的每个CAMj(1≤j≤k)线程求解的过程可分解为以下多个子步骤:
步骤(6-1)线程CAMj通过“检查”BST确认其方程向量EVS[j]中包含的“丢失块”以及“存活块”,并且把“丢失块”的序号记录到“丢失块记录表”中,如果“丢失块”数量等于0,执行步骤(6-9),否则执行步骤(6-2);
步骤(6-2)“预计算阶段”:线程CAMj计算其对应校验方程中所有“存活块”的异或和,并且暂存到一个临时数据块IBj中,完成后执行步骤(6-3);
步骤(6-3)线程CAMj通过“检查”BST确认其“丢失块记录表”中当前所包含的“不可用块”数量,并且把当前“不可用块”的序号记录到其“不可用块记录表”中;如果“不可用块”数量等于0,则执行步骤(6-9);如果“不可用块”数量等于1,这个“不可用块”称为CAMj的目标数据块,则执行步骤(6-5);如果“不可用块”数量大于1,则执行步骤(6-4);
步骤(6-4)线程CAMj所对应的方程包含有多于1个未知量,无法进行求解,该线程插入到条件变量cond的等待队列,并且开始睡眠;如果线程CAMj被唤醒,则继续执行步骤(6-3);
步骤(6-5)“递归求解阶段”:线程CAMj把被记录于其“丢失块记录表”中而不被记录于其“不可用块记录表”中的数据块,与临时数据块IBj求异或和,结果依然存入临时数据块IBj中,继续执行步骤(6-6);
步骤(6-6)线程CAMj检查其目标数据块在BST中目前被记录的状态,如果该数据块被标记为“1”,则执行步骤(6-9),否则执行步骤(6-7);
步骤(6-7)线程CAMj把临时数据块IBj存入到其目标数据块中,并且“更新”该数据块在BST中记录的状态,继续执行步骤(6-8);
步骤(6-8)线程CAMj把条件变量cond等待队列中的所有线程唤醒,继续执行步骤(6-9);
步骤(6-9)线程CAMj结束运行。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下优点:
使用本发明实现的编解码过程可以利用编码的潜在并行能力,使得大部分计算可以同时使用多个线程处理,充分发挥多核处理器的并行处理能力,缩短计算过程所花费的时间,从而提高编解码的性能。
附图说明
图1为本发明使用的条带的示意图;
图2为本发明使用的三种数据结构的示意图;
图3为本发明实施编解码过程步骤的示意图;
图4为本发明单个线程的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明实施例中将会用到一些定义,其中的名词解释如下:
条带(stripe):是本发明中应用RAID-6编码进行数据保护的基本单元。一个磁盘阵列被逻辑地划分为多个条带,每个条带横跨多个磁盘,在这些磁盘里占用相同的容量。条带内使用RAID-6编码对数据进行保护。图1是一个条带的示意图。
行(row):是本发明中一个对条带进行划分的方法。每个条带被逻辑地划分为多行,每一行都横跨条带中的所有磁盘,并且每一行的容量都相等。
数据块(data block):是本发明中进行编解码的数据的基本单位。把条带中每个磁盘看做一列,那么整个条带被行和列划分为多个数据块。本发明在编解码过程中进行计算的基本单位是一个数据块。依照数据块所存放的数据可以把数据块分为两类,存放原始数据的称为原始块,而存放校验数据的称为校验块。在本发明中,数据块有两种状态,分别是“可用”和“不可用”,其中“可用”表示数据块记录的数据是完整的,而“不可用”表示数据块记录的数据不完整或者为空。每个数据块被按顺序编号,图1表示了数据块编号的方法。除此以外,当条带遭遇到磁盘失效或者扇区故障时,变为“不可用”的块特别地称为“丢失块”,而依然“可用”的块特别地称为“存活块”。
编码过程(encoding):是在条带中利用原始数据块生成校验数据块的过程。
解码过程(decoding):是在条带中部分数据块失效后用存活数据块重构丢失数据块的过程。
编解码(coding):是指编码过程和解码过程。
校验规则(coding rule):是RAID-6编码设定的校验块与原始块之间的关系,它确定了从原始块计算校验块的方法。
校验方程(parity check):是由RAID-6编码的校验规则确定的方程,这些方程都是形如多个数据块异或和等于零的方程。方程中包含的“不可用”数据块是方程的未知量,相反,“可用”数据块是方程的已知量。只包含有一个未知量的校验方程称为是可独立求解的。本发明把校验方程的求解过程分解为两个阶段,分别是“预计算阶段”与“递归求解阶段”。在每个校验方程的“预计算阶段”,求出校验方程中的“存活块”的异或和并存入到一个临时块中。而在“递归求解阶段”使用临时块完成对方程组的联合求解。
z-turn:是一个存在于部分RAID-6编码中的性质。对于具有z-turn性质的编码,只要失效情况在该编码的容错能力范围内,那么在这个编码的校验方程组中,至少有一个校验方程是可独立求解的。
方程导向的并行编解码方法(Equation-Oriented Parallel Coding,EOPC):是本发明方法的名称,本方法可以被应用以实现具有z-turn性质的RAID-6编码的编解码过程。
一、EOPC的设计
EOPC的设计包含有两个关键的数据结构,分别是EV(Equation Vector)和BST(Block Status Table)。其中每个EV都是一个数组并对应一个校验方程,数组中的元素是该校验方程所涉及的数据块的编号。对应于一个编码所定义的校验方程组中的每一个方程,都有一个相应的EV。EVS是校验方程组中所有校验方程对应EV的集合,EVS[i]是第i个EV。BST是一个数组,BST中的元素与条带中的数据块一一对应,BST[i]表示BST中的第i个元素,每个元素是“1”或者“0”,其中“1”代表其对应的数据块“可用”,而“0”代表其对应的数据块“不可用”。BST是一个全局共享的数据结构,可以被所有线程访问,并且需要在编解码开始前依照数据块的状态进行初始化。BST被一个互斥锁mutex所保护,线程对BST的访问操作包括“检查”和“更新”。通过“检查”BST,线程可以获取所有数据块当前的状态,通过“更新”BST线程可以修改数据块被记录的状态。线程在访问BST前需要先获取互斥锁mutex,并且在操作完成后释放mutex。在进行编解码前,EOPC需要把条带的所有数据块都读取到内存中,并且按块序号顺序存放在数据结构BlkS中。BlkS是一片连续的内存空间,以一个数据块大小为单位进行偏移,BlkS[i]表示存放在内存中的第i个数据块。EVS、BST和BlkS都是作为参数被输入到EOPC中的。图2是EVS、BST以及BlkS三种数据结构的示意图。
在使用EOPC实现编解码过程时,使用到的线程被分为两类,分别是COM(Control Module)和CAM(Calculate Module)。其中COM是主线程,负责依照EVS创建CAM线程。在用EOPC实施一个条带的编解码过程时,会有多个CAM被创建,数量与该条带使用的编码所对应的校验方程数量一致。每个CAM在被创建时被指派一个EV以对应一个校验方程,并且每个CAM负责完成其对应校验方程的求解。
在实施编解码的过程中,每个CAM线程可能处于以下三种状态之一:“可解(Solvable)”“不可解(Unsolvable)”“完成(Complete)”。“可解”的CAM对应的校验方程只包含有一个“不可用”块,与之相反,“不可解”的CAM对应的校验方程包含不止一个“不可用”块。完成了其对应校验方程的求解的CAM状态为“完成”。每个CAM被创建以后通过“检查”BST确定其对应方程中所涉及的数据块的状态,在这第一次“检查”中确认为“可用”的数据块又称为“存活块”,相反,确认为“不可用”的数据块称为“丢失块”,并且把“丢失块”的块序号记录到其“丢失块记录表”Bmiss(Bmiss是一个数组结构,每个CAM都有各自的Bmiss)中。“丢失块”数量为0的CAM不需要实施恢复,因此会立刻终止运行。“丢失块”数量非0的CAM把“存活块”进行异或求得中间值,并且把中间值存入一个临时数据块IB(Intermediate Block,每个CAM都有各自的IB)中。这个使用“存活块”计算IB的过程称为“预计算阶段”。预计算阶段结束以后,CAM线程再次“检查”BST以确定其状态,在这次“检查”中只检查被记录到Bmiss中的块状态,并且把“不可用”的块记录到“不可用块记录表”Bunavb(Bunavb是一个数组结构,每个CAM都有各自的Bunavb)中。“不可用”块数量为0的线程同样终止运行(因为第一次检测时“不可用”的数据块可能已经被其他线程恢复)。而“不可用”块数量大于1的CAM状态为“不可解”,这个CAM把自身插入到一个全局条件变量cond的等待队列中,并且开始睡眠,直到被唤醒。“不可用”块数量刚好为1的CAM状态为“可解”,可以完成其对应方程的求解,只需要把其IB与“丢失块”中现在“可用”的块(如果没有这样的块,那IB本身就等于最后一个“不可用”块的值)进行异或就可以求得那一个“不可用”块的值,完成以后该线程状态转为“完成”。状态为“完成”的CAM负责把其恢复的块在BST中记录的状态进行“更新”,并且唤醒所有在cond等待队列中的线程,此后终结本线程。被唤醒的线程再次“检查”BST以判断线程状态,而根据其状态所需要实施的操作与前述操作一致。图3是一个CAM的状态转换的示意图。
对于具有z-turn性质的编码,只要失效情况在该编码的容错能力范围内,那么就至少有一个校验方程是可独立求解的,也就是至少有一个CAM的状态为“可解”。当这些“可解”的CAM完成其对应校验方程的求解,也即是恢复了某些“丢失块”以后,失效情况有所好转,显然还在该编码的容错能力范围内,因此又会有另外的CAM状态变为“可解”,这个过程将持续直至所有CAM都完成其对应方程的求解为止。当所有CAM都完成了其对应方程的求解以后,实际上就已经完成编解码过程。
二、使用EOPC实施编解码过程的步骤
使用EOPC实施基于XOR的RAID-6编解码过程主要包括以下的步骤:
步骤1将基于XOR的RAID-6编码的校验规则用校验方程组表示,方程组中第j个方程记为Ej,方程总数记为k。校验方程组中的每一个方程Ej都使用一个数组EVj={pj,0,pj,1,…,pj,l}表示,数组中每个元素代表该方程所涉及的一个数据块的序号,例如上述方程向量代表的校验方程是 运算符“⊕”代表按位异或运算。所有EVj被记录到数据结构EVS中。
步骤2把需要进行编解码的条带的所有数据块从磁盘阵列读取到内存中,这个条带的磁盘数和行数分别记为n和r,第i个数据块记为Bi(0≤i<(n*r)),所有数据块存入到数据结构BlkS中。
步骤3条带中的每一个数据块都是“可用”的或者“不可用”的,这称为数据块的状态。其中“可用”表示数据块记录的数据是完整的,而“不可用”表示数据块记录的数据不完整或者为空。使用一个数组BST记录条带中所有数据块的状态,BST称为数据块状态表。BST中的第i个元素对应条带第i个数据块的状态,元素“1”代表对应的数据块“可用”,而“0”代表对应的数据块“不可用”。
步骤4把EVS、BlkS以及BST输入到EOPC的主线程COM中。
步骤5主线程COM为EVS中记录的每个校验方程创建一个CAM线程。
步骤6每个CAM线程负责完成其对应校验方程的求解。
其中步骤6涉及到多个CAM线程求解对应校验方程的过程,如图4所示,是使用EOPC实施编解码过程的示意图。其中的每个CAM线程求解的过程又可以分解为以下多个子步骤:
步骤(6-1)线程CAMj(表示任意一个CAM线程)通过“检查”BST确认其方程向量EVS[j]中包含的“丢失块”以及“存活块”,并且把“丢失块”的序号记录到“丢失块记录表”中,如果“丢失块”数量等于0,执行步骤(6-9),否则执行步骤(6-2)。
步骤(6-2)“预计算阶段”:线程CAMj计算其对应校验方程中所有“存活块”的异或和,并且暂存到一个临时数据块IBj中,完成后执行步骤(6-3)。
步骤(6-3)线程CAMj通过“检查”BST确认其“丢失块记录表”中当前所包含的“不可用块”数量,并且把当前“不可用块”的序号记录到其“不可用块记录表”中。如果“不可用块”数量等于0,则执行步骤(6-9)。如果“不可用块”数量等于1,这个“不可用块”称为CAMj的目标数据块,则执行步骤(6-5)。如果“不可用块”数量大于1,则执行步骤(6-4)。
步骤(6-4)线程CAMj所对应的方程包含有多于1个未知量,无法进行求解,该线程插入到条件变量cond的等待队列,并且开始睡眠。如果线程CAMj被唤醒,则继续执行步骤(6-3)。
步骤(6-5)“递归求解阶段”:线程CAMj把被记录于其“丢失块记录表”中而不被记录于其“不可用块记录表”中的数据块,与临时数据块IBj求异或和,结果依然存入临时数据块IBj中,继续执行步骤(6-6)。
步骤(6-6)线程CAMj检查其目标数据块在BST中目前被记录的状态,如果该数据块被标记为“1”,则执行步骤(6-9),否则执行步骤(6-7)。
步骤(6-7)线程CAMj把临时数据块IBj存入到其目标数据块中,并且“更新”该数据块在BST中记录的状态,继续执行步骤(6-8)。
步骤(6-8)线程CAMj把条件变量cond等待队列中的所有线程唤醒,继续执行步骤(6-9)。
步骤(6-9)线程CAMj结束运行。
三、使用EOPC实施编解码过程的特点
使用EOPC实施基于XOR的RAID-6编解码时,把每个校验方程的计算都分解为“预计算阶段”以及“递归求解阶段”。通常预计算阶段包含的计算量比递归求解阶段所包含的计算量更多,EOPC在编解码时可以使用多线程对多个校验方程的预计算阶段实施并行计算,从而达到加速编解码过程的目标。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种加速基于XOR的RAID-6编解码过程的方程并行计算方法,其特征在于,所述方法包括如下步骤:
步骤1将基于XOR的RAID-6编码的校验规则用校验方程组表示,方程组中第j个方程记为Ej,方程总数记为k;校验方程组中的每一个方程Ej都使用一个数组EVj={pj,0,pj,1,…,pj,l}表示,数组中每个元素代表该方程所涉及的一个数据块的序号;将所有EVj记录到数据结构EVS中;
步骤2把需要进行编解码的条带的所有数据块从磁盘阵列读取到内存中,这个条带的磁盘数和行数分别记为n和r,第i个数据块记为Bi,所有数据块存入到数据结构BlkS中,其中所述0≤i<(n*r);
步骤3条带中的每一个数据块的状态记录为可用或者不可用;其中可用表示数据块记录的数据是完整的,而不可用表示数据块记录的数据不完整或者为空;使用一个数组BST记录条带中所有数据块的状态,BST称为数据块状态表;BST中的第i个元素对应条带第i个数据块的状态,元素为1代表对应的数据块可用,而0则代表对应的数据块不可用;
步骤4把EVS、BlkS以及BST输入到EOPC的主线程COM中;
步骤5EOPC主线程COM为EVS中记录的每个校验方程创建一个EOPC的计算线程CAM;
步骤6每个计算线程CAM完成其对应校验方程的求解。
2.如权利要求1所述的方法,其特征在于,当条带内的磁盘出现故障以后,条带中所有数据块都被读取到内存中,其中由于磁盘故障而导致数据丢失的数据块状态记录为不可用并且把这些块称为丢失块,相反,其他数据块状态记录为可用,特别地,这些可用数据块称为存活块;另外,记录条带内数据块状态的数组BST是一个被所有线程共享的数据结构,并且被一个互斥锁mutex所保护,线程对BST的访问通过检查和更新两个操作进行,线程通过检查BST获取数据块的当前状态,通过更新BST修改数据块的当前状态,线程在访问BST前需要先获取互斥锁mutex,并且在访问结束后释放这个互斥锁,这样可以保证每次只有一个线程访问BST,在开始编解码前,BST需要被初始化以反映条带中所有数据块的状态;所述步骤6包括多个CAM线程求解对应校验方程的过程,其中的每个CAMj线程求解的过程可分解为以下多个子步骤:
步骤(6-1)线程CAMj通过检查BST确认其方程向量EVS[j]中包含的丢失块以及存活块,并且把丢失块的序号记录到丢失块记录表中,如果丢失块数量等于0,执行步骤(6-9),否则执行步骤(6-2),其中1≤j≤k;
步骤(6-2)预计算阶段:线程CAMj计算其对应校验方程中所有存活块的异或和,并且暂存到一个临时数据块IBj中,完成后执行步骤(6-3);
步骤(6-3)线程CAMj通过检查BST确认其丢失块记录表中当前所包含的不可用块数量,并且把当前不可用块的序号记录到其不可用块记录表中;如果不可用块数量等于0,则执行步骤(6-9);如果不可用块数量等于1,这个不可用块称为CAMj的目标数据块,则执行步骤(6-5);如果不可用块数量大于1,则执行步骤(6-4);
步骤(6-4)线程CAMj所对应的方程包含有多于1个未知量,无法进行求解,该线程插入到条件变量cond的等待队列,并且开始睡眠;如果线程CAMj被唤醒,则继续执行步骤(6-3);
步骤(6-5)递归求解阶段:线程CAMj把被记录于其丢失块记录表中而不被记录于其不可用块记录表中的数据块,与临时数据块IBj求异或和,结果依然存入临时数据块IBj中,继续执行步骤(6-6);
步骤(6-6)线程CAMj检查其目标数据块在BST中目前被记录的状态,如果该数据块对应的元素是1,则执行步骤(6-9),否则执行步骤(6-7);
步骤(6-7)线程CAMj把临时数据块IBj存入到其目标数据块中,并且更新该数据块在BST中记录的状态,继续执行步骤(6-8);
步骤(6-8)线程CAMj把条件变量cond等待队列中的所有线程唤醒,继续执行步骤(6-9);
步骤(6-9)线程CAMj结束运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510273730.3A CN104850504B (zh) | 2015-05-26 | 2015-05-26 | 一种加速基于xor的raid‑6编解码过程的方程并行计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510273730.3A CN104850504B (zh) | 2015-05-26 | 2015-05-26 | 一种加速基于xor的raid‑6编解码过程的方程并行计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104850504A true CN104850504A (zh) | 2015-08-19 |
CN104850504B CN104850504B (zh) | 2017-12-22 |
Family
ID=53850157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510273730.3A Active CN104850504B (zh) | 2015-05-26 | 2015-05-26 | 一种加速基于xor的raid‑6编解码过程的方程并行计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104850504B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824578A (zh) * | 2016-03-11 | 2016-08-03 | 华中科技大学 | 一种减少raid-6解码i/o数据量的方程选择方法 |
CN106445726A (zh) * | 2016-09-28 | 2017-02-22 | 上海爱数信息技术股份有限公司 | 一种分布式纠删码存储系统的数据修复方法 |
CN106990943A (zh) * | 2017-03-30 | 2017-07-28 | 微梦创科网络科技(中国)有限公司 | 并行任务处理方法和装置 |
CN109245775A (zh) * | 2017-07-10 | 2019-01-18 | 深圳市中兴微电子技术有限公司 | 一种译码器及其实现译码的方法 |
US10230398B2 (en) | 2016-08-19 | 2019-03-12 | Samsung Electronics Co., Ltd. | Erasure code data protection and recovery computation system and method |
CN113297001A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid编解码方法及编解码电路 |
WO2023184843A1 (zh) * | 2022-03-30 | 2023-10-05 | 苏州浪潮智能科技有限公司 | 一种raid编解码方法、装置、设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151641A (en) * | 1997-09-30 | 2000-11-21 | Lsi Logic Corporation | DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments |
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN103645862A (zh) * | 2013-12-12 | 2014-03-19 | 北京同有飞骥科技股份有限公司 | 一种磁盘阵列初始化性能提升方法 |
-
2015
- 2015-05-26 CN CN201510273730.3A patent/CN104850504B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151641A (en) * | 1997-09-30 | 2000-11-21 | Lsi Logic Corporation | DMA controller of a RAID storage controller with integrated XOR parity computation capability adapted to compute parity in parallel with the transfer of data segments |
CN101976175A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种水平型分组并行集中校验的磁盘阵列的构建方法 |
CN103645862A (zh) * | 2013-12-12 | 2014-03-19 | 北京同有飞骥科技股份有限公司 | 一种磁盘阵列初始化性能提升方法 |
Non-Patent Citations (1)
Title |
---|
JUN FENG等: "EEO:an Efficient MDS-Like RAID-6 Code for Parallel Implementation", 《IEEE SARNOFF SYMPOSIUM》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824578A (zh) * | 2016-03-11 | 2016-08-03 | 华中科技大学 | 一种减少raid-6解码i/o数据量的方程选择方法 |
CN105824578B (zh) * | 2016-03-11 | 2018-11-30 | 华中科技大学 | 一种减少raid-6解码i/o数据量的方程选择方法 |
US10230398B2 (en) | 2016-08-19 | 2019-03-12 | Samsung Electronics Co., Ltd. | Erasure code data protection and recovery computation system and method |
CN106445726A (zh) * | 2016-09-28 | 2017-02-22 | 上海爱数信息技术股份有限公司 | 一种分布式纠删码存储系统的数据修复方法 |
CN106990943A (zh) * | 2017-03-30 | 2017-07-28 | 微梦创科网络科技(中国)有限公司 | 并行任务处理方法和装置 |
CN109245775A (zh) * | 2017-07-10 | 2019-01-18 | 深圳市中兴微电子技术有限公司 | 一种译码器及其实现译码的方法 |
CN109245775B (zh) * | 2017-07-10 | 2022-08-09 | 深圳市中兴微电子技术有限公司 | 一种译码器及其实现译码的方法 |
CN113297001A (zh) * | 2021-05-20 | 2021-08-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid编解码方法及编解码电路 |
CN113297001B (zh) * | 2021-05-20 | 2023-02-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种raid编解码方法及编解码电路 |
WO2023184843A1 (zh) * | 2022-03-30 | 2023-10-05 | 苏州浪潮智能科技有限公司 | 一种raid编解码方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104850504B (zh) | 2017-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104850504A (zh) | 一种加速基于xor的raid-6编解码过程的方程并行计算方法 | |
US10210045B1 (en) | Reducing concurrency bottlenecks while rebuilding a failed drive in a data storage system | |
CN107526531B (zh) | 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备 | |
US8566673B2 (en) | Method for improving performance in RAID systems | |
CN111104244A (zh) | 用于在存储阵列组中重建数据的方法和设备 | |
US20070143541A1 (en) | Methods and structure for improved migration of raid logical volumes | |
CN105353974B (zh) | 一种适用于磁盘阵列及分布式存储系统的二容错编码方法 | |
US10922201B2 (en) | Method and device of data rebuilding in storage system | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
US20120198195A1 (en) | Data storage system and method | |
CN105302492A (zh) | 一种磁盘阵列raid重建方法及装置 | |
US7827469B2 (en) | Method of implementing XOR based RAID algorithms | |
CN114610244A (zh) | 一种独立冗余磁盘阵列降级方法、系统及设备 | |
CN114546272A (zh) | 快速通用的raid降级为raid5的方法、系统、设备和存储介质 | |
CN116501553B (zh) | 数据恢复方法、装置、系统、电子设备及存储介质 | |
CN104991740A (zh) | 一种加速纠删码编解码过程的通用矩阵优化方法 | |
CN110600070B (zh) | 一种提升固态硬盘阵列系统修复性能的编码和修复方法 | |
JP5360666B2 (ja) | 複数のディスクアレイのi/o動作を実行する方法及びシステム | |
CN114756175A (zh) | 一种用于磁盘阵列的解码方法、系统、设备及介质 | |
CN104281499A (zh) | 基于奇偶校验的raid条带镜像数据分布方法 | |
CN110431531A (zh) | 存储控制器、数据处理芯片及数据处理方法 | |
US8510643B2 (en) | Optimizing raid migration performance | |
US8499224B2 (en) | Redundant code generation method and device, data restoration method and device, and raid storage device | |
JP6777330B2 (ja) | ディスクアレイ制御装置、ディスクアレイ装置、ディスクアレイ装置の制御方法及びプログラム | |
CN117008845B (zh) | 读写指令的划分方法、装置、存储介质及电子装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |