Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
CODING/DECODING PROCESSING METHOD AND DEVICE
Document Type and Number:
WIPO Patent Application WO/2014/019549
Kind Code:
A1
Abstract:
Provided are a coding/decoding processing method and device. The method comprises: performing multidimensional formatting processing on data to be coded/decoded, wherein the multi-dimensions are at least two dimensions; and according to a predetermined sequence, performing Reed-Solomon (RS) erasure code coding/decoding processing on at least two dimensions in each dimension of the data to be coded/decoded after the multidimensional formatting processing. The present invention solves the problems existing in the prior art and related art that when it is allowed to resist more data corruption, it needs to increase the calculation amount, and the coding/decoding rate and performance are affected, thus achieving the effects of, on the premise of not reducing the original coding rate and memory space utilization rate, greatly increasing the fault tolerance capability of the system while improving the coding speed and decoding speed.

Inventors:
LI LI (CN)
Application Number:
PCT/CN2013/080767
Publication Date:
February 06, 2014
Filing Date:
August 02, 2013
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
International Classes:
H04L1/00
Foreign References:
CN102843212A2012-12-26
CN1855794A2006-11-01
Other References:
LIN SHENG ET AL.: "Development of Fault-Tolerance in Network Storage Systems.", ZTE COMMUNICATIONS., vol. 16, no. 5, October 2010 (2010-10-01), pages 16
Attorney, Agent or Firm:
KANGXIN PARTNERS, P.C. (CN)
北京康信知识产权代理有限责任公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1. 一种编解码处理方法, 包括: 对待编解码数据进行多维格式化处理, 其中, 所述多维至少为二维; 按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一维度中的 至少二维进行里德-所罗门 RS纠删码编解码处理。

2. 根据权利要求 1所述的方法,其中,对待编解码数据进行多维格式化处理包括: 确定对所述待编码数据进行格式化处理的数据分块大小;

在执行编码处理的情况下, 根据确定的所述数据分块大小对所述待编码数 据进行补割处理; 在执行解码处理的情况下, 将待解码数据存入确定的所述数 据分块大小的数据块的相应位置进行解码处理。

3. 根据权利要求 1所述的方法, 其中, 按照预定的顺序, 对多维格式化处理之后 的待编解码数据的每一维度中的至少二维进行所述 RS纠删码编解码处理包括: 在执行编码处理的情况下, 按照所述多维逐级去维度的方式, 对多维格式 化处理之后的待编解码数据的每一维度进行所述 RS纠删码编码处理; 在执行解码处理的情况下, 按照所述多维逐级加维度的方式, 对多维格式 化处理之后的待编解码数据的每一维度进行所述 RS纠删码解码处理。

4. 根据权利要求 1所述的方法, 其中, 在按照预定的顺序, 对多维格式化处理之 后的待编解码数据的每一维度中的至少二维进行所述 RS纠删码编解码处理之 后, 还包括:

根据存储服务器的物理资源, 对进行所述 RS纠删码处理之后获得的数据 进行存储; 或者,

发送进行所述 RS纠删码处理之后获得的数据。

5. 根据权利要求 4所述的方法, 其中, 根据存储服务器的物理资源, 对进行所述 RS纠删码处理之后获得的数据进行存储包括: 将进行所述 RS纠删码处理之后 获得的所述数据中的部分校验数据存储在单独的存储节点上。

6. 根据权利要求 1至 5中任一项所述的方法,其中,在所述多维为三维的情况下, 按照预定的顺序, 通过以下方式至少之一对多维格式化处理之后的待编解码数 据的每一维度中的至少二维进行所述 RS纠删码编解码处理: 位于存储服务器的同一个文件访问客户端 FAC 对多维格式化处理之后的 待编解码数据的每一维度中的至少二维进行所述 RS纠删码编解码处理;

所述 FAC完成第一维度所对应的第一级编解码后,存储域中的计算节点对 第一级编解码后的数据完成第二维度所对应第二级和第三维度所对应第三级的 编解码;

所述 FAC完成第一维度所对应的第一级编解码后,存储域中的计算节点对 第一级编解码后的数据完成第二维度所对应第二级编解码, 以及存储节点对第 二级编解码后的数据完成第三维度所对应的第三级编解码。

7. 一种编解码处理装置, 包括: 第一处理模块, 设置为对待编解码数据进行多维格式化处理, 其中, 所述 多维至少为二维;

第二处理模块, 设置为按照预定的顺序, 对多维格式化处理之后的待编解 码数据的每一维度中的至少二维进行里德-所罗门 RS纠删码编解码处理。

8. 根据权利要求 7所述的装置, 其中, 所述第一处理模块包括: 第一确定单元, 设置为确定对所述待编码数据进行格式化处理的数据分块 大小;

第一处理单元, 设置为在执行编码处理的情况下, 根据确定的所述数据分 块大小对所述待编码数据进行补割处理; 在执行解码处理的情况下, 将待解码 数据存入确定的所述数据分块大小的数据块的相应位置进行解码处理。

9. 根据权利要求 7所述的装置, 其中, 所述第二处理模块包括: 第二处理单元, 设置为在执行编码处理的情况下, 按照所述多维逐级去维 度的方式, 对多维格式化处理之后的待编解码数据的每一维度中的至少二维进 行所述 RS纠删码编码处理; 第三处理单元, 设置为在执行解码处理的情况下, 按照所述多维逐级加维 度的方式, 对多维格式化处理之后的待编解码数据的每一维度中的至少二维进 行所述 RS纠删码解码处理。

