一种基于纠删码的多等级容错数据存储、读取和恢复方法

文档序号:6425892阅读:130来源:国知局
专利名称:一种基于纠删码的多等级容错数据存储、读取和恢复方法
技术领域
本发明属于数据存储领域,具体涉及一种广域网下的多等级容错数据存储、读取和恢复方法,该方法能满足不同数据的应用需求,在为用户提供业务连续性和数据的高可用性、高保密性的同时,也潜在地提高了数据的灾备能力。
背景技术
随着数据量以爆炸式的不断增长,信息对人类来说越来越重要。人类每天产生大量的数据如个人文档、电子邮件、企业财务报表、客户数据、市场调研数据、企业业务流程、 企业业务交易数据、项目设计方法等被存储在计算机系统中,这在很大程度上促进了企业的信息进程,提高了工作效率。此时,数据存储安全的重要性也逐渐显现出来。丢失关键性业务数据会极大的影响工作效率,拖延项目进度,给企业带来严重的经济损失。根据IDC调查,在美国,上世纪九十年代中有过数据灾难的公司中,有一半以上的立即倒闭,另有不到30%的在随后两年内倒闭,其余生存下来的仅占总数的16%。对于具有安全可靠特性的数据中心,每年也有五百分之一的概率要经历一次数据灾难。因此,用户对存储在系统中的数据的有效保护的需求越来越高,其中一个重要研究思路是将数据副本存放到远程存储系统中,以提高数据可用性。对于数据的可用性保护,一般采用副本或者纠删码的方式。但是,副本和纠删码各有其优势和劣势。单一副本技术不需要对数据进行编码/译码,省去计算开销,从而具有更高的I/O性能,在原始数据全部被破坏的情况下仍然能通过副本恢复。但是,副本技术的冗余度太高,将导致存储成本的增加,而且在面对大量数据请求的时候,单一的数据组织方式 (副本或者纠删码)并不能满足所有数据的需求。纠删码具有较低的冗余度和高效的数据存取效率,在分布式存储系统中,同等容错性能条件下纠删码方法更能节约存储空间和存储带宽,但编译码需要额外的开销,从而影响用户防问时间和数据恢复时间。纠删码一般包含三类(1)最大距离可分码(Maximum Distance S印arable,MDS),广泛应用于RAID中,但其最小列距离限制了在广域网中的应用;(2)里德·所罗门码(Reed-Solomon code, RS), 码元符号域与根域相等,冗余量与纠错能力达到了俱佳,其译码时间复杂度一般为0(n2), 导致译码开销过大;(3)低密度奇偶校验码(Low Density Parity Check Code,LDPC),编/ 译码时间复杂度几乎为线性,但译码具有概率性,需要考虑译码失效情况下的相应措施。如何根据不同的数据灵活采用不同的数据组织方式,同时考虑到数据的存储效率、存取性能和成本,已经成为人们需要解决的问题。AutoRAID是一种考虑上述因素的存储方法,它在同一阵列系统中同时采用RAIDl和RAID5方法来支持两种不同访问模式,实现两级存储模型,着眼于性能的上层存储采用RAIDl方式存放访问频度高的活动数据块,而侧重于存储效率(数据空间/(数据空间+校验空间))的下层存储构成RAID5,为不经常防问的数据提供奇偶校验保护,两种模式都能容许一个磁盘失效。其次,某些企业同样对系统的性能,如存储效率、带宽等有很高的要求。目前广域网容错存储系统或多或少地受到了网络带宽、拥塞因素等影响。当出现网络拥塞情形,将影响数据存取效率甚至导致数据完全不可用。丢包将导致数据的大量重传,这将严重影响用户请求的响应时间,甚至导致当前服务无法进行甚至瘫痪。其带来的后果是很多企业特别是对数据存取效率有高要求的企业无法承受的。目前的存储系统一般采用单级存储,即只采用本地存储系统(如NAS)或者采用远程存储系统(如云存储空间),而且通常也只采用单一的编码方式。当然有的系统也采用了多级编码方式,如AutoRAID,它采用RAID0/1和RAID5编码相结合的策略,但是它同样只采用了单级存储策略,而且有些数据通常没有备份,导致其数据可靠性和安全性以及业务连续性都不太高。另外,它只使用RAID编码,限制了其扩展性和应用范围。

发明内容
本发明的目的在于解决现有技术的不足,提供一种基于纠删码的多等级容错的数据存储方法,该方法采用多级组织策略和不同编码方式相结合,能够有效的保证业务的连续性,数据的可用性、可靠性、安全性和保密性。本发明同时还提供了数据的读取和恢复方法。本发明提供了一种基于纠删码的多等级容错数据存储方法,包括以下步骤(A)将数据分成多个类别;(B)根据待存储数据所属类别的组织策略,按照编码方式对待存储数据进行编码, 将编码后的待存储数据按照存储方式进行存储;所述的组织策略包括编码方式和存储方式,所述编码方式包括本地编码方式和远程编码方式,所述存储方式为本地存储、远程存储或本地与远程同时存储。本发明还提供了一种基于纠删码的多等级容错数据读取方法,包括以下步骤(a)根据组织策略,判断数据是否存于本地存储空间,若是,从本地存储空间读取已存储数据,进入步骤(b);否则,转入步骤(c);(b)对本地读取的数据进行译码,若译码失败,进入步骤(C);若译码成功,转入步骤(e);(c)根据组织策略,判断数据是否存于远程存储空间,若是,从远程存储空间读取已存储数据,进入步骤(d);否则,转入步骤(e);(d)对远程读取的数据进行译码,若译码失败,进入步骤(e);若译码成功,进入步骤(e);(e)结束。本发明还提供了一种基于纠删码的多等级容错数据恢复方法,包括以下步骤(1)根据失效数据的组织策略,判断失效数据是本地数据还是远程数据,若为本地数据,则进入步骤O);若为远程数据,转入步骤(5);(2)读取失效数据的本地编码数据,利用本地编码数据对失效数据进行恢复;若本地恢复成功,转入步骤(8);若本地恢复失败,进入步骤(3);(3)根据组织策略,判断远程存储空间是否保存了失效数据的远程编码数据,若是,进入步骤(4),否则,转入步骤(8);(4)从远程存储空间读取远程编码数据,利用远程编码数据译码恢复原始数据,若译码成功,利用原始数据采用本地编码方式进行编码,恢复失效数据,转入步骤(8);否则, 译码失败,转入步骤(8);(5)根据组织策略,判断本地存储空间是否保存了失效数据的本地编码数据,若是,进入步骤(6);否则,转入步骤(7);(6)读取失效数据的本地编码数据,利用本地编码数据恢复原始数据,若恢复成功,则利用原始数据采用远程编码方式进行编码,得到失效数据,并将失效数据保存到远程存储空间,转入步骤(8);若恢复失败,进入步骤(7);(7)从远程存储空间读取远程编码数据,利用远程编码数据译码恢复原始数据,若译码成功,利用原始数据采用远程编码方式进行编码,得到失效数据,并将失效数据保存到远程存储空间,进入步骤(8);否则,译码失败,进入步骤(8);(8)结束。本发明具有如下有益效果1、本发明根据数据特点制定数据的多级组织策略,通过合理的数据组织方式,能够最大限度地适应数据的特点并满足应用的需求,它能有效利用数据的重要性、访问频率、 读写特性、紧急性等为其匹配相应的存储方式和编码方式,方便用户以最佳方式访问其数据。2、本发明将数据编码后再存放,在部分数据失效的情况下,仍然可以通过冗余的数据为用户提供服务,而且在本地或者远程数据全部失效的情况下,仍然可以通过访问另一端的存储空间获得所需的数据,保障在绝大多数情况下用户的业务是连续的;同时,失效的部分数据也可以通过这些冗余的数据进行恢复,提高了数据的可用性。3、本发明基于纠删码进行数据存储,数据被分块后存储到多个不同的位置,即使某个或多个块的数据被破坏、丢失或者泄漏,也不会影响其使用,从而保证了数据的可靠性;并且仅仅通过少数的几块数据并不能恢复出原始数据,保证了数据的保密性。本发明能够使用户高效地、放心地管理其数据,降低各种因素对于数据的影响。


