1、(10)申请公布号 CN 102843212 A (43)申请公布日 2012.12.26 C N 1 0 2 8 4 3 2 1 2 A *CN102843212A* (21)申请号 201210275397.6 (22)申请日 2012.08.03 H04L 1/00(2006.01) H04L 29/08(2006.01) (71)申请人中兴通讯股份有限公司 地址 518057 广东省深圳市南山区科技南路 55号 (72)发明人孙崎 迟恩宇 (74)专利代理机构北京康信知识产权代理有限 责任公司 11240 代理人余刚 梁丽超 (54) 发明名称 编解码处理方法及装置 (57) 摘要 本
2、发明提供了一种编解码处理方法及装置, 该方法包括:对待编解码数据进行多维格式化处 理,其中,多维至少为二维;按照预定的顺序,对 多维格式化处理之后的待编解码数据的每一维度 中的至少二维进行里德-所罗门RS纠删码编解码 处理,通过本发明,解决了现有技术相关技术中存 在当允许抗更多的数据损坏时,需要增加计算量, 以及影响编解码速率以及性能的问题,进而达到 了在不降低原有编码率和存储空间利用率的前提 下,大幅度地增加系统的容错能力,同时提高编码 速度和解码速度的效果。 (51)Int.Cl. 权利要求书2页 说明书10页 附图3页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求
3、书 2 页 说明书 10 页 附图 3 页 1/2页 2 1.一种编解码处理方法,其特征在于,包括: 对待编解码数据进行多维格式化处理,其中,所述多维至少为二维; 按照预定的顺序,对多维格式化处理之后的待编解码数据的每一维度中的至少二维进 行里德-所罗门RS纠删码编解码处理。 2.根据权利要求1所述的方法,其特征在于,对待编解码数据进行多维格式化处理包 括: 确定对所述待编码数据进行格式化处理的数据分块大小; 在执行编码处理的情况下,根据确定的所述数据分块大小对所述待编码数据进行补割 处理;在执行解码处理的情况下,将待解码数据存入确定的所述数据分块大小的数据块的 相应位置进行解码处理。 3.根
4、据权利要求1所述的方法,其特征在于,按照预定的顺序,对多维格式化处理之后 的待编解码数据的每一维度中的至少二维进行所述RS纠删码编解码处理包括: 在执行编码处理的情况下,按照所述多维逐级去维度的方式,对多维格式化处理之后 的待编解码数据的每一维度进行所述RS纠删码编码处理; 在执行解码处理的情况下,按照所述多维逐级加维度的方式,对多维格式化处理之后 的待编解码数据的每一维度进行所述RS纠删码解码处理。 4.根据权利要求1所述的方法,其特征在于,在按照预定的顺序,对多维格式化处理之 后的待编解码数据的每一维度中的至少二维进行所述RS纠删码编解码处理之后,还包括: 根据存储服务器的物理资源,对进行
5、所述RS纠删码处理之后获得的数据进行存储;或 者, 发送进行所述RS纠删码处理之后获得的数据。 5.根据权利要求4所述的方法,其特征在于,根据存储服务器的物理资源,对进行所述 RS纠删码处理之后获得的数据进行存储包括:将进行所述RS纠删码处理之后获得的所述 数据中的部分校验数据存储在单独的存储节点上。 6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述多维为三维的情况 下,按照预定的顺序,通过以下方式至少之一对多维格式化处理之后的待编解码数据的每 一维度中的至少二维进行所述RS纠删码编解码处理: 位于存储服务器的同一个文件访问客户端FAC对多维格式化处理之后的待编解码数 据的每一维度
6、中的至少二维进行所述RS纠删码编解码处理; 所述FAC完成第一维度所对应的第一级编解码后,存储域中的计算节点对第一级编解 码后的数据完成第二维度所对应第二级和第三维度所对应第三级的编解码; 所述FAC完成第一维度所对应的第一级编解码后,存储域中的计算节点对第一级编解 码后的数据完成第二维度所对应第二级编解码,以及存储节点对第二级编解码后的数据完 成第三维度所对应的第三级编解码。 7.一种编解码处理装置,其特征在于,包括: 第一处理模块,用于对待编解码数据进行多维格式化处理,其中,所述多维至少为二 维; 第二处理模块,用于按照预定的顺序,对多维格式化处理之后的待编解码数据的每一 维度中的至少二维
7、进行里德-所罗门RS纠删码编解码处理。 权 利 要 求 书CN 102843212 A 2/2页 3 8.根据权利要求7所述的装置,其特征在于,所述第一处理模块包括: 第一确定单元,用于确定对所述待编码数据进行格式化处理的数据分块大小; 第一处理单元,用于在执行编码处理的情况下,根据确定的所述数据分块大小对所述 待编码数据进行补割处理;在执行解码处理的情况下,将待解码数据存入确定的所述数据 分块大小的数据块的相应位置进行解码处理。 9.根据权利要求7所述的装置,其特征在于,所述第二处理模块包括: 第二处理单元,用于在执行编码处理的情况下,按照所述多维逐级去维度的方式,对 多维格式化处理之后的待
8、编解码数据的每一维度中的至少二维进行所述RS纠删码编码处 理; 第三处理单元,用于在执行解码处理的情况下,按照所述多维逐级加维度的方式,对 多维格式化处理之后的待编解码数据的每一维度中的至少二维进行所述RS纠删码解码处 理。 10.根据权利要求7至9中任一项所述的装置,其特征在于,所述第二处理模块包括以 下至少之一:按照预定的顺序,通过以下方式至少之一对多维格式化处理之后的待编解码 数据的每一维度中的至少二维进行所述RS纠删码编解码处理: 第四处理单元,用于在所述多维为三维的情况下,通过位于存储服务器的同一个文件 访问客户端FAC对多维格式化处理之后的待编解码数据的每一维度进行所述RS纠删码编
9、 解码处理; 第五处理单元,用于在所述多维为三维的情况下,通过所述FAC完成第一维度所对应 的第一级编解码后,存储域中的计算节点对第一级编解码后的数据完成第二维度所对应第 二级和第三维度所对应第三级的编解码; 第六处理单元,用于在所述多维为三维的情况下,通过所述FAC完成第一维度所对应 的第一级编解码后,存储域中的计算节点对第一级编解码后的数据完成第二维度所对应第 二级编解码,以及存储节点对第二级编解码后的数据完成第三维度所对应的第三级编解 码。 权 利 要 求 书CN 102843212 A 1/10页 4 编解码处理方法及装置 技术领域 0001 本发明涉及通信领域,具体而言,涉及一种编解
10、码处理方法及装置。 背景技术 0002 云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各 种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访 问功能的一个系统。在云计算环境中,文件一般被分片保存在多个云存储服务器中。在数 据通讯时,需要通讯的数据也会被分为多个分片,逐片传送给对方。 0003 在数据存储时和通讯时,为了解决可靠性的问题,一般采用里德-所罗门 (Reed-Solomon,简称为RS)纠删码(Erasure Codes,简称为EC)技术,将文件编码后,分为 大小相同的m个分片和n个校验分片,分别进行存储或通讯。对于文件存储或者通讯接
11、收 方,只要获得其中任意m个分片,即可通过解码恢复原文件或者数据,因此可以抗n个分片 损坏或者丢失,大大提高了系统的可靠性。对于计算机文件存储,纠删码系统的存储空间利 用率为m/(m+n),远远高于副本存储方式,因此RS纠删码通过计算能力换取存储能力,显著 降低了存储成本和运维成本。 0004 1960年,里德(I.S.Reed)和所罗门(G.Solomon)提出一种构造纠删码的方法,使 用该方法的纠删码被称作Reed-Solomon码,简称RS码。基于RS编码技术构造的纠删码则 称作RS纠删码。一个(n,k)纠删码是把k个源数据编码为n(nk)个数据,使得用这n个 数据中任意k个数据均可重构
12、原来的k个源数据。采用m个分片和n个校验分片的纠删码 体制就是(m+n,m)纠删码。 0005 里德-所罗门码主要包含基于范德蒙矩阵生成的编码,叫范德蒙码(Vandermond Code),和基于柯西矩阵生成的编码,叫柯西码(Cauchy Code)。它们的运算基于有限域 伽罗华(Galois)域进行。它们在实现时可以任意设置m和n值,从而获得较高的存储利用 率。 0006 但无论范德蒙矩阵和柯西矩阵的RS纠删码体制,都有一个共同的缺点,就是计算 量较大,编码、解码速度较慢。根据已有的公开数学知识,上述两种RS纠删码在编解码时, 计算量和时间复杂度均为O(m2),并且求解生成矩阵的逆矩阵时,采
13、用高斯-若当消元法 为最佳算法,计算量和时间复杂度为O(m3),如果解码时使用了k个冗余块,则解码算法运 算量为O(mk)。对于长度为L的文件,解码算法运算量为O(Lk)。解码速度和使用的冗余块 k成正比,因此,在实际使用中,使用的冗余块值不能太大。目前商用系统中分片数量m一般 不超过10,校验片n一般不超过6。为了在计算机通讯领域更好地运用RS纠删码体制,一 般采用专用硬件实现编解码功能,提高编解码速度。 0007 另一方面,在使用民用廉价硬盘的云存储系统,和P2P动态存储-通讯环境中,希 望能在不影响编码率和解码性能的情况下,抗更多的数据损坏,即要求校验分片n足够大, 且使用的RS纠删码编
14、解码算法性能不下降。在这种模式下,单纯靠提高n值是行不通的, 会造成计算量的快速增长,导致性能下降到不实用的地步。 说 明 书CN 102843212 A 2/10页 5 0008 因此,在相关技术中存在当允许抗更多的数据损坏时,需要增加计算量,以及影响 编解码速率以及性能的问题。 发明内容 0009 本发明提供了一种编解码处理方法及装置,以至少解决现有技术相关技术中存在 当允许抗更多的数据损坏时,需要增加计算量,以及影响编解码速率以及性能的问题。 0010 根据本发明的一个方面,提供了一种编解码处理方法,包括:对待编解码数据进行 多维格式化处理,其中,所述多维至少为二维;按照预定的顺序,对多
15、维格式化处理之后的 待编解码数据的每一维度中的至少二维进行里德-所罗门RS纠删码编解码处理。 0011 优选地,对待编解码数据进行多维格式化处理包括:确定对所述待编码数据进行 格式化处理的数据分块大小;在执行编码处理的情况下,根据确定的所述数据分块大小对 所述待编码数据进行补割处理;在执行解码处理的情况下,将待解码数据存入确定的所述 数据分块大小的数据块的相应位置进行解码处理。 0012 优选地,按照预定的顺序,对多维格式化处理之后的待编解码数据的每一维度中 的至少二维进行所述RS纠删码编解码处理包括:在执行编码处理的情况下,按照所述多维 逐级去维度的方式,对多维格式化处理之后的待编解码数据的
16、每一维度进行所述RS纠删 码编码处理;在执行解码处理的情况下,按照所述多维逐级加维度的方式,对多维格式化处 理之后的待编解码数据的每一维度进行所述RS纠删码解码处理。 0013 优选地,在按照预定的顺序,对多维格式化处理之后的待编解码数据的每一维度 中的至少二维进行所述RS纠删码编解码处理之后,还包括:根据存储服务器的物理资源, 对进行所述RS纠删码处理之后获得的数据进行存储;或者,发送进行所述RS纠删码处理之 后获得的数据。 0014 优选地,根据存储服务器的物理资源,对进行所述RS纠删码处理之后获得的数据 进行存储包括:将进行所述RS纠删码处理之后获得的所述数据中的部分校验数据存储在 单独
17、的存储节点上。 0015 优选地,在所述多维为三维的情况下,按照预定的顺序,通过以下方式至少之一对 多维格式化处理之后的待编解码数据的每一维度中的至少二维进行所述RS纠删码编解码 处理:位于存储服务器的同一个文件访问客户端FAC对多维格式化处理之后的待编解码数 据的每一维度进行所述RS纠删码编解码处理;所述FAC完成第一维度所对应的第一级编解 码后,存储域中的计算节点对第一级编解码后的数据完成第二维度所对应第二级和第三维 度所对应第三级的编解码;所述FAC完成第一维度所对应的第一级编解码后,存储域中的 计算节点对第一级编解码后的数据完成第二维度所对应第二级编解码,以及存储节点对第 二级编解码后
18、的数据完成第三维度所对应的第三级编解码。 0016 根据本发明的另一方面,提供了一种编解码处理装置,包括:第一处理模块,用于 对待编解码数据进行多维格式化处理,其中,所述多维至少为二维;第二处理模块,用于按 照预定的顺序,对多维格式化处理之后的待编解码数据的每一维度中的至少二维进行里 德-所罗门RS纠删码编解码处理。 0017 优选地,所述第一处理模块包括:第一确定单元,用于确定对所述待编码数据进行 格式化处理的数据分块大小;第一处理单元,用于在执行编码处理的情况下,根据确定的所 说 明 书CN 102843212 A 3/10页 6 述数据分块大小对所述待编码数据进行补割处理;在执行解码处理
19、的情况下,将待解码数 据存入确定的所述数据分块大小的数据块的相应位置进行解码处理。 0018 优选地,所述第二处理模块包括:第二处理单元,用于在执行编码处理的情况下, 按照所述多维逐级去维度的方式,对多维格式化处理之后的待编解码数据的每一维度中的 至少二维进行所述RS纠删码编码处理;第三处理单元,用于在执行解码处理的情况下,按 照所述多维逐级加维度的方式,对多维格式化处理之后的待编解码数据的每一维度进行所 述RS纠删码解码处理; 0019 优选地,所述第二处理模块包括以下至少之一:按照预定的顺序,通过以下方式至 少之一对多维格式化处理之后的待编解码数据的每一维度中的至少二维进行所述RS纠删 码
20、编解码处理:第四处理单元,用于在所述多维为三维的情况下,通过位于存储服务器的同 一个文件访问客户端FAC对多维格式化处理之后的待编解码数据的每一维度进行所述RS 纠删码编解码处理;第五处理单元,用于在所述多维为三维的情况下,通过所述FAC完成第 一维度所对应的第一级编解码后,存储域中的计算节点对第一级编解码后的数据完成第二 维度所对应第二级和第三维度所对应第三级的编解码;第六处理单元,用于在所述多维为 三维的情况下,通过所述FAC完成第一维度所对应的第一级编解码后,存储域中的计算节 点对第一级编解码后的数据完成第二维度所对应第二级编解码,以及存储节点对第二级编 解码后的数据完成第三维度所对应的
21、第三级编解码。 0020 通过本发明,采用对待编解码数据进行多维格式化处理,其中,所述多维至少为二 维;按照预定的顺序,对多维格式化处理之后的待编解码数据的每一维度中的至少二维进 行里德-所罗门RS纠删码编解码处理,解决了现有技术相关技术中存在当允许抗更多的数 据损坏时,需要增加计算量,以及影响编解码速率以及性能的的问题,进而达到了在不降低 原有编码率和存储空间利用率的前提下,大幅度地增加系统的容错能力,同时提高编码速 度和解码速度的效果。 附图说明 0021 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当
22、限定。在附图中: 0022 图1是根据本发明实施例的编解码处理方法的流程图; 0023 图2是根据本发明实施例的编解码处理装置的结构框图; 0024 图3是根据本发明实施例的解码处理装置中第一处理模块22的优选结构框图; 0025 图4是根据本发明实施例的解码处理装置中第二处理模块24的优选结构框图 一; 0026 图5是根据本发明实施例的解码处理装置中第二处理模块24的优选结构框图 二; 0027 图6是根据本发明实施例的基于RS纠删码的多级编解码系统的结构示意图。 具体实施方式 0028 下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的 情况下,本申请中的实施例及实施
23、例中的特征可以相互组合。 说 明 书CN 102843212 A 4/10页 7 0029 在本实施例中提供了一种编解码处理方法,图1是根据本发明实施例的编解码处 理方法的流程图,如图1所示,该流程包括如下步骤: 0030 步骤S102,对待编解码数据进行多维格式化处理,其中,该多维至少为二维; 0031 步骤S104,按照预定的顺序,对多维格式化处理之后的待编解码数据的每一维度 中的至少二维进行里德-所罗门RS纠删码编解码处理。 0032 通过上述步骤,对待编解码的数据进行分级处理,相对于相关技术中直接对待编 解码的数据进行处理,可以很容易地利用存储系统或分布式通讯系统的计算能力和存储能 力
24、,分级的处理使得各级之间相互独立,不仅解决了现有技术相关技术中存在当允许抗更 多的数据损坏时,需要增加计算量,以及影响编解码速率以及性能的的问题,进而达到了在 不降低原有编码率和存储空间利用率的前提下,大幅度地增加系统的容错能力,同时提高 编码速度和解码速度的效果。 0033 在对待编解码数据进行多维格式化处理时,首先,可以根据物理资源,确定对待编 码数据进行格式化处理的数据分块大小,即在后续编解码处理时,以该数据分块大小为单 位进行处理;而在进行编码以及解码处理时,所执行的操作是不同的,例如,在执行编码处 理的情况下,根据确定的该数据分块大小对待编码数据进行补割处理,举例来说,如果将待 编码
25、的数据进行格式化之后,所划分的数据分块大小为a*b*c,当待编码的数据不足该大小 时,则通过补零的操作来补全,而当待编码的数据大于该大小时,则通过将待编码的数据切 割为该大小来进行编码操作;在执行解码处理的情况下,将待解码数据存入确定的所述数 据分块大小的数据块的相应位置进行解码处理,同样以上述例子来进行说明:对于存储的 待解码的数据,从存在位置上读取数据分块大小为a*b*c,不能选择大于该大小的数据,而 在待解码的数据大于上述大小时,可以优先选择数据部分的待解码数据;另外,对于接收到 的待解码数据,可以将它们按编号放入数据分块大小为a*b*c的逻辑的数据块的相应位置 中进行解码处理。 003
26、4 需要说明的是,按照预定的顺序,对多维格式化处理之后的待编解码数据的每一 维度中的至少二维进行RS纠删码依据编解码的处理不同,执行不同的顺序,例如,在执行 编码处理的情况下,按照多维逐级去维度的方式,对多维格式化处理之后的待编解码数据 的每一维度进行RS纠删码编码处理;而在执行解码处理的情况下,按照多维逐级加维度的 方式,对多维格式化处理之后的待编解码数据的每一维度进行RS纠删码解码处理。 0035 优选地,在按照预定的顺序,对多维格式化处理之后的待编解码数据的每一维度 中的至少二维进行RS纠删码编解码处理之后,还包括:根据存储服务器的物理资源,对进 行述RS纠删码处理之后获得的数据进行存储
27、;或者,发送进行RS纠删码处理之后获得的数 据。另外,还可以将进行RS纠删码处理之后获得的数据中的部分校验数据存储在单独的存 储节点上。 0036 对于对编解码所执行的主体,可以有多种方式,下面以上述所指的多维为三维的 例子来进行说明,在将待编解码的数据进行规格化为三维的情况下,可以按照预定的顺序, 通过以下方式至少之一对多维格式化处理之后的待编解码数据的每一维度进行所述RS纠 删码编解码处理:(1)位于存储服务器的同一个文件访问客户端FAC对多维格式化处理之 后的待编解码数据的每一维度进行所述RS纠删码编解码处理;(2)该FAC完成第一维度所 对应的第一级编解码后,存储域中的计算节点对第一级
28、编解码后的数据完成第二维度所对 说 明 书CN 102843212 A 5/10页 8 应第二级和第三维度所对应第三级的编解码;(3)FAC完成第一维度所对应的第一级编解 码后,存储域中的计算节点对第一级编解码后的数据完成第二维度所对应第二级编解码, 以及存储节点对第二级编解码后的数据完成第三维度所对应的第三级编解码。上述各种处 理方式可以根据具体的需要进行灵活选择。 0037 在本实施例中还提供了一种编解码处理装置,该装置用于实现上述实施例及优选 实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能 的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来
29、实现,但是硬件, 或者软件和硬件的组合的实现也是可能并被构想的。 0038 图2是根据本发明实施例的编解码处理装置的结构框图,如图2所示,该装置包括 第一处理模块22和第二处理模块24,下面对该装置进行说明。 0039 第一处理模块22,用于对待编解码数据进行多维格式化处理,其中,该多维至少为 二维;第二处理模块24,连接至上述第一处理模块22,用于按照预定的顺序,对多维格式化 处理之后的待编解码数据的每一维度中的至少二维进行里德-所罗门RS纠删码编解码处 理。 0040 图3是根据本发明实施例的解码处理装置中第一处理模块22的优选结构框图,如 图3所示,该第一处理模块22包括第一确定单元32
30、和第一处理单元34,下面对该第一处理 模块22进行说明。 0041 第一确定单元32,用于确定对待编码数据进行格式化处理的数据分块大小;第一 处理单元34,连接至上述第一确定单元32,用于在执行编码处理的情况下,根据确定的数 据分块大小对待编码数据进行补割处理;在执行解码处理的情况下,将待解码数据存入确 定的数据分块大小的数据块的相应位置进行解码处理。 0042 图4是根据本发明实施例的解码处理装置中第二处理模块24的优选结构框图一, 如图4所示,该第二处理模块24包括第二处理单元42和第三处理单元44,下面对该第二处 理模块24进行说明。 0043 第二处理单元42,用于在执行编码处理的情况
31、下,按照多维逐级去维度的方式,对 多维格式化处理之后的待编解码数据的每一维度中的至少二维进行RS纠删码编码处理; 第三处理单元44,连接至上述第二处理单元42,用于在执行解码处理的情况下,按照多维 逐级加维度的方式,对多维格式化处理之后的待编解码数据的每一维度进行RS纠删码解 码处理; 0044 图5是根据本发明实施例的解码处理装置中第二处理模块24的优选结构框图二, 如图5所示,该第二处理模块24包括以下至少之一:第四处理单元52、第五处理单元54、第 六处理单元56,下面对该第二处理模块24进行说明。 0045 第四处理单元,用于在多维为三维的情况下,通过位于存储服务器的同一个文件 访问客
32、户端FAC对多维格式化处理之后的待编解码数据的每一维度中的至少二维进行所 述RS纠删码编解码处理;第五处理单元,用于在多维为三维的情况下,通过所述FAC完成第 一维度所对应的第一级编解码后,存储域中的计算节点对第一级编解码后的数据完成第二 维度所对应第二级和第三维度所对应第三级的编解码;第六处理单元,用于在多维为三维 的情况下,通过所述FAC完成第一维度所对应的第一级编解码后,存储域中的计算节点对 第一级编解码后的数据完成第二维度所对应第二级编解码,以及存储节点对第二级编解码 说 明 书CN 102843212 A 6/10页 9 后的数据完成第三维度所对应的第三级编解码。 0046 在本实施
33、例中提供了一种在文件存储或数据通讯时,基于RS纠删码的多级编解 码方法,采用该方法实现对数据或文件的多级编解码。在该基于RS纠删码的多级编解码方 法中,对待编码数据进行多维格式化,例如,二维或者三维格式化,随后按要求,顺序对每一 维度进行RS纠删码编码操作,组成多维度数据分组和相应的校验分块,较优地,可以按照 云存储的物理资源情况进行存储,因而可以将部分校验数据存储在单独的存储节点上。在 本实施例中以三级编解码为例进行说明。 0047 步骤要S1,编码:在本实施例中的三级编码包括如下步骤: 0048 (1)将待编码数据进行三维格式化 0049 可以根据云存储的物理资源情况,确定三级编码参数的分
34、片数量mi,和校验分片 数量ni,i=1,2,3。其中,m1+n1为单个存储服务器中磁盘总数,m2+n2为单机柜中存储服务 器数量,m3+n3为同一存储域内的机柜数量。 0050 将待编码数据进行三维格式化,即按照m1*m2*m3的方式,组成逻辑上看起来是长 方体的数据块。如果数据不足m1*m2*m3,最后部分通过补零补齐;如果文件较大,则按照 m1*m2*m3的分块进行切割,切成逻辑上的多个长方体,其中,长为m1,宽为m2,高为m3。 0051 (2)平面编码 0052 对数据分块按照平面维度,对每一层的m1*m2数据进行RS(m3+n3,n3)编码。编码 后,数据分块的高度从m3变为m3+
35、n3,即产生了额外的n3层校验数据。 0053 (3)列编码 0054 将m3+n3层的数据的每一层数据,按列方向,对m3行中的每一列数据进行 RS(m2+n2,n2)编码。编码后,数据分块每层的行数从m2变为m2+n2,即产生了额外的n2行 校验数据。 0055 (4)行编码 0056 将m3+n3层数据分块的每一层数据,每层有m2+n2行,按行方向,对每一行进 行RS(m1+n1,n1)编码。编码后,数据每行变为m1+n1个数据,最终数据块大小变为 (m1+n1)*(m2+n2)*(m3+n3)。 0057 对于以上所述的三级编码,既可以由云存储的同一个文件访问客户端(File Acces
36、s Client,简称为FAC)进行,也可以由FAC执行第一级的编码,然后将编码后的数据 发送给存储域中各个机柜中的计算节点,由计算节点进行第二级和第三级的处理。计算节 点可以单独完成第二级和第三级的编码,也可只完成第二级的编码,然后将数据按行发送 给存储节点,再由存储节点进行第三级编码,将数据存放在存储节点的各个磁盘中。 0058 (5)数据存储或通讯 0059 对于云存储方式,将编码后数据块m3+n3层,每一层数据发送到同一存储域内的 每个机柜中。对于每个机柜收到的(m1+n1)*(m2+n2)数据,按行存储到机柜中的每个存储 服务器中。对于每个存储服务器,将每行的m1+n1数据存储到m1
37、+n1个磁盘中。 0060 对于数据通讯模式,将编码后的所有数据块按顺序编号,逐个发送给对方。 0061 步骤S2:解码:在本实施例中的三级解码包括如下步骤: 0062 (1)取待解码数据 0063 对于云存储的解码,当文件访问客户端FAC需要解码时,将根据数据或文件的元 说 明 书CN 102843212 A 7/10页 10 数据信息,从m3+n3个机柜,每个机柜m2+m2的存储服务器,每个存储服务器的m1+n1磁盘 上,按编号取数据。对于每个存储服务器上的每行数据,至少取到m1个数据,如果可以选择 多于m1个数据,优先选择前m1个编号的数据(即尽量选择原数据)。对于每个机柜,至少取 m2
38、行的完整数据,共计m2*m1个数据,优先选择前m2个列的数据;对于多个机柜,至少返回 m3个机柜的完整m1*m2个数据,优先选择前m3个机柜的数据。 0064 对于数据通讯模式,对收到的所有数据块,将它们按编号放入逻辑的 (m1+n1)*(m2+n2)*(m3+n3)的长方体中的相应位置进行解码。 0065 (2)行解码 0066 对于收到的每个(m1+n1)*(m2+n2)*(m3+n3)的立方体的数据,首先按行进行RS (m1+n1,m1)解码,恢复每行的数据。如果该行收到的数据少于m1,则该行解码失败。 0067 (3)列解码 0068 对于每个平面中,通过行解码,至少需要恢复出任意m2
39、行的完整数据,才能进行 列解码。对于每个平面,如果有了m2行完整数据,则对这些行的每一列数据,通过进行RS (m2+n2,m2)解码,可以获得该平面内所有的原始数据。如果获得的完整数据少于m2行,则 列解码失败,无法获得该平面内的原始数据。 0069 (4)平面解码 0070 对于m3+n3个平面的数据,通过列解码,至少需要恢复出m3个平面的数据,才能进 行平面解码。如果有了m3个平面的数据,则通过(m3+n3,m3)解码,即可获得所有初始的m3 个平面的数据,即获得所有初始数据。 0071 对于以上所述的三级编码体制例子,在云存储中,其三级解码过程,既可以由全部 云存储的同一个文件访问客户端
40、FAC进行,也可以由存储机柜计算节点进行第二三级解码 (即行解码和列解码),再由FAC进行第一级解码(平面解码),也可以分别由存储机柜存储节 点进行第三级解码(行解码),计算节点进行二级解码(列解码),FAC进行第一级解码(平面 解码)。在实际运用中,具体使用几级编解码流程,取决于实际运行环境。例如,如果只需要 两级编解码,则在FAC编码时只需要简单的将数据分为m3层平面即可,第二级编码由行编 码完成,不需要再做列编码。 0072 对于本发明实施例所采用的基于RS纠删码的多级编解码系统,其编码率和存储 空间利用率P3=m1*m2*m3/(m1+n1)(m2+n2)(m3+n3)。可容纳n3个机
41、柜损坏,每个机柜容纳 n2个存储节点损坏,每个节点容纳n1块盘损坏。对于可以容纳损坏的任意磁盘总数S3min 而言,S3min=(n1+1)(n2+1)(n3+1)-1,即至少容纳任意S3min块盘损坏。至多容纳损坏盘 S3max,S3max=(m1+n1)(m2+n2)(m3+n3)-m1m2m3。 0073 如果是两级编解码系统,其编码率和存储空间利用率P2=m1*m2/(m1+n1) (m2+n2),至少抗S2min块盘损坏,至多抗S2max块盘损坏,其中,S2min=(n1+1)(n2+1)-1, S2max=(m1+n1)(m2+n2)-m1m2。对于k级编解码系统,Pk=m1*.m
42、k/(m1+n1)*.(mk+nk), Skmin=(n1+1).(nk+1)-1,Skmax=(m1+n1).(mk+nk)-m1mk。 0074 对于一个典型的云存储系统,一个机柜有16个2U存储服务器,每个存储服务器 12个SATA硬盘,或者8个4U存储服务器,每个存储服务器24个SATA硬盘,每个机柜另有 4个计算节点。一个存储域可以包括8-16个机柜。如果采用三级编解码系统,m3=7,n3=1, m2=7,n2=1,m1=21,n1=3,可以计算出编码率P3=7*7*21/8*8*24=66.99%,可以容纳至少任意 说 明 书CN 102843212 A 10 8/10页 11 2
43、*2*4-1=15块磁盘损坏,至多容纳8*8*24-7*7*21=507盘损坏。如果采用两级编码系统,将 8个机柜8个存储服务器,共计64个存储服务器组成第二级,m1=21,n1=3,m2=61,n2=3,则 编码率P2=61*21/64*24=83.40%,至少可抗4*4-1=15块磁盘损坏,至多抗64*24-61*21=255 块磁盘损坏。 0075 对于上述举例中的三级存储系统,如果都采用RS纠删码,则根据已有的知识, 如果三级解码中分别使用了k1,k2,k3块校验数据,则文件解码计算量为O(k1),O(k2), O(k3)。对于上述例子中,在抗至少15块盘损的情况下,解码总计算量为O(
44、1)+O(1)+O(3), 和单级RS编解码情形下解码计算量O(5)相当。在采用二级RS编解码的上述例子情况下, 在抗至少15块盘损的情况下,解码总计算量为O(3)+O(3),和单级RS编解码情形下解码计 算量O(6)相当。因此,采用多级存储系统,可以大大提高解码速度。反过来,单级RS纠删码 编解码系统中,如果要支持任意15块盘损,同时满足83.40%的编码率,需要进行RS(90,15) 的编解码,解码时求解逆矩阵性能和解码性能是非常低的。 0076 对于本发明实施例所提供的基于RS纠删码的多级编解码方法,由于多级编解码 体制可以和云存储的存储硬件相结合,因此,可以构成分布式集群编解码,充分利
45、用存储机 柜中计算节点、存储节点的计算能力。在编码时,使用FAC只进行第三级RS(m3+n3,m3)编 码,完成后产生m3+n3层数据后,即向应用返回编码成功,随后存储机柜中计算节点和存储 节点再进行第二层和第一层编码。这样在应用看来,只需要进行RS(m3+n3,m3)编码即可 返回编码成功,只需要额外编码n3/(m3+n3)的内容。在解码时,由存储机柜中计算节点和 存储节点完成第二级和第一级的解码操作,产生完整的数据平面后,再传送给FAC做第三 级的解码。存储节点只对整个文件的m3*m2分之一数据进行解码,计算节点只对整个文件 m3分之一数据进行解码,因此第二级和第一级的解码操作时间,远远小
46、于FAC进行的第一 级解码。这样在分布式多级编解码系统中,在应用看来,编码时间为RS(m3+n3,m3)编码时 间,解码时间为稍大于RS(m3+n3,m3),即稍大于O(n3)。 0077 对于两级编解码系统,由存储机柜计算节点完成第一级编解码,FAC完成第二级编 解码。在应用看来,编码时间为RS(m2+n2,m2)编码时间,解码时间为稍大于RS(m2+n2,m2), 即稍大于O(n2)。对于数据通讯模式下的编解码,本发明实施例所提供的多级编解码体制思 想也可采用,即第三级的FAC把编解码任务分解,将其中的第二级和第一级编解码任务发 送给分布式系统中的其他计算机进行,从而组成更高效的分布式多级
47、编解码系统,同时可 抗更多的数据损坏或丢失。 0078 在实际使用过程中,每个平面的编码后数据,都可以存放在单独的存储机柜中。 m3+n3层数据,存储在m3+n3个存储机柜中。其中n3层平面的冗余数据,都存储在单独的n3 个存储机柜中。对于同一个存储机柜,m2+n2行数据,分别存储在m2+n2的存储服务器中, 其中n2行的校验数据,都保存在单独的n2个存储服务器中。在系统处于只读不写的模式 下,且系统磁盘出错数量较少时,校验数据存储机柜、机架上校验存储服务器可以关闭或者 降速运行,以便节约系统运营费用。 0079 对于本发明实施例所提供的基于RS纠删码的多级编解码系统,其每个级别的RS 编解码
48、算法是独立的,因此,可以采用以下变种来进一步提高性能:例如:(1)减少FAC编解 码那一级的校验数n,对于二级编解码系统,减少n2值;对于三级编解码系统,减少n3值。 这样应用感觉到的编解码时间都能相应缩小。又例如,FAC编解码那一级采用更高效的编 说 明 书CN 102843212 A 11 9/10页 12 解码算法,由于应用感知的编解码时间主要取决于FAC那一级,因此,在FAC中采用的RS算 法可以采用更高效的算法。例如,FAC那一级,根据两级编解码还是三级编解码体制,将对 应的校验分片数量n3或者n2设为1,这样可以采用XOR类型的异或算法取代原有的RS纠 删码算法。由于XOR算法实现
49、简单高效,可以进一步提高应用感知的编解码效率。 0080 上述实施例及优选实施方式所提供的基于RS纠删码的多级编解码系统,可以通 过软件实现,通过互相独立的多级RS纠删码体制对数据进行多级编解码,将数据或文件按 组为单位进行编码和解码。组与组之间数据也相互冗余备份。使用本发明实施例并不要 求待编组数量和组内数据数量相等,可以任意组合,较优地,编组数量和组内数据数量,可 以和云存储物理设备分域情况进行对应,方便云存储系统进行管理和实现。采用本发明实 施例的多级编解码系统,可以很容易的利用云存储系统或者分布式通讯系统的计算能力和 存储能力,组成一个分布式编解码系统,有效提高编解码性能。另外,本发明实施例所提供 的多级编解码系统,对纠删码的种类没有限制,各级编解码系统均独立实现,互不影响。因 此,可以针对用户性能要求,采用XOR类型的优化编解码算法,进一步提高编解码性能。和 原有单级RS编解码系统相比,使用本发明,在不降低原有编码率和存储空间利用率的前提 下,可大幅
copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1