0. 根据权利要求 7至 9中任一项所述的装置, 其中, 所述第二处理模块包括以下 至少之一: 按照预定的顺序, 通过以下方式至少之一对多维格式化处理之后的 待编解码数据的每一维度中的至少二维进行所述 RS纠删码编解码处理: 第四处理单元, 设置为在所述多维为三维的情况下, 通过位于存储服务器 的同一个文件访问客户端 FAC 对多维格式化处理之后的待编解码数据的每一 维度进行所述 RS纠删码编解码处理; 第五处理单元, 设置为在所述多维为三维的情况下, 通过所述 FAC完成第 一维度所对应的第一级编解码后, 存储域中的计算节点对第一级编解码后的数 据完成第二维度所对应第二级和第三维度所对应第三级的编解码;

第六处理单元, 设置为在所述多维为三维的情况下, 通过所述 FAC完成第 一维度所对应的第一级编解码后, 存储域中的计算节点对第一级编解码后的数 据完成第二维度所对应第二级编解码, 以及存储节点对第二级编解码后的数据 完成第三维度所对应的第三级编解码。

Description:
编解码处理方法及装置

技术领域 本发明涉及通信领域, 具体而言, 涉及一种编解码处理方法及装置。 背景技术 云存储是指通过集群应用、 网格技术或分布式文件系统等功能, 将网络中大量各 种不同类型的存储设备通过应用软件集合起来 协同工作, 共同对外提供数据存储和业 务访问功能的一个系统。 在云计算环境中, 文件一般被分片保存在多个云存储服务器 中。 在数据通讯时, 需要通讯的数据也会被分为多个分片, 逐片传送给对方。 在数据存储时和通讯时, 为了解决可靠性的问题, 一般采用里德-所罗门 (Reed-Solomon, 简称为 RS) 纠删码 (Erasure Codes, 简称为 EC) 技术, 将文件编 码后, 分为大小相同的 m个分片和 n个校验分片, 分别进行存储或通讯。 对于文件存 储或者通讯接收方,只要获得其中任意 m个分片,即可通过解码恢复原文件或者数据 因此可以抗 n个分片损坏或者丢失, 大大提高了系统的可靠性。对于计算机文件存 储, 纠删码系统的存储空间利用率为 m/ (m+n), 远远高于副本存储方式, 因此 RS纠删码 通过计算能力换取存储能力, 显著降低了存储成本和运维成本。

1960年, 里德 (LS.Reed) 和所罗门 (G.Solomon) 提出一种构造纠删码的方法, 使用该方法的纠删码被称作 Reed-Solomon码, 简称 RS码。 基于 RS编码技术构造的 纠删码则称作 RS纠删码。 一个 (n, k)纠删码是把 k个源数据编码为 n(n>k)个数据, 使 得用这 n个数据中任意 k个数据均可重构原来的 k个源数据。采用 m个分片和 n个校 验分片的纠删码体制就是 (m+n, m)纠删码。 里德-所罗门码主要包含基于范德蒙矩阵生成 编码, 叫范德蒙码 (Vandermond Code), 和基于柯西矩阵生成的编码, 叫柯西码(Cauchy Code)。 它们的运算基于有限 域一伽罗华 (Galois)域进行。它们在实现时可以任意设置 m和 n值,从而获得较高的 存储利用率。 但无论范德蒙矩阵和柯西矩阵的 RS纠删码体制, 都有一个共同的缺点, 就是计 算量较大, 编码、 解码速度较慢。 根据已有的公开数学知识, 上述两种 RS纠删码在 编解码时, 计算量和时间复杂度均为 0(ηι Λ 2), 并且求解生成矩阵的逆矩阵时, 采用高 斯 -若当消元法为最佳算法, 计算量和时间复杂度为 0(m ), 如果解码时使用了 k个 冗余块,则解码算法运算量为 O(mk)。对于长度为 L的文件,解码算法运算量为 0(Lk)。 解码速度和使用的冗余块 k成正比, 因此, 在实际使用中, 使用的冗余块值不能太大。 目前商用系统中分片数量 m—般不超过 10, 校验片 n—般不超过 6。 为了在计算机通 讯领域更好地运用 RS纠删码体制, 一般采用专用硬件实现编解码功能, 提高编解码 速度。 另一方面, 在使用民用廉价硬盘的云存储系统, 和 P2P动态存储-通讯环境中, 希 望能在不影响编码率和解码性能的情况下, 抗更多的数据损坏, 即要求校验分片 n足 够大, 且使用的 RS纠删码编解码算法性能不下降。 在这种模式下, 单纯靠提高 n值 是行不通的, 会造成计算量的快速增长, 导致性能下降到不实用的地步。 因此, 在相关技术中存在当允许抗更多的数据损坏时 , 需要增加计算量, 以及影 响编解码速率以及性能的问题。 发明内容 本发明提供了一种编解码处理方法及装置, 以至少解决现有技术相关技术中存在 当允许抗更多的数据损坏时, 需要增加计算量, 以及影响编解码速率以及性能的问题。 根据本发明的一个方面, 提供了一种编解码处理方法, 包括: 对待编解码数据进 行多维格式化处理, 其中, 所述多维至少为二维; 按照预定的顺序, 对多维格式化处 理之后的待编解码数据的每一维度中的至少二 维进行里德-所罗门 RS纠删码编解码处 理。 优选地, 对待编解码数据进行多维格式化处理包括: 确定对所述待编码数据进行 格式化处理的数据分块大小; 在执行编码处理的情况下, 根据确定的所述数据分块大 小对所述待编码数据进行补割处理; 在执行解码处理的情况下, 将待解码数据存入确 定的所述数据分块大小的数据块的相应位置进 行解码处理。 优选地, 按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度中 的至少二维进行所述 RS纠删码编解码处理包括: 在执行编码处理的情况下, 按照所 述多维逐级去维度的方式, 对多维格式化处理之后的待编解码数据的每一 维度进行所 述 RS纠删码编码处理; 在执行解码处理的情况下, 按照所述多维逐级加维度的方式, 对多维格式化处理之后的待编解码数据的每一 维度进行所述 RS纠删码解码处理。 优选地, 在按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度 中的至少二维进行所述 RS纠删码编解码处理之后, 还包括: 根据存储服务器的物理 资源, 对进行所述 RS纠删码处理之后获得的数据进行存储; 或者, 发送进行所述 RS 纠删码处理之后获得的数据。 优选地, 根据存储服务器的物理资源, 对进行所述 RS纠删码处理之后获得的数 据进行存储包括: 将进行所述 RS纠删码处理之后获得的所述数据中的部分校 数据 存储在单独的存储节点上。 优选地, 在所述多维为三维的情况下, 按照预定的顺序, 通过以下方式至少之一 对多维格式化处理之后的待编解码数据的每一 维度中的至少二维进行所述 RS纠删码 编解码处理:位于存储服务器的同一个文件访 问客户端 FAC对多维格式化处理之后的 待编解码数据的每一维度进行所述 RS纠删码编解码处理; 所述 FAC完成第一维度所 对应的第一级编解码后, 存储域中的计算节点对第一级编解码后的数据 完成第二维度 所对应第二级和第三维度所对应第三级的编解 码;所述 FAC完成第一维度所对应的第 一级编解码后, 存储域中的计算节点对第一级编解码后的数据 完成第二维度所对应第 二级编解码, 以及存储节点对第二级编解码后的数据完成第 三维度所对应的第三级编 解码。 根据本发明的另一方面, 提供了一种编解码处理装置, 包括: 第一处理模块, 设 置为对待编解码数据进行多维格式化处理, 其中, 所述多维至少为二维; 第二处理模 块, 设置为按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度中的 至少二维进行里德-所罗门 RS纠删码编解码处理。 优选地, 所述第一处理模块包括: 第一确定单元, 设置为确定对所述待编码数据 进行格式化处理的数据分块大小; 第一处理单元, 设置为在执行编码处理的情况下, 根据确定的所述数据分块大小对所述待编码数 据进行补割处理; 在执行解码处理的情 况下,将待解码数据存入确定的所述数据分块 大小的数据块的相应位置进行解码处理。 优选地, 所述第二处理模块包括: 第二处理单元, 设置为在执行编码处理的情况 下, 按照所述多维逐级去维度的方式, 对多维格式化处理之后的待编解码数据的每一 维度中的至少二维进行所述 RS纠删码编码处理; 第三处理单元, 设置为在执行解码 处理的情况下, 按照所述多维逐级加维度的方式, 对多维格式化处理之后的待编解码 数据的每一维度进行所述 RS纠删码解码处理; 优选地, 所述第二处理模块包括以下至少之一: 按照预定的顺序, 通过以下方式 至少之一对多维格式化处理之后的待编解码数 据的每一维度中的至少二维进行所述 RS纠删码编解码处理: 第四处理单元, 设置为在所述多维为三维的情况下, 通过位于 存储服务器的同一个文件访问客户端 FAC 对多维格式化处理之后的待编解码数据的 每一维度进行所述 RS纠删码编解码处理; 第五处理单元, 设置为在所述多维为三维 的情况下, 通过所述 FAC完成第一维度所对应的第一级编解码后, 存储域中的计算节 点对第一级编解码后的数据完成第二维度所对 应第二级和第三维度所对应第三级的编 解码; 第六处理单元, 设置为在所述多维为三维的情况下, 通过所述 FAC完成第一维 度所对应的第一级编解码后, 存储域中的计算节点对第一级编解码后的数据 完成第二 维度所对应第二级编解码, 以及存储节点对第二级编解码后的数据完成第 三维度所对 应的第三级编解码。 通过本发明, 采用对待编解码数据进行多维格式化处理, 其中, 所述多维至少为 二维; 按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度中的至少 二维进行里德-所罗门 RS纠删码编解码处理, 解决了现有技术相关技术中存在当允许 抗更多的数据损坏时, 需要增加计算量, 以及影响编解码速率以及性能的的问题, 进 而达到了在不降低原有编码率和存储空间利用 率的前提下, 大幅度地增加系统的容错 能力, 同时提高编码速度和解码速度的效果。 附图说明 此处所说明的附图用来提供对本发明的进一步 理解, 构成本申请的一部分, 本发 明的示意性实施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图 中- 图 1是根据本发明实施例的编解码处理方法的流 图; 图 2是根据本发明实施例的编解码处理装置的结 框图; 图 3是根据本发明实施例的解码处理装置中第一 理模块 22的优选结构框图; 图 4是根据本发明实施例的解码处理装置中第二 理模块 24的优选结构框图一; 图 5是根据本发明实施例的解码处理装置中第二 理模块 24的优选结构框图二; 图 6是根据本发明实施例的基于 RS纠删码的多级编解码系统的结构示意图。 具体实施方式 下文中将参考附图并结合实施例来详细说明本 发明。 需要说明的是, 在不冲突的 情况下, 本申请中的实施例及实施例中的特征可以相互 组合。 在本实施例中提供了一种编解码处理方法, 图 1是根据本发明实施例的编解码处 理方法的流程图, 如图 1所示, 该流程包括如下步骤: 步骤 S102, 对待编解码数据进行多维格式化处理, 其中, 该多维至少为二维; 步骤 S104, 按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度 中的至少二维进行里德-所罗门 RS纠删码编解码处理。 通过上述步骤, 对待编解码的数据进行分级处理, 相对于相关技术中直接对待编 解码的数据进行处理, 可以很容易地利用存储系统或分布式通讯系统 的计算能力和存 储能力, 分级的处理使得各级之间相互独立, 不仅解决了现有技术相关技术中存在当 允许抗更多的数据损坏时, 需要增加计算量, 以及影响编解码速率以及性能的问题, 进而达到了在不降低原有编码率和存储空间利 用率的前提下, 大幅度地增加系统的容 错能力, 同时提高编码速度和解码速度的效果。 在对待编解码数据进行多维格式化处理时, 首先, 可以根据物理资源, 确定对待 编码数据进行格式化处理的数据分块大小, 即在后续编解码处理时, 以该数据分块大 小为单位进行处理; 而在进行编码以及解码处理时, 所执行的操作是不同的, 例如, 在执行编码处理的情况下, 根据确定的该数据分块大小对待编码数据进行 补割处理, 举例来说, 如果将待编码的数据进行格式化之后, 所划分的数据分块大小为 a*b*c, 当待编码的数据不足该大小时, 则通过补零的操作来补全, 而当待编码的数据大于该 大小时, 则通过将待编码的数据切割为该大小来进行编 码操作; 在执行解码处理的情 况下,将待解码数据存入确定的所述数据分块 大小的数据块的相应位置进行解码处理, 同样以上述例子来进行说明: 对于存储的待解码的数据, 从存在位置上读取数据分块 大小为 a*b*c, 不能选择大于该大小的数据, 而在待解码的数据大于上述大小时, 可 以优先选择数据部分的待解码数据; 另外, 对于接收到的待解码数据, 可以将它们按 编号放入数据分块大小为 a*b*c的逻辑的数据块的相应位置中进行解码处 。 需要说明的是, 按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度中的至少二维进行 RS纠删码依据编解码的处理不同, 执行不同的顺序, 例如, 在执行编码处理的情况下, 按照多维逐级去维度的方式, 对多维格式化处理之后的待 编解码数据的每一维度进行 RS纠删码编码处理; 而在执行解码处理的情况下, 按照 多维逐级加维度的方式, 对多维格式化处理之后的待编解码数据的每一 维度进行 RS 纠删码解码处理。 优选地, 在按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度 中的至少二维进行 RS纠删码编解码处理之后, 还包括: 根据存储服务器的物理资源, 对进行述 RS纠删码处理之后获得的数据进行存储; 或者, 发送进行 RS纠删码处理之 后获得的数据。 另外, 还可以将进行 RS纠删码处理之后获得的数据中的部分校验数 据存储在单独的存储节点上。 对于对编解码所执行的主体, 可以有多种方式, 下面以上述所指的多维为三维的 例子来进行说明, 在将待编解码的数据进行规格化为三维的情况 下, 可以按照预定的 顺序, 通过以下方式至少之一对多维格式化处理之后 的待编解码数据的每一维度进行 所述 RS纠删码编解码处理: (1 ) 位于存储服务器的同一个文件访问客户端 FAC对多 维格式化处理之后的待编解码数据的每一维度 进行所述 RS纠删码编解码处理; (2) 该 FAC完成第一维度所对应的第一级编解码后,存 储域中的计算节点对第一级编解码 后的数据完成第二维度所对应第二级和第三维 度所对应第三级的编解码; (3 ) FAC完 成第一维度所对应的第一级编解码后, 存储域中的计算节点对第一级编解码后的数据 完成第二维度所对应第二级编解码, 以及存储节点对第二级编解码后的数据完成第 三 维度所对应的第三级编解码。 上述各种处理方式可以根据具体的需要进行灵 活选择。 在本实施例中还提供了一种编解码处理装置, 该装置用于实现上述实施例及优选 实施方式, 已经进行过说明的不再赘述。 如以下所使用的, 术语"模块"可以实现预定 功能的软件和 /或硬件的组合。 尽管以下实施例所描述的装置较佳地以软件来 实现, 但 是硬件, 或者软件和硬件的组合的实现也是可能并被构 想的。 图 2是根据本发明实施例的编解码处理装置的结 框图, 如图 2所示, 该装置包 括第一处理模块 22和第二处理模块 24, 下面对该装置进行说明。 第一处理模块 22, 设置为对待编解码数据进行多维格式化处理, 其中, 该多维至 少为二维; 第二处理模块 24, 连接至上述第一处理模块 22, 设置为按照预定的顺序, 对多维格式化处理之后的待编解码数据的每一 维度中的至少二维进行里德-所罗门 RS 纠删码编解码处理。 图 3是根据本发明实施例的解码处理装置中第一 理模块 22的优选结构框图,如 图 3所示, 该第一处理模块 22包括第一确定单元 32和第一处理单元 34, 下面对该第 一处理模块 22进行说明。 第一确定单元 32, 设置为确定对待编码数据进行格式化处理的数 据分块大小; 第 一处理单元 34, 连接至上述第一确定单元 32, 设置为在执行编码处理的情况下, 根据 确定的数据分块大小对待编码数据进行补割处 理; 在执行解码处理的情况下, 将待解 码数据存入确定的数据分块大小的数据块的相 应位置进行解码处理。 图 4是根据本发明实施例的解码处理装置中第二 理模块 24的优选结构框图一, 如图 4所示, 该第二处理模块 24包括第二处理单元 42和第三处理单元 44, 下面对该 第二处理模块 24进行说明。 第二处理单元 42,设置为在执行编码处理的情况下,按照多 逐级去维度的方式, 对多维格式化处理之后的待编解码数据的每一 维度中的至少二维进行 RS纠删码编码 处理; 第三处理单元 44, 连接至上述第二处理单元 42, 设置为在执行解码处理的情况 下, 按照多维逐级加维度的方式, 对多维格式化处理之后的待编解码数据的每一 维度 进行 RS纠删码解码处理; 图 5是根据本发明实施例的解码处理装置中第二 理模块 24的优选结构框图二, 如图 5所示, 该第二处理模块 24包括以下至少之一: 第四处理单元 52、 第五处理单 元 54、 第六处理单元 56, 下面对该第二处理模块 24进行说明。 第四处理单元, 设置为在多维为三维的情况下, 通过位于存储服务器的同一个文 件访问客户端 FAC 对多维格式化处理之后的待编解码数据的每一 维度中的至少二维 进行所述 RS纠删码编解码处理; 第五处理单元, 设置为在多维为三维的情况下, 通 过所述 FAC完成第一维度所对应的第一级编解码后,存 储域中的计算节点对第一级编 解码后的数据完成第二维度所对应第二级和第 三维度所对应第三级的编解码; 第六处 理单元, 设置为在多维为三维的情况下, 通过所述 FAC完成第一维度所对应的第一级 编解码后, 存储域中的计算节点对第一级编解码后的数据 完成第二维度所对应第二级 编解码,以及存储节点对第二级编解码后的数 据完成第三维度所对应的第三级编解码。 在本实施例中提供了一种在文件存储或数据通 讯时, 基于 RS纠删码的多级编解 码方法, 采用该方法实现对数据或文件的多级编解码。 在该基于 RS纠删码的多级编 解码方法中, 对待编码数据进行多维格式化, 例如, 二维或者三维格式化, 随后按要 求, 顺序对每一维度进行 RS纠删码编码操作, 组成多维度数据分组和相应的校验分 块, 较优地, 可以按照云存储的物理资源情况进行存储, 因而可以将部分校验数据存 储在单独的存储节点上。 在本实施例中以三级编解码为例进行说明。 步骤 Sl, 编码: 在本实施例中的三级编码包括如下步骤:

