CN112286449B - 一种rs纠删处理设备及分布式存储系统 - Google Patents

一种rs纠删处理设备及分布式存储系统 Download PDF

Info

Publication number
CN112286449B
CN112286449B CN202011111568.2A CN202011111568A CN112286449B CN 112286449 B CN112286449 B CN 112286449B CN 202011111568 A CN202011111568 A CN 202011111568A CN 112286449 B CN112286449 B CN 112286449B
Authority
CN
China
Prior art keywords
data
erasure
input
matrix
output
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.)
Active
Application number
CN202011111568.2A
Other languages
English (en)
Other versions
CN112286449A (zh
Inventor
王明明
张磊
吴睿振
王凛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202011111568.2A priority Critical patent/CN112286449B/zh
Publication of CN112286449A publication Critical patent/CN112286449A/zh
Application granted granted Critical
Publication of CN112286449B publication Critical patent/CN112286449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种RS纠删处理设备及分布式存储系统,该设备包括:控制部件,用于获取RS纠删任务,并根据RS纠删任务,控制处理部件并行计算输入数据块与输入矩阵的矩阵乘结果和矩阵乘结果的数据重组,得到RS纠删任务对应的输出数据块;处理部件,用于根据控制部件的控制,利用第一数量的处理单元并行计算输入数据块与输入矩阵的矩阵乘结果,并对矩阵乘结果进行数据重组,得到输出数据块;其中,第一数量大于或等于2;本发明利用采用硬件并行结构的RS纠删处理设备处理RS纠删的编码和解码,能够减少CPU计算资源的占用;并且通过RS纠删处理设备中处理单元的并行计算,能够极大地提高数据的吞吐率,从而提升RS纠删的性能。

Description

一种RS纠删处理设备及分布式存储系统
技术领域
本发明涉及数据处理技术领域,特别涉及一种RS纠删处理设备及分布式存储系统。
背景技术
面对海量数据的存储要求,分布式存储以其成本低廉,可扩展性好等优势逐渐取代了统一存储的主导地位,在理论研究和实际应用方面得到了越来越多的关注。分布式存储系统多以廉价的磁盘作为存储节点,每个存储节点的可靠性往往不会很高,另一方面,一个分布式存储系统通常包含很多的节点,由于软硬件故障,人为失误等原因,系统常常发生节点失效的情况。为了提高分布式存储系统的数据可靠性,保证数据收集节点能以很高的概率实现原始文件的重构,需要在存储原始数据的基础上,额外存储一定数量的冗余,使得在出现部分节点失效的情况下,系统仍然可以正常运行,数据收集节点仍然可以对原始文件实现解码恢复。同时,为了维持系统的可靠性,需要对失效的节点及时进行修复,因此,设计一个良好的节点修复机制十分重要。
纠删码(Erasure Code)属于编码理论中的一种前向纠错技术,最早应用于通信领域以解决数据传输中的丢失与损耗这类问题。由于纠删码技术在防止数据丢失取得了较好的效果,因此被引入存储领域。纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的RS码(Reed-Solomon Code,里德所罗门码)。
现有技术中,对基于RS(Reed-Solomon)纠删码的编码和解码,大都使用如Jerasure2.0(一个基于C的支持存储应用中纠删码的类库)的开源软件的解决方案,即在CPU上运行RS相关的软件做纠删的编码和解码,占用了较多的CPU的计算资源,并且RS纠删过程中的数据的吞吐率不高,影响RS纠删的性能。因此,如何能够减少RS纠删的编码和解码对CPU计算资源的占用,提高数据的吞吐率,从而提升RS纠删的性能,是现今急需解决的问题。
发明内容
本发明的目的是提供一种RS纠删处理设备及分布式存储系统,以利减少RS纠删的编码和解码对CPU计算资源的占用,提高数据的吞吐率,从而提升RS纠删的性能。
为解决上述技术问题,本发明提供一种RS纠删处理设备,包括:
控制部件,用于获取RS纠删任务,并根据所述RS纠删任务,控制处理部件并行计算输入数据块与输入矩阵的矩阵乘结果和所述矩阵乘结果的数据重组,得到所述RS纠删任务对应的输出数据块;其中,所述输入矩阵为所述RS纠删任务对应的解码矩阵或编码矩阵;
所述处理部件,用于根据所述控制部件的控制,利用第一数量的处理单元并行计算输入数据块与输入矩阵的矩阵乘结果,并对所述矩阵乘结果进行数据重组,得到所述输出数据块;其中,所述第一数量大于或等于2。
可选的,所述处理部件,包括:
第二数量的输入数据缓冲队列,用于缓存所述输入数据块;其中,所述第二数量大于或等于所述输入数据块的数量,每个所述输入数据块缓存到各自对应一个输入数据缓冲队列中;
数据分发单元,用于根据所述控制部件的控制,将所述输入数据块的数据平均的分发到所述处理单元;
所述处理单元,用于计算各自输入的数据与所述输入矩阵的所述矩阵乘结果;
数据重组单元,用于根据所述控制部件的控制,对所述矩阵乘结果进行数据重组,得到所述输出数据块,并将所述输入数据块输出到输出数据缓冲队列;
第三数量的输出数据缓冲队列,用于缓存所述输出数据块;其中,所述第三数量大于或等于所述输出数据块的数量,每个所述输出数据块缓存到各自对应的一个输出数据缓冲队列中。
可选的,所述数据分发单元具体用于根据所述控制部件的控制,将每个所述输入数据块的数据按预设数据大小依次分发到所述第一数量的所述处理单元,使每个所述处理单元分发到每个所述输入数据块的部分数据;其中,每个所述处理单元分发到全部所述输入数据块的所述预设数据大小的数据在各自的输入数据块中的位置相同;
对应的,每个所述处理单元具体用于根据输入的全部所述输入数据块的当前数据和所述输入矩阵,计算当前矩阵乘结果;其中,当前数据为全部所述输入数据块中任一相同位置的所述预设数据大小的数据。
可选的,所述数据重组单元具体用于根据控制部件的控制和所述数据分发单元的分发数据顺序,对当前矩阵乘结果进行重组排序,得到全部所述输出数据块的当前输出数据,并将当前输出数据中每个所述输出数据块各自的数据输出到各自对应的一个所述输出数据缓冲队列中;其中,当前输出数据为全部所述输出数据块中任一相同位置的所述预设数据大小的数据。
可选的,所述RS纠删任务对应的纠删策略为k+r策略时,所述第二数量为k,所述第三数量为r。
可选的,所述控制部件,包括:
任务分发器,用于接收所述RS纠删任务,并根据所述RS纠删任务生成输入配置信息和输出配置信息;其中,所述RS纠删任务包括纠删的数据块的数量信息、校验块的数量信息、数据块大小信息和任务类型信息和任务类型信息对应的数据块信息,所述任务类型信息为编码任务信息或解码任务信息,所述解码任务信息对应的数据块信息包括缺失数据块信息和存在校验块信息;
矩阵管理单元,用于存储所述输入矩阵;
输入控制单元,用于根据所述输入配置信息,控制所述处理部件中所述处理单元的数据分发;
输出控制单元,用于根据所述输出配置信息,控制所述处理部件中所述处理单元输出的所述矩阵乘结果的数据重组。
可选的,所述控制部件,还包括:
输入配置队列,用于缓存所述输入配置信息;
输出配置队列,用于缓存所述输出配置信息。
可选的,所述矩阵管理单元还用于在所述任务类型信息为所述解码任务信息时,通过高斯消元计算所述解码矩阵的逆矩阵。
可选的,所述输出控制单元还用于在所述处理部件得到所述输出数据块后,将所述输出数据块输出到目标地址中,并通知目标设备。
本发明还提供了一种分布式存储系统,包括:如上述所述的RS纠删处理设备。
本发明所提供的一种RS纠删处理设备,包括:控制部件,用于获取RS纠删任务,并根据RS纠删任务,控制处理部件并行计算输入数据块与输入矩阵的矩阵乘结果和矩阵乘结果的数据重组,得到RS纠删任务对应的输出数据块;其中,输入矩阵为RS纠删任务对应的解码矩阵或编码矩阵;处理部件,用于根据控制部件的控制,利用第一数量的处理单元并行计算输入数据块与输入矩阵的矩阵乘结果,并对矩阵乘结果进行数据重组,得到输出数据块;其中,第一数量大于或等于2;
可见,本发明利用采用硬件并行结构的RS纠删处理设备处理RS纠删的编码和解码,能够减少CPU计算资源的占用;并且通过RS纠删处理设备中处理单元的并行计算,能够极大地提高数据的吞吐率,从而提升RS纠删的性能。此外,本发明还提供了一种分布式存储系统,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种RS纠删处理设备的结构框图;
图2为本发明实施例所提供的另一种RS纠删处理设备的结构示意图;
图3为本发明实施例所提供的一种RS纠删处理设备的矩阵和数据流的示意图;
图4为本发明实施例所提供的一种RS纠删处理设备的编码和解码的任务执行示意图;
图5为本发明实施例所提供的一种RS纠删处理设备在分布式存储系统的应用示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
可以理解的是,RS码与两个参数k和r相关。给定两个正整数k和r时,RS码将k个数据块编码为r个额外的校验块;而r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩阵或柯西矩阵编码的RS纠删码,具体,基于范德蒙矩阵的RS纠删码可以如下:
Figure BDA0002728766610000051
基于柯西矩阵的RS纠删码可以如下:
Figure BDA0002728766610000052
如上两种k*k矩阵对应的可以为k个原始数据块,下部分的r*k矩阵对应的就是编码矩阵,通过与原始数据D1到Dk相乘,得到新添加的P1到Pr就是编码所得到的r个校验数据。当其中任意小于r个数据在传输中出错或丢失,需要纠错时,用剩余数据对应矩阵的逆矩阵与数据相乘,就可以得到原始数据块D1到Dk
以D1到Dr数据丢失,进行解码为例,过程可以如下所示:
Figure BDA0002728766610000061
可知,RS纠删的核心可以为构建一个可逆的编码矩阵用以产生校验数据,其逆矩阵可经过计算恢复原始数据,目前RS纠删码大多使用的是上述柯西矩阵或范德蒙矩阵,这样的优势是所得到的矩阵肯定可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简单。
上述D1到Dk和P1到Pr的数据单位可以是8bit、16bit或者其他数值(这里称之为符号,symbol),取决乘法运算的位宽,即伽罗华域运算的有限域定义。对于一个RS纠删任务,如果数据块大小(即块大小)为Z bit。对于乘法运算,如果使用8bit(即1字节)的伽罗华域运算,要拆分为(Z/8)个独立的数据和相同矩阵做运算,并将运算结果输出。由此可推导出,RS纠删的一个明显特征就是对各个数据块和校验块不同符号之间是不相关的,能够分别只对同一个符号做相关运算,即所有数据块和校验块相同的符号。
因为,为了减少RS纠删的编码和解码对现有设备(如分布式存储系统中的处理节点)中CPU计算资源的占用,本发明实施例提供了一种RS纠删处理设备单独负责处理RS纠删的编码和解码;并且该RS纠删处理设备采用硬件并行结构可以利用并行的处理单元并行计算不同符号的相关运算,提高数据的吞吐率,从而提升RS纠删的性能。
具体的,请参考图1,图1为本发明实施例所提供的一种RS纠删处理设备的结构框图。该设备可以包括:
控制部件10,用于获取RS纠删任务,并根据RS纠删任务,控制处理部件20并行计算输入数据块与输入矩阵的矩阵乘结果和矩阵乘结果的数据重组,得到RS纠删任务对应的输出数据块;其中,输入矩阵为RS纠删任务对应的解码矩阵或编码矩阵;
处理部件20,用于根据控制部件10的控制,利用第一数量的处理单元21并行计算输入数据块与输入矩阵的矩阵乘结果,并对矩阵乘结果进行数据重组,得到输出数据块;其中,第一数量大于或等于2。
可以理解的是,本实施例中的控制部件10获取的RS纠删任务可以需要进行RS纠删的编码或解码的任务,如分布式存储系统中的处理节点的主机可以在需要进行RS纠删时,生成RS纠删任务并发送到控制部件10。
具体的,对于RS纠删任务的具体内容,可以由设计人员根据使用场景和用户需求自行设置,如RS纠删任务可以包括纠删的数据块(即编码数据块)的数量信息(即编码时的数据块数目)、校验块的数量信息(即编码得到的校验块数目)、数据块大小信息(即数据块和校验块的块大小)和任务类型信息和任务类型信息对应的数据块信息,任务类型信息为编码任务信息或解码任务信息,解码任务信息对应的数据块信息包括缺失数据块信息(即各数据块存在或缺失的状态)和存在校验块信息(即各校验块存在或缺失的状态);RS纠删任务也可以包括各输入数据块的存储位置信息(即源地址),以便于控制部件10将各输入数据块输入到处理部件20;RS纠删任务还可以包括各输出数据块的目标存储位置信息,以便于控制部件10将处理部件20计算得到的各输出数据块输出到目标存储位置信息对应的目标地址。只要控制部件10可以利用获取的RS纠删任务,控制处理部件20并行计算输入数据块与输入矩阵的矩阵乘结果并得到输出数据块,本实施例对此不作任何限制。
对应的,本实施例中的输入数据块可以RS纠删任务对应的需要输入到处理部件20的数据块,如编码时全部数据块(即编码数据块)或解码时存在的编码数据块和存在的校验块。本实施例中的输出数据块RS纠删任务对应的处理部件20计算得到的数据块,如编码后得到的全部校验块和解码后得到原本缺失的数据块和/或校验块。本实施例中的输入矩阵可以为RS纠删任务对应的矩阵,如解码矩阵或编码矩阵;具体的,本实施例中的输入矩阵为编码矩阵时,该编码矩阵可以为柯西矩阵或范德蒙矩阵这样其矩阵肯定可逆,其任意子矩阵也都可逆的矩阵;对应的,输入矩阵为解码矩阵时,该解码矩阵可以为上述编码矩阵的逆矩阵,如柯西矩阵或范德蒙矩阵的逆矩阵。
需要说明的是,本实施例中的控制部件10可以根据获取的RS纠删任务,控制处理部件20并行进行RS纠删任务对应的输入数据块与输入矩阵的运算(即矩阵乘)和运算结果(即矩阵乘结果)的数据重组,使处理部件20可以计算得到RS纠删任务对应的输出数据块。
具体的,如图2所示,本实施例中的控制部件10(即控制通路)可以包括:
任务分发器,用于接收RS纠删任务,并根据RS纠删任务生成输入配置信息和输出配置信息;其中,RS纠删任务包括纠删的数据块的数量信息、校验块的数量信息、数据块大小信息和任务类型信息和任务类型信息对应的数据块信息,任务类型信息为编码任务信息或解码任务信息,解码任务信息对应的数据块信息包括缺失数据块信息和存在校验块信息;例如任务分发器可以接收分布式存储系统的处理节点的主机发送的RS纠删任务,根据RS纠删任务中的配置信息(如纠删的数据块的数量信息、校验块的数量信息、数据块大小信息和任务类型信息等),生成用于控制处理部件20中处理单元21中输入数据分发的输入配置信息和用于控制处理部件20中处理单元21中矩阵乘结果的数据重组的输出配置信息。
矩阵管理单元,用于存储输入矩阵;例如矩阵管理单元可以存储并向处理部件20中处理单元21提供RS纠删任务对应的编码矩阵或解码矩阵,或者提供高斯消元计算生成的编码矩阵的逆矩阵(即解码矩阵),即在任务类型信息为解码任务信息时,矩阵管理单元可以通过高斯消元计算RS纠删任务对应的解码矩阵的逆矩阵(即输入矩阵)。
输入矩阵为解码矩阵时,矩阵管理单元可以利用该解码矩阵对应的编码矩阵进行高斯消元计算,得到该解码矩阵。
输入控制单元,用于根据输入配置信息,控制处理部件20中处理单元21的数据分发;例如输入控制单元可以根据输入配置信息,调度外部输入控制,将输入数据块搬运到处理部件20,并控制输入数据块传输到处理部件20中的处理单元21的数据分发。相应的,输出控制单元还可以在处理部件20得到输出数据块后,将输出数据块输出到目标地址中,并通知目标设备(如发送RS纠删任务的主机)。
输出控制单元,用于根据输出配置信息,控制处理部件20中处理单元21输出的矩阵乘结果的数据重组;例如输出控制单元可以根据输出配置信息,调度处理单元21的数据输出,对数据做重组,从而得到输出数据块。
对应的,如图2所示,本实施例中的控制部件10(即控制通路)还可以包括:用于缓存输入配置信息的输入配置队列和用于缓存输出配置信息的输出配置队列,使得输入控制单元可从输入配置队列读取输入配置信息,输出控制单元可从输出配置队列读取输出配置信息。
可以理解的是,如图2所示,本实施例中的处理部件20(即数据通路),可以包括:
第二数量的输入数据缓冲队列(如输入数据缓冲1-8),用于缓存输入数据块;其中,第二数量大于或等于输入数据块的数量,每个输入数据块缓存到各自对应一个输入数据缓冲队列中;
数据分发单元,用于根据控制部件10的控制,将输入数据块的数据平均的分发到处理单元21;
第一数量的处理单元21(如处理单元1-8),用于计算各自输入的数据与输入矩阵的矩阵乘结果;
数据重组单元,用于根据控制部件10的控制,对矩阵乘结果进行数据重组,得到输出数据块,并将输入数据块输出到输出数据缓冲队列;
第三数量的输出数据缓冲队列(如输出数据缓冲1-4),用于缓存输出数据块;其中,第三数量大于或等于输出数据块的数量,每个输出数据块缓存到各自对应的一个输出数据缓冲队列中。
具体的,RS纠删的一个明显特征就是对各个数据块和校验块不同符号之间是不相关的,本实施例中利用处理部件20中第一数量的处理单元21并行计算全部输入数据块的不同符号与输入矩阵的矩阵乘结果,即每个处理单元21计算全部输入数据块中各自对应的统一符号与输入矩阵的矩阵乘结果。也就是说,数据分发单元可以具体用于根据控制部件10的控制(如上述输入控制单元的控制),将每个输入数据块的数据按预设数据大小(即符号的大小)依次分发到第一数量的处理单元21,使每个处理单元21分发到每个输入数据块的部分数据;其中,每个处理单元21分发到全部输入数据块的预设数据大小的数据在各自的输入数据块中的位置相同;如图3所示,以纠删策略为6+2策略的编码为例,当第一数量为8且预设数据大小为1个字节时,数据分发单元可以将每个输入数据块的数据按1个字节的大小依次分发到8的处理单元21,使处理单元21分发到每个输入数据块的部分数据,如图3中,处理单元1至8依次分到输入全部输入数据块的第1至第8个字节的数据,之后再依次分到输入全部输入数据块的第9至第16个字节,循环分发下去直至全部输入数据块的数据分发完成。
对应的,每个处理单元21具体用于根据输入的全部输入数据块的当前数据和输入矩阵,计算当前矩阵乘结果;其中,当前数据为全部输入数据块中任一相同位置的预设数据大小的数据,如图3所示,当前数据为全部输入数据块的第1字节的数据时,处理单元1可以计算输入的全部输入数据块的第1字节的数据与输入矩阵的矩阵乘结果(即当前矩阵乘结果),从而在数据重组后得到全部输出数据块(如图3中的校验块1和2)的第1个字节的数据。
相应的,数据重组单元可以具体用于根据控制部件10的控制(如输出控制单元的控制)和数据分发单元的分发数据顺序,对当前矩阵乘结果进行重组排序,得到全部输出数据块的当前输出数据,并将当前输出数据中每个输出数据块各自的数据输出到各自对应的一个输出数据缓冲队列中;其中,当前输出数据为全部输出数据块中任一相同位置的预设数据大小的数据。如图3所示,当前数据为全部输入数据块的第1字节的数据时,数据重组单元可以对处理单元1的当前矩阵乘结果进行重组排序,得到全部输出数据块的第1字节的数据,并且直接将每个输出数据块的第1字节的数据直接输入到各自对应的一个输出数据缓冲队列,如将校验块1的第1个字节的数据输入到输出缓冲1中,将校验块2的第1个字节的数据输入到输出缓冲2中,之后输出缓冲1依次输入处理单元2对应的校验块1的第2个字节的数据和处理单元3对应的校验块1的第3个字节的数据,输出缓冲2依次输入处理单元2对应的校验块2的第2个字节的数据和处理单元3对应的校验块2的第3个字节的数据,使得数据重组单元不必再全部输出数据块的全部数据均重组完成后,再输出到输出数据缓冲队列。
具体的,如图2所示,本实施例中的RS纠删处理设备的RS纠删任务处理过程可以如下,第一步:任务分发器从主机侧接收到RS纠删任务,包括纠删的数据块数目k、校验块数目r信息、数据块大小、编码或者解码的任务类型等配置信息;将这些配置信息,存入输入配置队列,同时存入输出配置队列。第二步:输入控制单元在接收到输入配置队列中的配置信息(即输入配置信息)后,先判断RS纠删任务是编码还是解码,然后调度编码或者解码矩阵;根据k的配置,调度外部输入控制,将需要的输入数据块,从各自的源地址中做数据搬运,将需要的k路数据调入处理部件20的输入数据缓冲队列。第三步:输入控制单元的控制下,数据分发单元按照数据块k的配置将前k个数据输入缓冲的数据按照顺序给8个处理单元21依次分发,每次以N个字节(即预设数据大小)进行分发,预设数据大小的数据量大小可自行配置,可以是任意大小,以满足不同需求的灵活扩展性。直到该RS纠删任务所有的数据分发完毕,再切换到下个RS纠删任务的处理。第四步:数据重组单元在接收到8个处理单元21输出的数据,按照数据分发单元的分发顺序对数据进行重组排序,然后顺序输出;在输出的时候,需要根据校验块数目r,或者待恢复数据块数目L块大小的配置,按照已经在输出配置信息,包括校验块数目r或者待恢复数据块数目L,数据块大小等信息,将处理单元21输出数据顺序的存入前r或者L个输出数据缓冲队列;这里的数目L取决于编码使用的校验快数目r,满足L<=r;等全部的块大小的输出数据块处理完成,再切换到下一个RS纠删任务的处理。第五步:输出控制单元可以监测任务的实时处理情况,在一个RS纠删任务所有输出数据块全部都生成后,会调用外部输出控制将编码或者解码的输出数据块送到预先定义的目标地址中;同时可以通知主机侧,该RS纠删任务已经完成。
可以理解的是,本实施例中的RS纠删处理设备作为进行RS纠删的硬件(即纠删硬件)可以即支持RS纠删的编码又支持RS纠删的解码,如图4所示,纠删策略为4+2策略时,若数据块2和数据块3需要恢复,在纠删硬件提供所需的解码矩阵或该解码矩阵对应的编码矩阵时,纠删硬件可以做解码矩阵和输入数据块(即数据块1和4及校验块1和2)的并行乘法运算,得到数据块2和数据块3,完成RS纠删的解码;编码时,纠删硬件可以利用提供的编码矩阵和输入数据块(即数据块1至4)进行并行乘法运算,得到校验块1和校验块2,完成RS纠删的编码。
具体的,RS纠删任务对应的纠删策略为k+r策略时,第二数量可以大于或等于k,第三数量可以大于或等于r。例如设置输入数据缓冲队列的数量为k,设置输出数据缓冲队列的数量为r,矩阵管理单元中的一个矩阵的存储大小可以为r行k列;相应的,k和r的数值变小或者变大可以对应调整输入数据缓冲队列和输出数据缓冲队列的数量。对应的,对于上述预设数据大小的设置,即符号的大小设置,可以由设计人员自行设置,对预设数据大小的调整,需要将处理单元21中的伽罗华域的乘法运算做对应调整,如预设数据大小(即符号的大小)为16bit时,乘法需要是16bit乘以16bit,XOR(Exclusive-OR,亦或运算)运算也设置成16bit的XOR运算。
需要说明的是,本实施例是以RS纠删处理设备对一个RS纠删任务的处理为例进行的展示,对于RS纠删处理设备对多个RS纠删任务的处理,可以采用与本实施例所提供的处理方式相同或相似的方式实现,如RS纠删处理设备可以依次对多个纠删策略相同(如均为6+2策略)的RS纠删任务进行处理;RS纠删处理设备也可以依次对多个纠删策略不相同的RS纠删任务进行处理;如图5所示,一个分布式存储系统的节点上,有三个纠删策略分别为4+2、6+2和2+1存储池时,如节点的主机发起连续5个RS纠删任务给RS纠删处理设备(即纠删硬件),纠删硬件可以按照顺序对RS纠删任务进行处理,并将处理的编码或解码后的输出数据块反馈给主机。
具体的,假设系统需求的单个数据块的吞吐率为aGpbs,数据块的数目为k,那么总的输入数据吞吐率需求为Treq=k*a Gbps;本实施例中利用第一数量的处理单元21的设置,若单个处理单元21(PE,ProcessElement)可以处理的单个数据块数据的吞吐率为bGpbs,第一数量为m,RS纠删处理设备可以提高的系统吞吐率为Tactual=k*b*m Gbps;从而通过提高处理单元21的设置数量(即第一数量)可以线性的提供系统的吞吐率,使得系统的吞吐率的要求可以通过合适的第一数量设置来满足。
本实施例中,本发明实施例利用采用硬件并行结构的RS纠删处理设备处理RS纠删的编码和解码,能够减少CPU计算资源的占用;并且通过RS纠删处理设备中处理单元21的并行计算,能够极大地提高数据的吞吐率,从而提升RS纠删的性能。
此外,本发明实施例还提供了一种分布式存储系统,包括:如上述实施例所提供的RS纠删处理设备。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的分布式存储系统而言,由于其与实施例公开的设备相对应,所以描述的比较简单,相关之处参见设备部分说明即可。
以上对本发明所提供的一种RS纠删处理设备及分布式存储系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (9)

1.一种RS纠删处理设备,其特征在于,包括:
控制部件,用于获取RS纠删任务,并根据所述RS纠删任务,控制处理部件并行计算输入数据块与输入矩阵的矩阵乘结果和所述矩阵乘结果的数据重组,得到所述RS纠删任务对应的输出数据块;其中,所述输入矩阵为所述RS纠删任务对应的解码矩阵或编码矩阵;
所述处理部件,用于根据所述控制部件的控制,利用第一数量的处理单元并行计算输入数据块与输入矩阵的矩阵乘结果,并对所述矩阵乘结果进行数据重组,得到所述输出数据块;其中,所述第一数量大于或等于2;
其中,所述控制部件,包括:
任务分发器,用于接收所述RS纠删任务,并根据所述RS纠删任务生成输入配置信息和输出配置信息;其中,所述RS纠删任务包括纠删的数据块的数量信息、校验块的数量信息、数据块大小信息和任务类型信息和任务类型信息对应的数据块信息,所述任务类型信息为编码任务信息或解码任务信息,所述解码任务信息对应的数据块信息包括缺失数据块信息和存在校验块信息;
矩阵管理单元,用于存储所述输入矩阵;
输入控制单元,用于根据所述输入配置信息,控制所述处理部件中所述处理单元的数据分发;
输出控制单元,用于根据所述输出配置信息,控制所述处理部件中所述处理单元输出的所述矩阵乘结果的数据重组。
2.根据权利要求1所述的RS纠删处理设备,其特征在于,所述处理部件,包括:
第二数量的输入数据缓冲队列,用于缓存所述输入数据块;其中,所述第二数量大于或等于所述输入数据块的数量,每个所述输入数据块缓存到各自对应一个输入数据缓冲队列中;
数据分发单元,用于根据所述控制部件的控制,将所述输入数据块的数据平均的分发到所述处理单元;
所述处理单元,用于计算各自输入的数据与所述输入矩阵的所述矩阵乘结果;
数据重组单元,用于根据所述控制部件的控制,对所述矩阵乘结果进行数据重组,得到所述输出数据块,并将所述输入数据块输出到输出数据缓冲队列;
第三数量的输出数据缓冲队列,用于缓存所述输出数据块;其中,所述第三数量大于或等于所述输出数据块的数量,每个所述输出数据块缓存到各自对应的一个输出数据缓冲队列中。
3.根据权利要求2所述的RS纠删处理设备,其特征在于,所述数据分发单元具体用于根据所述控制部件的控制,将每个所述输入数据块的数据按预设数据大小依次分发到所述第一数量的所述处理单元,使每个所述处理单元分发到每个所述输入数据块的部分数据;其中,每个所述处理单元分发到全部所述输入数据块的所述预设数据大小的数据在各自的输入数据块中的位置相同;
对应的,每个所述处理单元具体用于根据输入的全部所述输入数据块的当前数据和所述输入矩阵,计算当前矩阵乘结果;其中,当前数据为全部所述输入数据块中任一相同位置的所述预设数据大小的数据。
4.根据权利要求3所述的RS纠删处理设备,其特征在于,所述数据重组单元具体用于根据控制部件的控制和所述数据分发单元的分发数据顺序,对当前矩阵乘结果进行重组排序,得到全部所述输出数据块的当前输出数据,并将当前输出数据中每个所述输出数据块各自的数据输出到各自对应的一个所述输出数据缓冲队列中;其中,当前输出数据为全部所述输出数据块中任一相同位置的所述预设数据大小的数据。
5.根据权利要求2所述的RS纠删处理设备,其特征在于,所述RS纠删任务对应的纠删策略为k+r策略时,所述第二数量为k,所述第三数量为r。
6.根据权利要求1所述的RS纠删处理设备,其特征在于,所述控制部件,还包括:
输入配置队列,用于缓存所述输入配置信息;
输出配置队列,用于缓存所述输出配置信息。
7.根据权利要求1所述的RS纠删处理设备,其特征在于,所述矩阵管理单元还用于在所述任务类型信息为所述解码任务信息时,通过高斯消元计算所述解码矩阵的逆矩阵。
8.根据权利要求1所述的RS纠删处理设备,其特征在于,所述输出控制单元还用于在所述处理部件得到所述输出数据块后,将所述输出数据块输出到目标地址中,并通知目标设备。
9.一种分布式存储系统,其特征在于,包括:如权利要求1至8任一项所述的RS纠删处理设备。
CN202011111568.2A 2020-10-16 2020-10-16 一种rs纠删处理设备及分布式存储系统 Active CN112286449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011111568.2A CN112286449B (zh) 2020-10-16 2020-10-16 一种rs纠删处理设备及分布式存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011111568.2A CN112286449B (zh) 2020-10-16 2020-10-16 一种rs纠删处理设备及分布式存储系统

Publications (2)

Publication Number Publication Date
CN112286449A CN112286449A (zh) 2021-01-29
CN112286449B true CN112286449B (zh) 2023-04-25

Family

ID=74497008

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011111568.2A Active CN112286449B (zh) 2020-10-16 2020-10-16 一种rs纠删处理设备及分布式存储系统

Country Status (1)

Country Link
CN (1) CN112286449B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360264A (zh) * 2021-06-11 2021-09-07 山东云海国创云计算装备产业创新中心有限公司 一种纠删处理系统、方法及分布式存储系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231631A (zh) * 2011-06-20 2011-11-02 中兴通讯股份有限公司 Rs编码器的编码方法及rs编码器
CN103914402A (zh) * 2014-04-17 2014-07-09 华中科技大学 一种基于纠删码缓存的重构优化方法
CN105007286A (zh) * 2014-04-23 2015-10-28 苏宁云商集团股份有限公司 解码方法和装置及云存储方法和系统
CN111682874A (zh) * 2020-06-11 2020-09-18 山东云海国创云计算装备产业创新中心有限公司 一种数据恢复的方法、系统、设备及可读存储介质
CN111697976A (zh) * 2020-05-28 2020-09-22 苏州浪潮智能科技有限公司 一种基于分布式存储的rs纠删快速解码方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10044374B2 (en) * 2015-07-30 2018-08-07 Quantum Corporation Adaptive erasure codes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102231631A (zh) * 2011-06-20 2011-11-02 中兴通讯股份有限公司 Rs编码器的编码方法及rs编码器
WO2012174933A1 (zh) * 2011-06-20 2012-12-27 中兴通讯股份有限公司 Rs编码器的编码方法及rs编码器
CN103914402A (zh) * 2014-04-17 2014-07-09 华中科技大学 一种基于纠删码缓存的重构优化方法
CN105007286A (zh) * 2014-04-23 2015-10-28 苏宁云商集团股份有限公司 解码方法和装置及云存储方法和系统
CN111697976A (zh) * 2020-05-28 2020-09-22 苏州浪潮智能科技有限公司 一种基于分布式存储的rs纠删快速解码方法及系统
CN111682874A (zh) * 2020-06-11 2020-09-18 山东云海国创云计算装备产业创新中心有限公司 一种数据恢复的方法、系统、设备及可读存储介质

Also Published As

Publication number Publication date
CN112286449A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
US8006160B2 (en) Efficient encoding and decoding methods for representing schedules and processing forward error correction codes
US10270468B2 (en) Method for file updating and version control for linear erasure coded and network coded storage
KR101451338B1 (ko) 인코딩 및 디코딩 프로세스들을 위해 심볼들의 영속적 비활성화에 의한 fec 코드들을 활용하는 방법 및 장치
JP2010239625A (ja) 連鎖的暗号化反応の系統的記号化および復号化
CN113505019B (zh) 一种纠删码数据及校验恢复方法、装置、设备及可读介质
US10740198B2 (en) Parallel partial repair of storage
CN113687975B (zh) 数据处理方法、装置、设备及存储介质
CN108347306B (zh) 分布式存储系统中类局部重构码编码及节点故障修复方法
CN114153651B (zh) 一种数据编码方法、装置、设备及介质
CN102843212B (zh) 编解码处理方法及装置
US11626890B2 (en) Dynamically variable error correcting code (ECC) system with hybrid rateless reed-solomon ECCs
Tebbi et al. A code design framework for multi-rack distributed storage
CN112286449B (zh) 一种rs纠删处理设备及分布式存储系统
US10187084B2 (en) Method of encoding data and data storage system
WO2014012246A1 (zh) 用于分布式网络存储的自修复码的编码、重构和恢复方法
CN108199720B (zh) 一种减小存储开销和提高修复效率的节点修复方法及系统
CN109343998B (zh) 一种基于纠删码的全分布修复方法
US9450617B2 (en) Distribution and replication of erasure codes
CN113504875A (zh) 一种基于多级调度的纠删码系统恢复方法及系统
CN114879904B (zh) 一种数据存储纠删方法、装置、设备及可读存储介质
JPWO2011039874A1 (ja) データ送信装置、データ生成プログラムおよびデータ送受信方法
CN114253684A (zh) 一种纠删任务处理系统、方法、电子设备及存储介质
CN114610523A (zh) 一种纠删处理方法、系统及计算机存储介质
CN117591336A (zh) 基于纠删码的去中心化数据冗余存储方法及系统
CN116781606A (zh) 一种网络链路处理方法及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant