基于rs纠删码的数据存储方法

文档序号:6441660阅读:499来源:国知局
专利名称:基于rs纠删码的数据存储方法
技术领域
本发明涉及的是一种信息处理技术领域的方法,具体是一种基于RS纠删码的数据存储方法。
背景技术
云存储是服务于云计算的一种存储方式,指通过集群应用、网格技术或分布式文 件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作, 共同对外提供数据存储和业务访问功能的一个系统。随着信息时代的到来,海量信息的存储及对可靠性要求越来越高,存储成本和高 可靠性始终是一对难以解决的矛盾。一方面通过增加备份数可以显著提高可靠性,但是存 储量也随之成倍地增加;另一方面如果想节约成本,限制数据的备份数,一旦其中一份数据 块的备份全部损坏时,整个文件或许都不能使用了,导致不可挽回的损失。经过对现有的文献检索发现,目前基本所有的云存储技术都是采用了一种类似 Hadoop (云计算中的一种开源软件)系统中的HDFS (Hadoop Distributed File System,即 Hadoop分布式文件系统)。该技术主要是将一个数据文件按照设定的大小(如64M)分成 大小η块,再通过对每一个数据块的完整备份(例如Hadoop中的HDFS分布式文件系统为 3份相同备份同一机架不同数据节点各一份,另外一机架上的数据节点1份)来带提高可 靠性。但该技术最大的缺点是比较浪费空间一个文件要备份2倍的额外存储空间,从而提 高了成本。

发明内容
本发明的目的在于克服现有技术中存在的上述不足,提供一种基于RS纠删码的 数据存储方法。本发明首先对待存储文件的所有原始数据进行分块和分组,然后对每一组 数据再进行RS纠删码编码存储,在可以灵活设定可靠性的基础上,具有极大地节约存储空 间,以节约成本的优点。本发明是通过以下技术方案实现的,本发明包括以下步骤第一步,对待存储文件进行分块处理,从而得到N个大小相同的原始数据块,并对 这些原始数据块进行分组处理,得到M个数据组。所述的分块处理,是将待存储文件按照固定大小T分为N个原始数据块,当最后 一块原始数据块小于T时,对最后一块原始数据块填充冗余,使其大小正好是Τ。所述的分组处理,是将K个原始数据块作为一组,从而将N个原始数据块分为M 组,其中最后一个原始数据组的原始数据块的个数小于或者等于K。第二步,将每个数据组中的原始数据块逐块的从用户端传送到数据节点,当第i 个数据组传输完毕后,接收到该数据组数据的数据节点将接收到的数据传送给管理节点指 定的一个数据节点,该数据节点得到该组数据块的所有原始数据块信息,id第三步,得到第i组数据块的所有原始数据块信息的数据节点对该数据组进行RS编码,使第i个数据组从Ki个原始数据块变为Ki个原始数据块和Ri个冗余数据块, 1 ^ i ^ M, Ki是编码前第i个数据组中原始数据块的数目。所述的RS编码是依次对每个原始数据块中w比特的数据按照下面的公式进行处 理,得到对应该&个《比特原始数据的Ri个w比特的冗余数据,将第j冗余数据的所有w 比特的冗余数据按顺序进行组合得到第j冗余数据块,Ri,具体公式是FD = C, 其中F是RiXKi的范得蒙德矩阵,D是第i个数据组中&个《比特原始数据组成 的KiX 1的矩阵,C是编码后第i个数据组中Ri个W比特的冗余数据组成的RiX 1的矩阵。第四步,将编码后的同一数据组中的数据块存储的若干个机架上,且同一机架上 中同一数据组的数据块不超过Ri个。第五步,当存储文件中有数据块损坏时,采用RS纠删码恢复数据块,得到恢复后 的数据块。所述的恢复数据块,是1)当损坏的数据块的数目小于或等于Ri时,通过下面的公式分别得到w比特的原 始数据块,进而组合得到损坏的原始数据块或者是通过RS编码得到损坏的冗余数据块;
第i个数据组中Ki个W比特原始数据块组成的KiX 1的矩阵,C是编码后第i个数据组中 Ri个w比特冗余数据块组成的RiX 1的矩阵,A'是从A中去除损坏数据块所对应的行后的 新矩阵,E'是从E中去除损坏数据块所对应的行后的新矩阵;2)当损坏的数据块的数目大于Ri时,损坏的数据块无法恢复。与现有技术相比,本发明的有益效果是节省了大量的存储空间,本来备份3份才 能达到的可靠性,现在只需备份2份或1份即可,从而降低了数据存储的成本;可靠性的要 求可以根据文件重要性进行灵活地设置,通过备份数量和编码参数的设定,可以提供更加 丰富的存储策略;编码后的数据组中包括原来所有的原始数据块,这样可以保证日常使用 的效率。
具体实施例方式以下对本发明的方法进一步描述本实施例在以本发明技术方案为前提下进行实 施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述实施例。实施例本实施例用于对180M的文件进行存储,具体包括以下步骤第一步,对待存储180M文件进行分块处理,按照固定大小30M分为6个大小相等 的原始数据块,并将这6个原始数据块分为两组,每组包括3个原始数据块。第二步,将每个数据组中的原始数据块逐块的从用户端传送到数据节点,当第i 个数据组传输完毕后,接收到该数据组数据的数据节点将接收到的数据传送给管理节点指 定的一个数据节点,该数据节点得到该组数据块的所有原始数据块信息,1 < i ^ 2。第三步,得到第i组数据块的所有原始数据块信息的数据节点对该数据组进行(5,3) RS编码,使第i个数据组从3个原始数据块变为3个原始数据块和2个冗余数据块。本实施例中所述的RS编码是依次对每个原始数据块中4比特的数据按照下面的 公式进行处理,得到对应每3个4比特原始数据的2个4比特的冗余数据,本实施例共得到 1536个4比特的第一冗余数据和1536个4比特的第二冗余数据,将1536个4比特的第一 冗余数据按顺序组合成第一冗余数据块,将1536个4比特的第二冗余数据按顺序组合成第 二冗余数据块,即分别得到两个30M的冗余数据块,具体公式是FD = C,(公式一)其中F是2X3的范得蒙德矩阵,D是第i个数据组中3个4比特原始数据组成的 3X1的矩阵,C是编码后第i个数据组中2个4比特的冗余数据组成的2X1的矩阵。本实施例中i7= 123。第四步,将编码后的同一数据组中的数据块存储的若干个机架上,且同一机架上 中同一数据组的数据块不超过2个。第五步,当存储文件中有数据块损坏时,采用RS纠删码恢复数据块,得到恢复后 的数据块。以第一组数据组为例,所述的恢复数据块,是1)当损坏的数据块的数目小于或等于2时,通过下面的公式得到原始数据块,进 而得到损坏的原始数据块或者是通过RS编码得到损坏的冗余数据块; 其中
是2X2的单位矩阵,F是2X3的范得蒙德矩阵,D是表
示第1个数据组中3个4比特原始数据组成的3X1的矩阵,C是表示编码后第1个数据组 中2个4比特冗余数据组成的2X1的矩阵,A'是从A中去除损坏数据块所对应的行后的 新矩阵,E'是从E中去除损坏数据块所对应的行后的新矩阵。因为矩阵F是一个范得蒙德矩阵,任取矩阵A的2行或者1行都是线性独立的,故 矩阵A' —定是可逆的,D的值可以利用高斯消元法从(公式二)中计算得出,这样所有的 原始数据块都可以利用(公式二)按照每次计算4比特数据来依次恢复出来。2)当损坏的数据块的数目大于2时,损坏的数据块无法恢复。本实例中成功恢复了同一数据组中任意不超过2块损坏的数据块,且大大节约了 存储空间如果只有一份备份,则本实施例中的(5,3) RS编码将节省4/9空间(现有技术备 份三份需要9块),从而在大规模使用中节约了很大的成本;并且可通过设置备份参数和编 码参数,使设置更加灵活,可靠级别更加细化。
权利要求
一种基于RS纠删码的数据存储方法,其特征在于,包括以下步骤第一步,对待存储文件进行分块处理,从而得到N个大小相同的原始数据块,并对这些原始数据块进行分组处理,得到M个数据组;第二步,将每个数据组中的原始数据块逐块的从用户端传送到数据节点,当第i个数据组传输完毕后,接收到该数据组数据的数据节点将接收到的数据传送给管理节点指定的一个数据节点,该数据节点得到该组数据块的所有原始数据块信息,1≤i≤M;第三步,得到第i组数据块的所有原始数据块信息的数据节点对该数据组进行RS编码,使第i个数据组从Ki个原始数据块变为Ki个原始数据块和Ri个冗余数据块,Ki是编码前第i个数据组中原始数据块的数目;第四步,将编码后的同一数据组中的数据块存储的若干个机架上,且同一机架上中同一数据组的数据块不超过Ri个;第五步,当存储文件中有数据块损坏时,采用RS纠删码恢复数据块,得到恢复后的数据块。
2.根据权利要求1所述的基于RS纠删码的数据存储方法,其特征是,第一步中所述的 分块处理,是将待存储文件按照固定大小T分为N个原始数据块,当最后一块原始数据块 小于T时,对最后一块原始数据块填充冗余,使其大小正好是T。
3.根据权利要求1所述的基于RS纠删码的数据存储方法,其特征是,第一步中所述的 分组处理,是将K个原始数据块作为一组,从而将N个原始数据块分为M组,其中最后一个 原始数据组的原始数据块的个数小于或者等于K。
4.根据权利要求1所述的基于RS纠删码的数据存储方法,其特征是,第三步中所述的 RS编码是依次对每个原始数据块中w比特的数据按照下面的公式进行处理,得到对应该Ki 个w比特原始数据的Ri个w比特的冗余数据,将第j冗余数据的所有w比特的冗余数据按 顺序进行组合得到第j冗余数据块,Ri,具体公式是FD = C,其中F是RiXKi的范得蒙德矩阵,D是第i个数据组中Ki个w比特原始数据组成的 KiXl的矩阵,C是编码后第i个数据组中Ri个w比特的冗余数据组成的RiX 1的矩阵。
5.根据权利要求1所述的基于RS纠删码的数据存储方法,其特征是,第五步中所述的 恢复数据块,是指1)当损坏的数据块的数目小于或等于Ri时,通过下面的公式分别得到w比特的原始数 据块,进而组合得到损坏的原始数据块或者是通过RS编码得到损坏的冗余数据块;A' D = E', λ λ其中J= ,E= ,I是KiXKi的单位矩阵,F是RiXKi的范得蒙德矩阵,D是第i V^ J Kf-J个数据组中Ki个w比特原始数据块组成的Ki X 1的矩阵,C是编码后第i个数据组中Ri个 w比特冗余数据块组成的RiX 1的矩阵,A'是从A中去除损坏数据块所对应的行后的新矩 阵,E'是从E中去除损坏数据块所对应的行后的新矩阵;2)当损坏的数据块的数目大于Ri时,损坏的数据块无法恢复。
全文摘要
一种信息处理技术领域的基于RS纠删码的数据存储方法,包括以下步骤对待存储文件进行分块处理和分组处理;将每个数据组的原始数据块传送到数据节点并由数据节点进行RS编码,使每个数据组在原始数据块的基础上增加若干个冗余数据块,将编码后的同一数据组中的数据块存储的若干个机架上,且同一机架上中同一数据组的数据块不超过冗余数据块的数目,当存储文件中有数据块损坏时,采用RS纠删码恢复数据块,得到恢复后的数据块。本发明在保证日常使用效率基础上,节省了大量的存储空间;数据存储可靠性的要求可以根据文件重要性进行灵活地设置,通过备份数量和编码参数的设定,可以提供更加丰富的存储策略,大大降低了数据存储成本。
文档编号G06F12/06GK101840377SQ20101017177
公开日2010年9月22日 申请日期2010年5月13日 优先权日2010年5月13日
发明者曹羽中, 沈林峰, 程正杰, 郑燕飞, 陈克非 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1