图1为本发明的应用环境图;图2为多等级容错存储系统的逻辑框架图;图3为数据存储方法流程图;图4为数据读取方法流程图;图5为数据失效时的恢复方法流程图。
具体实施例方式本发明采用两级存储模式,第一级是基于局域网的本地存储系统,如本地区域存储系统(NAQ,它具有很高的可控性,并且采用RAID方式组织数据,极大地提高了数据的存取效率,避免了从远程存储空间读写数据时的网络拥塞,增加了读写性能,远程数据失效时也可从本地读取数据来提高恢复速度;第二级是广域网下的远程存储系统,如云存储空间,它对数据进行纠删编码,并采用merkle树验证数据的完整性,编码数据分配被分发到不同的存储空间,在部分数据失效时可以通过冗余编码数据来恢复原始数据。该方法不仅能增强数据可用性和上层服务的连续性;而且,多等级存储的层次结构特性能灵活应对不同服务的数据要求。另外,存储数据采用纠删码,即使存储数据泄露,也能确保原始数据的机密性。在本发明中,“编码方式”指数据采用什么方式进行编码并存储,如RAID编码、RS 编码、LDPC编码等;“本地编码方式”是指存放在本地存储空间数据的编码方式;“远程编码方式”是指存放在远程存储空间数据的编码方式。“存储方式”指数据存放在本地和/或远程存储空间,即只存于本地空间、只存于远程空间或者同时存于本地和远程空间。“高/低频数据”指数据被访问到的高/低频率。“原始数据”是指未编码前的数据,即用户能够看到的数据,它是用户使用到的最小数据集合;“本地编码数据”是指原始数据根据本地编码方式编码后存放在本地存储空间中的数据;“远程编码数据”是指原始数据根据远程编码方式编码后存放在远程存储空间中的数据。对于不同的应用,存储的数据类型和特征各有不同。但不论怎样,每种数据都有其相应的高效组织方式(编码),它能够充分发挥其特点,单一存储设备如此(如RAID阵列), 广域网下同样如此,采用合适的数据组织方式将能有效满足不同数据的应用需求。一般而言,第一级采用RAID编码,第二级采用RS编码或LT编码。其中,RS编码冗余量与纠错能力达到了俱佳,但译码时间复杂度较大,LT编码属于LDPC,编/译码时间复杂度几乎为线性, 但译码具有概率性,需要考虑译码失效情况下的相应措施。具体第一级和第二级采用何种编码方式,由数据特点决定。表1反应了本发明中数据的不同特征与组织方式之间的关系,它以重要性和访问频率将数据分为以下几个类别“重要&高频数据” A、“重要&低频数据”B、“普通&高频数据”C、“普通&低频数据”D、“不重要&高频数据”E、“不重要&低频数据”F等等。表1所列仅为举例说明,本发明不局限于表1中提到的数据分类、组织方式等。数据A非常重要,而且被防问频率很高,例如文件的元数据信息等,则本地可以采用RAIDO编码,能够有效提高数据的读写速度,保障读写性能,在大量用户并行访问这类数据时效果尤其明显;远程采用RS编码,保证数据的可靠性和安全性。数据B非常重要,但被访问频率不高,如账户信息等,它访问频率低,则本地可以采用访问效率低但是可靠性高且编码容易的Raidl,而远程同样采用RS码保证其可靠性和安全性。数据C重要程度一般, 但访问频率较高,如考试成绩、选课系统、博客文章等,则本地可以采用RAIDO编码提高数据访问速度,所以远程采用可靠性较RS码差但编译码时间较短的LT码。数据D是归档数据,其特点是重要性一般,但访问频率较低,如人事信息等,因为绝大部分时间都不会被访问到,所以本地不编码、不保存数据,远程采用RS编码保证其可靠性。数据E不重要,但访问频率高,如某些计算的中间数据,那么本地可以采用Raid5保证数据的并行访问效率,由于数据并不重要,所以远程不需要花费额外的时间和空间保存该数据;数据F不重要,而且极少访问,那么远程空间则不需要保存数据,而本地空间也不需要保证其读写效率,所以只需要再本地空间采用Raidl编码。表1数据特征与组织策略的对应关系图
权利要求
1.一种基于纠删码的多等级容错数据存储方法,包括以下步骤(A)将数据分成多个类别;(B)根据待存储数据所属类别的组织策略,按照编码方式对待存储数据进行编码,将编码后的待存储数据按照存储方式进行存储;所述的组织策略包括编码方式和存储方式,所述编码方式包括本地编码方式和远程编码方式,所述存储方式为本地存储、远程存储或本地与远程同时存储。
2.一种基于纠删码的多等级容错数据读取方法,包括以下步骤(a)根据组织策略,判断数据是否存于本地存储空间,若是,从本地存储空间读取已存储数据,进入步骤(b);否则,转入步骤(C);(b)对本地读取的数据进行译码,若译码失败,进入步骤(c);若译码成功,转入步骤(e);(c)根据组织策略,判断数据是否存于远程存储空间,若是,从远程存储空间读取已存储数据,进入步骤(d);否则,转入步骤(e);(d)对远程读取的数据进行译码,若译码失败,进入步骤(e);若译码成功,进入步骤(e);(e)结束。
3.一种基于纠删码的多等级容错数据恢复方法,包括以下步骤(1)根据失效数据的组织策略,判断失效数据是本地数据还是远程数据,若为本地数据,则进入步骤O);若为远程数据,转入步骤(5);(2)读取失效数据的本地编码数据,利用本地编码数据对失效数据进行恢复;若本地恢复成功,转入步骤(8);若本地恢复失败,进入步骤(3);(3)根据组织策略,判断远程存储空间是否保存了失效数据的远程编码数据,若是,进入步骤(4),否则,转入步骤(8);(4)从远程存储空间读取远程编码数据,利用远程编码数据译码恢复原始数据,若译码成功,利用原始数据采用本地编码方式进行编码,恢复失效数据,转入步骤(8);否则,译码失败,转入步骤⑶;(5)根据组织策略,判断本地存储空间是否保存了失效数据的本地编码数据,若是,进入步骤(6);否则,转入步骤(7);(6)读取失效数据的本地编码数据,利用本地编码数据恢复原始数据,若恢复成功,则利用原始数据采用远程编码方式进行编码,得到失效数据,并将失效数据保存到远程存储空间,转入步骤(8);若恢复失败,进入步骤(7);(7)从远程存储空间读取远程编码数据,利用远程编码数据译码恢复原始数据,若译码成功,利用原始数据采用远程编码方式进行编码,得到失效数据,并将失效数据保存到远程存储空间,进入步骤(8);否则,译码失败,进入步骤(8);(8)结束。
全文摘要
本发明提供了一种基于纠删码的多等级容错数据存储方法,包括以下步骤(A)将数据分成多个类别;(B)根据待存储数据所属类别的组织策略,按照编码方式对待存储数据进行编码,将编码后的待存储数据按照存储方式进行存储;所述的组织策略包括编码方式和存储方式,所述编码方式包括本地编码方式和远程编码方式,所述存储方式为本地存储、远程存储或本地与远程同时存储。本发明根据数据特点制定数据组织策略,通过多等级数据组织方式,能够最大限度地适应数据的特点并满足应用的需求,方便用户以最佳方式访问其数据。本发明同时还提供了基于纠删码的多等级容错数据的读取和恢复方法。
文档编号G06F11/10GK102270161SQ20111015434
公开日2011年12月7日 申请日期2011年6月9日 优先权日2011年6月9日
发明者万胜刚, 张峰豪, 曹强, 谢长生, 黄建忠 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1