( 1 ) 将待编码数据进行三维格式化 可以根据云存储的物理资源情况, 确定三级编码参数的分片数量 mi, 和校验分片 数量 ni, i=l, 2, 3。 其中, ml+nl为单个存储服务器中磁盘总数, m2+n2为单机柜中 存储服务器数量, m3+n3为同一存储域内的机柜数量。 将待编码数据进行三维格式化, 即按照 ml *m2*m3的方式, 组成逻辑上看起来是 长方体的数据块。如果数据不足 ml*m2*m3, 最后部分通过补零补齐; 如果文件较大, 则按照 ml *m2*m3的分块进行切割, 切成逻辑上的多个长方体, 其中, 长为 ml, 宽 为 m2, 高为 m3。 (2) 平面编码 对数据分块按照平面维度, 对每一层的 ml *m2数据进行 RS(m3+n3, n3)编码。编 码后, 数据分块的高度从 m3变为 m3+n3, 即产生了额外的 n3层校验数据。

( 3 ) 列编码 将 m3+n3 层的数据的每一层数据, 按列方向, 对 m3 行中的每一列数据进行 RS(m2+n2, n2)编码。 编码后, 数据分块每层的行数从 m2变为 m2+n2, 即产生了额 外的 n2行校验数据。

(4) 行编码 将 m3+n3层数据分块的每一层数据, 每层有 m2+n2行, 按行方向, 对每一行进 行 RS(ml+nl, nl)编码。 编码后, 数据每行变为 ml+nl个数据, 最终数据块大小变为 (ml+nl)*(m2+n2)*(m3+n3)。 对于以上所述的三级编码, 既可以由云存储的同一个文件访问客户端(Fil e Access Client, 简称为 FAC) 进行, 也可以由 FAC执行第一级的编码, 然后将编码后的数据 发送给存储域中各个机柜中的计算节点, 由计算节点进行第二级和第三级的处理。 计 算节点可以单独完成第二级和第三级的编码, 也可只完成第二级的编码, 然后将数据 按行发送给存储节点, 再由存储节点进行第三级编码, 将数据存放在存储节点的各个 磁盘中。

