一种提高单写性能的三盘容错编码和解码方法技术

技术编号:12091458 阅读:116 留言:0更新日期:2015-09-23 09:47
本发明专利技术提供了一种提高单写性能的三盘容错编码和解码方法,本发明专利技术编码方法使用原始数据和校验公式生成三种冗余校验元素,分别为行校验、斜校验和反向斜校验元素,使得编码后的磁盘上存在着四种类型的元素:数据元素,行校验元素,斜校验元素,反向斜校验元素,本发明专利技术的解码方法是指当磁盘阵列中出现任意三块磁盘同时失效时,可以通过恢复算法和冗余校验元素,将失效磁盘上的数据进行解码恢复,解码方法基于前者的编码结构来实施,本发明专利技术能够在保证数据可靠性的基础上,克服现有编码在单写性能上的不足,是一种新型MDS三盘容错编码和解码方法,可以恢复存储系统中任意三块失效磁盘上的数据,在保证数据可靠性的同时,显著提升存储系统的单写性能。

【技术实现步骤摘要】

本专利技术属于大数据与云存储领域,涉及一种提高单写性能的三盘容错编码和解码 方法。
技术介绍
在大型分布式存储系统中,海量数据被存储在大量冗余磁盘中,使得用户能够并 行地获取数据。这些冗余磁盘被称为是独立(廉价)磁盘冗余阵列(RAID)。近来,三盘容 错阵列成为大型数据中心的首选,主要有以下两个原因。一方面,磁盘失效比预期的更加频 繁。有数据表明,磁盘年失效率(AFR)大于3%,而用户能接受的AFR只有0.8%。另一方 面,随着云存储的发展,一个能够容许任意三块磁盘同时失效的阵列是必需的,因为它可以 为存储系统提供高可靠性和低成本。 在最近二十年中,不断有新的三盘容错编码被提出,并用于磁盘阵列。这些编码可 以被分成两类:MDS编码,和Non-MDS编码。MDS编码可以在给定冗余数量的基础上提供最 大的数据保护,因此使用MDS编码的阵列有着最优的存储效率。Non-MDS编码由于牺牲了存 储效率,而得到了更高的性能或可靠性。 单写性能是存储系统中一个重要的方面。近年来,由于以下原因,单写性能得到了 许多关注: 1、单写请求在写密集型负载中频繁出现。大多数写请求小于8KB,因此可以被看作 是单与请求。 2、单写性能影响了磁盘阵列的整体性能。在多数情况下,条带写性能是由单写性 能决定的。高效的单写操作可以减少总体I/O数量以及异或操作数量,使得I/O吞吐量得 以提高,并降低应用的I/O延迟。 然而,由于以下原因,现有基于MDS编码的磁盘阵列的单写性能不足。 1、一些如RS编码的MDS编码,生成校验值时需要伽罗瓦域上的复杂数学计算,这 使得计算开销比异或计算的开销更高,从而减慢存储系统中单写请求的进程速度,导致单 写性能很低。 2、一些如STAR编码,Triple-star编码和Cauchy-RS编码的MDS编码,由于某一 校验需要参与其它校验的计算,导致单写的I/O开销增大,编码性能降低。 因此,现有MDS编码方法存在着计算开销高和编码性能低等问题,导致了单写性 能低,并影响存储系统的性能。
技术实现思路
本专利技术的目的在于提供,能够在磁 盘阵列中出现任意三块磁盘同时失效时,可以通过恢复算法和冗余校验块,将失效磁盘上 的数据进行解码恢复。 为解决上述问题,本专利技术提供一种提高单写性能的三盘容错编码方法,包括: 根据行校验,斜校验和反向斜校验公式将原始数据填入P-1行p+2列的编码矩阵 的数据元素的对应位置中,其中,编码矩阵中的元素包括数据元素,行校验元素,斜校验元 素,反向斜校验元素,P为质数; 根据行校验,斜校验和反向斜校验公式,在编码矩阵的第P列和第P+1列分别填入 行校验元素和斜校验元素,除去编码矩阵中第0列、第P列和第P+1列,剩下的矩阵是一个 P-1行P-1列的方阵,在所述方阵的反斜向部分填入反向斜校验元素。 进一步的,在上述方法中,所述行校验公式为其中,Ci;p表 示编码矩阵中的第i行第P列的行校验元素,Cu表示编码矩阵中的第i行第j列的元素。 进一步的,在上述方法中,所述斜校验公式为ci;i+1表示编码矩阵中的第i行第i+1列的斜校验元素,表示编码矩阵中的第 〈p-2_i+j>p行第j列的兀素,〈口-2_1+_]_>1)表不以〈p-2_i+j>的值对p取模。 _7] 法中,戶;纖验公微<Ci;p+1表示编码矩阵中的第i行第P+1列的反向斜校验元素,Gp+iV表示编码矩阵中的第 <p+i-j>p行第j列的元素,<p+i-j>p表示以p+i-j的值对p取模。 根据本专利技术的另一面,本专利技术还提供一种提高单写性能的三盘容错解码方法,用 于对上述编码方法进行解码,包括: 若磁盘阵列中的失效列分别为fi,&和f3(〇彡f\<f2<f3彡P+1),其中一列是 第P+1列,即f3=P+1, 0彡ff2彡P,使用H-Code的恢复算法来恢复f界f2两列; 使用斜校验公式恢复f3列。 根据本专利技术的另一面,本专利技术还提供一种提高单写性能的三盘容错解码方法,用 于对上述编码方法进行解码,包括: 若磁盘阵列中的失效列分别为f\,&和f3,其中一列是行校验列p,另外两列位于 前P列中,则假设编码矩阵的下方有一行虚拟行,其中,虚拟行中的第一个元素被设为〇,第 2个到第P-1个元素被设为和同一列上反向斜校验元素相同的值后,所述同一列上反向斜 校验元素被设为〇 ;恢复心和f2两列; 使用行校验公式恢复第心列。 进一步的,在上述方法中,恢复&和匕两列包括: 从元素开始重建过程,循环步骤一与步骤二,直至终点为,其中, 步骤一为:如果第列上的元素Cq被恢复,同一条斜校验链上的^V/|+/:U随后 被恢复; 步骤二为:如果第f2列上的元素C,/:被恢复,同一条斜校验链上的C〈,随后 被恢复。 根据本专利技术的另一面,本专利技术还提供一种提高单写性能的三盘容错解码方法,用 于对上述编码方法进行解码,包括: 若磁盘阵列中的失效列分别为f\,fdPf3,f\,fdPf3不是第P列和第P+1列, 0 <fi<f2<fP-1,将编码矩阵中所有校验链补充完整,并计算校验子,其中,校验子 是特定校验方向上未失效校验元素和其相应数据元素的异或和,其值等于该校验方向上所 有失效元素的异或和; 通过所述校验子得到4-元组,其中,n-元组表示一个元组内有n个数据元素,这 些数据元素可进行异或操作,n为正整数; 根据如下k须满足的条件,将4-元组简化为2-元组,其中,k表示简化成1 个2-元组所需要的4-元组的个数,当<k?Vh2>p= 0时,2-元组元素间距离为d= <k? ,计算相应2-元组异或和的公式为当 <k? 1^-11;^= 0时,2-元组元素间距离为d=<k?hi+hPp,计算相应2-元组异或和的 公式为当〈hW,0时,2-元组元素间距离为d =<k? 1^-lVp,计算相应2-元组异或和的公式为,当 <k? 0时,2-元组元素间距离为d=<k?hdhA,计算相应2-元组异或和的公式根据STAR编码中的引理3,通过起始点,恢复第&列; 根据H-Code的恢复算法,恢复第&和f3列。 进一步的,在上述方法中,将编码矩阵中所有校验链补充完整,并计算校验子包 括: 假设编码矩阵的下方有一行虚拟行,添加了虚拟行的编码矩阵是一个p行p列的 矩阵,通过公式来计算虚拟行中最后两个校验元素,其中,校验子表示未 失效元素的异或和(包括校验元素),当前第1页1 2 3 4 本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN104932836.html" title="一种提高单写性能的三盘容错编码和解码方法原文来自X技术">提高单写性能的三盘容错编码和解码方法</a>

【技术保护点】
一种提高单写性能的三盘容错编码方法,其特征在于,包括:根据行校验,斜校验和反向斜校验公式将原始数据填入p‑1行p+2列的编码矩阵的数据元素的对应位置中,其中,编码矩阵中的元素包括数据元素,行校验元素,斜校验元素,反向斜校验元素,p为质数;根据行校验,斜校验和反向斜校验公式,在编码矩阵的第p列和第p+1列分别填入行校验元素和斜校验元素,除去编码矩阵中第0列、第p列和第p+1列,剩下的矩阵是一个p‑1行p‑1列的方阵,在所述方阵的反斜向部分填入反向斜校验元素。

【技术特征摘要】

【专利技术属性】
技术研发人员:过敏意吴晨涛李颉蒋妍冰章雍哲黄洵松
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1