( 5 ) 数据存储或通讯 对于云存储方式, 将编码后数据块 m3+n3层, 每一层数据发送到同一存储域内的 每个机柜中。 对于每个机柜收到的 (ml+nl ) *(m2+n2)数据, 按行存储到机柜中的每 个存储服务器中。 对于每个存储服务器, 将每行的 ml+nl数据存储到 ml+nl个磁盘 中。 对于数据通讯模式, 将编码后的所有数据块按顺序编号, 逐个发送给对方。 步骤 S2, 解码: 在本实施例中的三级解码包括如下步骤: ( 1 ) 取待解码数据 对于云存储的解码, 当文件访问客户端 FAC需要解码时, 将根据数据或文件的元 数据信息,从 m3+n3个机柜,每个机柜 m2+m2的存储服务器,每个存储服务器的 ml+nl 磁盘上, 按编号取数据。 对于每个存储服务器上的每行数据, 至少取到 ml 个数据, 如果可以选择多于 ml个数据, 优先选择前 ml个编号的数据 (即尽量选择原数据)。 对于每个机柜, 至少取 m2行的完整数据, 共计 m2*ml个数据, 优先选择前 m2个列 的数据; 对于多个机柜, 至少返回 m3个机柜的完整 ml *m2个数据, 优先选择前 m3 个机柜的数据。 对于数据通讯模式, 对收到的所有数据块, 将它们按编号放入逻辑的 (ml+nl)*(m2+n2)*(m3+n3)的长方体中的相应位置进行 码。

(2) 行解码 对于收到的每个 (ml+nl)*(m2+n2)*(m3+n3)的立方体的数据, 首先按行进行 RS (ml+nl , ml ) 解码, 恢复每行的数据。 如果该行收到的数据少于 ml, 则该行解码 失败。 ( 3 ) 列解码 对于每个平面中, 通过行解码, 至少需要恢复出任意 m2行的完整数据, 才能进 行列解码。 对于每个平面, 如果有了 m2行完整数据, 则对这些行的每一列数据, 通 过进行 RS ( m2+n2, m2 ) 解码, 可以获得该平面内所有的原始数据。 如果获得的完 整数据少于 m2行, 则列解码失败, 无法获得该平面内的原始数据。 (4) 平面解码 对于 m3+n3个平面的数据, 通过列解码, 至少需要恢复出 m3个平面的数据, 才 能进行平面解码。 如果有了 m3个平面的数据, 则通过 (m3+n3, m3)解码, 即可获得所 有初始的 m3个平面的数据, 即获得所有初始数据。 对于以上所述的三级编码体制例子, 在云存储中, 其三级解码过程, 既可以由全 部云存储的同一个文件访问客户端 FAC进行,也可以由存储机柜计算节点进行第二 三 级解码 (即行解码和列解码), 再由 FAC进行第一级解码(平面解码), 也可以分别由 存储机柜存储节点进行第三级解码(行解码) ,计算节点进行二级解码(列解码), FAC 进行第一级解码(平面解码)。 在实际运用中, 具体使用几级编解码流程, 取决于实际 运行环境。 例如, 如果只需要两级编解码, 则在 FAC编码时只需要简单的将数据分为 m3层平面即可, 第二级编码由行编码完成, 不需要再做列编码。 对于本发明实施例所采用的基于 RS纠删码的多级编解码系统, 其编码率和存储 空间利用率 P3=ml *m2*m3/(ml+nlXm2+n2)(m3+n3)。 可容纳 n3个机柜损坏, 每个机 柜容纳 n2个存储节点损坏, 每个节点容纳 nl块盘损坏。 对于可以容纳损坏的任意磁 盘总数 S3min而言, S3min=(nl+l)(n2+l)(n3+l)-l, 即至少容纳任意 S3min块盘损坏。 至多容纳损坏盘 S3max, S3max=(ml+nl)(m2+n2)(m3+n3)-mlm2m3。 如 果是两级编解码系 统 , 其编码率和存储空 间 利用 率 P2= ml *m2/(ml+nl)(m2+n2), 至少抗 S2min块盘损坏, 至多抗 S2max块盘损坏, 其中, S2min=(nl+l)(n2+l)-l , S2max = (ml+nl)(m2+n2)-mlm2。 对于 k 级编解码系统, Pk=ml * ...mk/(ml+nl)* ...(mk+nk) , Skmin=(nl+l)...(nk+l)-l , Skmax= (m 1 +n 1 ) .. · (mk+nk)-m 1.. mk;。 对于一个典型的云存储系统, 一个机柜有 16个 2U存储服务器, 每个存储服务器 12个 SATA硬盘, 或者 8个 4U存储服务器, 每个存储服务器 24个 SATA硬盘, 每个 机柜另有 4个计算节点。一个存储域可以包括 8-16个机柜。如果采用三级编解码系统, m3=7, n3=l, m2=7, n2=l, ml=21, nl=3,可以计算出编码率 P3=7*7*21/8*8*24=66.99%, 可以容纳至少任意 2*2*4-1=15块磁盘损坏, 至多容纳 8*8*24-7*7*21=507盘损坏。 如 果采用两级编码系统,将 8个机柜 8个存储服务器,共计 64个存储服务器组成第二级, ml=21, nl=3 , m2=61, n2=3 , 则编码率 P2=61 *21/64*24=83.40%, 至少可抗 4*4-1=15 块磁盘损坏, 至多抗 64*24-61 *21=255块磁盘损坏。 对于上述举例中的三级存储系统, 如果都采用 RS纠删码, 则根据已有的知识, 如果三级解码中分别使用了 kl,k2,k3块校验数据,则文件解码计算量为 0(kl),0(k2), 0(k3) 0 对于上述例子中, 在抗至少 15 块盘损的情况下, 解码总计算量为 0(1)+0(1)+0(3), 和单级 RS编解码情形下解码计算量 0(5)相当。在采用二级 RS编解 码的上述例子情况下, 在抗至少 15块盘损的情况下, 解码总计算量为 0(3)+0(3), 和 单级 RS编解码情形下解码计算量 0(6)相当。 因此, 采用多级存储系统, 可以大大提 高解码速度。 反过来, 单级 RS纠删码编解码系统中, 如果要支持任意 15块盘损, 同 时满足 83.40%的编码率, 需要进行 RS(90,15)的编解码, 解码时求解逆矩阵性能和解 码性能是非常低的。 对于本发明实施例所提供的基于 RS纠删码的多级编解码方法, 由于多级编解码 体制可以和云存储的存储硬件相结合, 因此, 可以构成分布式集群编解码, 充分利用 存储机柜中计算节点、 存储节点的计算能力。 在编码时, 使用 FAC只进行第三级 RS (m3+n3,m3 ) 编码, 完成后产生 m3+n3层数据后, 即向应用返回编码成功, 随后存 储机柜中计算节点和存储节点再进行第二层和 第一层编码。 这样在应用看来, 只需要 进行 RS (m3+n3,m3 ) 编码即可返回编码成功, 只需要额外编码 n3/(m3+n3)的内容。 在解码时, 由存储机柜中计算节点和存储节点完成第二级 和第一级的解码操作, 产生 完整的数据平面后,再传送给 FAC做第三级的解码。存储节点只对整个文件的 m3*m2 分之一数据进行解码, 计算节点只对整个文件 m3分之一数据进行解码, 因此第二级 和第一级的解码操作时间, 远远小于 FAC进行的第一级解码。这样在分布式多级编解 码系统中, 在应用看来, 编码时间为 RS (m3+n3,m3 ) 编码时间, 解码时间为稍大于 RS (m3+n3,m3 ), 即稍大于 0(n3)。 对于两级编解码系统, 由存储机柜计算节点完成第一级编解码, FAC完成第二级 编解码。 在应用看来, 编码时间为 RS (m2+n2,m2)编码时间, 解码时间为稍大于 RS (m2+n2,m2), 即稍大于 0(n2)。对于数据通讯模式下的编解码, 本发明实施例所提供 的多级编解码体制思想也可采用, 即第三级的 FAC把编解码任务分解, 将其中的第二 级和第一级编解码任务发送给分布式系统中的 其他计算机进行, 从而组成更高效的分 布式多级编解码系统, 同时可抗更多的数据损坏或丢失。 在实际使用过程中, 每个平面的编码后数据, 都可以存放在单独的存储机柜中。 m3+n3层数据, 存储在 m3+n3个存储机柜中。 其中 n3层平面的冗余数据, 都存储在 单独的 n3个存储机柜中。 对于同一个存储机柜, m2+n2行数据, 分别存储在 m2+n2 的存储服务器中, 其中 n2行的校验数据, 都保存在单独的 n2个存储服务器中。 在系 统处于只读不写的模式下, 且系统磁盘出错数量较少时, 校验数据存储机柜、 机架上 校验存储服务器可以关闭或者降速运行, 以便节约系统运营费用。 对于本发明实施例所提供的基于 RS纠删码的多级编解码系统, 其每个级别的 RS 编解码算法是独立的, 因此, 可以采用以下变种来进一步提高性能: 例如: (1 ) 减少 FAC编解码那一级的校验数^ 对于二级编解码系统, 减少 n2值; 对于三级编解码系 统, 减少 n3值。 这样应用感觉到的编解码时间都能相应缩小。 又例如, FAC编解码 那一级采用更高效的编解码算法, 由于应用感知的编解码时间主要取决于 FAC 那一 级, 因此, 在 FAC中采用的 RS算法可以采用更高效的算法。 例如, FAC那一级, 根 据两级编解码还是三级编解码体制, 将对应的校验分片数量 n3或者 n2设为 1, 这样 可以采用 XOR类型的异或算法取代原有的 RS纠删码算法。 由于 XOR算法实现简单 高效, 可以进一步提高应用感知的编解码效率。 上述实施例及优选实施方式所提供的基于 RS纠删码的多级编解码系统, 可以通 过软件实现, 通过互相独立的多级 RS纠删码体制对数据进行多级编解码, 将数据或 文件按组为单位进行编码和解码。 组与组之间数据也相互冗余备份。 使用本发明实施 例并不要求待编组数量和组内数据数量相等, 可以任意组合, 较优地, 编组数量和组 内数据数量, 可以和云存储物理设备分域情况进行对应, 方便云存储系统进行管理和 实现。 采用本发明实施例的多级编解码系统, 可以很容易的利用云存储系统或者分布 式通讯系统的计算能力和存储能力, 组成一个分布式编解码系统, 有效提高编解码性 能。 另外, 本发明实施例所提供的多级编解码系统, 对纠删码的种类没有限制, 各级 编解码系统均独立实现, 互不影响。 因此, 可以针对用户性能要求, 采用 XOR类型 的优化编解码算法, 进一步提高编解码性能。 和原有单级 RS编解码系统相比, 使用 本发明, 在不降低原有编码率和存储空间利用率的前提 下, 可大幅度增加系统容错能 力, 同时提高编码速度和解码速度, 很适合使用廉价民用级磁盘的云存储系统和 P2P 动态存储系统的场景。 此外, 使用本发明实施例所提供的多级编解码方法, 可以将校 验数据集中在云存储的某些机柜、 机架上。 在系统处于只读不写的模式下, 且系统磁 盘出错数量较少时, 校验数据机柜、 机架上校验存储服务器可以关闭或者降速运行 , 节约系统运营费用。 下面结合附图, 对本发明实施例进行说明。 图 6是根据本发明实施例的基于 RS纠删码的多级编解码系统的结构示意图, 如 图 6所示, 该系统采用三级编解码对数据进行处理。 在该使用三级 RS纠删码编解码系统中, 三级编码分别为 RS ( ml+nl , ml )、 RS

(m2+n2, m2)、 RS (m3+n3 , m3 ) 纠删码。 待编码的数据, 在逻辑上按 ml *m2*m3 进行分块, 每行 ml、 每列 m2个原数据, 共有 m3层的数据。 如果文件末尾分块不足 ml *m2*m3, 可以填充 0使其满足 ml *m2*m3划分, 也可单独用副本方式存储文件末 尾。 文件编码时首先进行第一级平面编码, 使用 RS (m3+n3,m3 )编码。 编码结束后, 产生 n3层的校验数据平面, 每个校验数据平面含有 ml *m2个校验数据, 每个校验数 据均由 m3层原数据平面中各个数据根据 RS纠删码计算得到。第一级平面编码, 是由 FAC来完成的。如果 FAC只用于完成第一级编码, 则完成后即可向应用返回编码成功 消息。 随后进行第二级列编码, 使用 RS (m2+n2,m2) 编码。 对于每个平面上的 ml *m2 个原数据, 可以组成 ml 个单独的列。 对每个列进行 RS (m2+n2,m2 ) 编码, 每个列 产生 n2个校验数据。 对于第一级平面编码产生的 n3层校验数据, 也同样进行第二级 列编码, 产生第二级的校验数据。 第二级列编码后, 每层平面数据将产生额外的 n2 行数据。 第二级编码可以由 FAC完成, 也可由 FAC完成第一级编码后, 将各平面的 数据发送到各个存储机柜计算节点, 由各个存储机柜计算节点来完成。 最后进行第三级行编码, 使用 RS (ml+nl,ml ) 编码。 对于每个平面上的 ml *m2 个原数据, 可以组成 m2个单独的行。 对每个行进行 RS (ml+nl,ml ) 编码, 每个行 产生 nl个校验数据。 对于第二级列编码产生的 n2个额外的校验数据组成的行, 也同 样进行第三级行编吗; 对于第一级平面编码产生的 n3层校验数据, 再完成第二级列编 码后, 同样进行第三级行编码。 完成第三级编码后, 数据分块由 ml *m2*m3 变为 (ml+nl)*(m2+n2)*(m3+n3) o 第三级行编码可以由 FAC或者各个存储机柜计算节点完 成, 也可先将每个平面的每行数据, 发送到存储机柜各个存储节点上, 由各个存储节 点来进行计算。 计算完毕后, 每行的 ml+nl个数据将存放在存储节点的 ml+nl个独 立磁盘上。 这样, 每个数据平面层的数据, 存放于不同的存储机柜; 同一数据平面的 每行数据, 存储于同一机柜下不同的存储节点; 每行数据中的每个数据, 存储于同一 存储节点下的不同磁盘上。 文件的解码过程和编码过程刚好相反。 首先进行第三级行解码, 每个存储节点上 只要获得 ml 个磁盘数据, 即可完成本级行解码, 获得本行的原始数据; 在进行第二 级列解码时, 只要有 m2个行完成了行解码, 即可完成本级列解码, 获得本平面的原 始数据; 在进行第一级平面解码时, 只要有 m3个平面的数据, 即可获得全部原始数 据。 在本发明实施例所提供的多级 RS编解码体制下, 最多可以抗 n3个机柜数据损坏 或者掉电。 对于每个机柜, 最多抗 n2个存储节点损坏或者掉电。 对于每个存储节点, 最多抗 nl 个磁盘损坏。 如果机柜、 存储节点都正常, 整个系统抗任意 (nl+l)(n2+l)(n3+l)-l个磁盘损坏。 取 m3=7, n3=l , m2=7, n2=l, ml=21, nl=3 , 可 以计算出整个系统共有磁盘 8*8*24=1536块, 编码率 P=7*7*21/8*8*24=66.99%, 可以 容纳至少任意 15块磁盘损坏, 至多容纳 8*8*24-7*7*21=507盘损坏, 即最多容纳 33% 的磁盘损坏。 对于本例的三级编解码体制, 三级的编解码计算量分别为 0(1)、 0(1)、 Q(3), 总计算量相当于一级编解码体制的 0(5), 但抗磁盘损坏数量从 5增加到 15。 如果采用两级编码系统,将 8个机柜 8个存储服务器,共计 64个存储服务器组成 第二级, 整个系统共有磁盘 64*24=1536块, ml=21, nl=3 , m2=61, n2=3 , 则编码率 P2=61 *21/64*24=83.40%, 至少可抗 4*4-1=15块磁盘损坏, 至多抗 64*24-61 *21=255 块磁盘损坏, 即最多容纳 16.6%的磁盘损坏。 和三级编码系统相比, 在同样抗 15块磁 盘损坏前提下, 提高了编码率, 但降低了最大磁盘抗损数量。 对于本例的二级编解码 体制, 二级编解码计算量分别为 0(3)、 0(3), 总计算量相当于一级编解码体制的 0(6), 但抗磁盘损坏数量从 6增加到 15。 因此, 通过上述实施例及优选实施方式, 不仅较大地提高了编解码速率, 而且, 大大提高了系统的容错能力。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现 , 从而, 可以 将它们存储在存储装置中由计算装置来执行, 并且在某些情况下, 可以以不同于此处 的顺序执行所示出或描述的步骤, 或者将它们分别制作成各个集成电路模块, 或者将 它们中的多个模块或步骤制作成单个集成电路 模块来实现。 这样, 本发明不限制于任 何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。