基于分布式存储系统进行数据冗余处理方法

文档序号:7856878阅读:486来源:国知局
专利名称:基于分布式存储系统进行数据冗余处理方法
基于分布式存储系统进行数据冗余处理方法
技术领域
本发明涉及通讯设备技术领域,尤其涉及一种基于分布式存储系统进行数据冗余处理方法。
背景技术
分布式存储系统包括通过网络互连的多个存储节点,数据可以被分散地存储到不同的存储节点上,以实现大容量、高可靠性且易扩展的存储应用。现有的分布式存储系统常用的数据高可靠保证技术是通过数据冗余的方法实现的,即把一份数据保存成多个副本,从而当部分副本所在的服务器故障时,仍然可以从其它 正常的服务器访问,这一技术可以保证数据读取的高可靠。然而在数据写入的过程中,只要其中的某一存有副本的服务器故障,将造成写中断,即无法保证数据写入的高可靠性。现有技术中提供了一种“数据冗余处理方法、装置和分布式存储系统”,见公开号为CN102279777A,
公开日为2011. 12. 14的中国专利,该方法,包括采用冗余算法生成待写入数据的M个切片数据和N个冗余片数据,所述M个切片数据和N个冗余片数据中任意损坏至多N个数据时,能够利用未损坏的数据恢复损坏的数据,其中M为大于I的自然数,N为不小于I的自然数;将所述M个切片数据和N个冗余片数据分别存储到位于至少两个存储节点上的对象中,其中,每个存储节点包含至少一个对象集,每个对象集包含至少一个对象。该发明实施例可以提高存储空间地利用率且降低了存储负载,另外可以支持不同的冗余算法,从而满足客户不同的可靠性需求,灵活性较高。但该发明不能实现某一存储节点在数据存储写入的过程中,其该存储节点的服务器发生故障,则就会造成写中断,即不能达到数据写入的高可靠性。

发明内容本发明要解决的技术问题,在于提供一种基于分布式存储系统进行数据冗余处理方法,实现了分布式存储系统上文件数据读和写的全面高可靠性。本发明是这样实现的一种基于分布式存储系统进行数据冗余处理方法,所述分布式存储系统包括至少一控制节点的控制服务器和至少两个存储节点的存储服务器,至少在两个或两个以上存储节点的存储服务器保存有相同的数据副本;所述数据冗余处理方法包括不分先后顺序的读取数据的处理和写入数据的处理;所述读取数据的处理当客户端要读取一文件数据时,分布式存储系统从保存有数据副本的所有存储节点中随机选取一存储节点的存储服务器与客户端进行通信,判断客户端从选取的存储服务器中是否成功读取文件数据;否,则转向分布式存储系统的其他任意一保存有数据副本的存储节点的存储服务器再进行访问读取文件数据;是,则提示读取文件数据成功;所述写入数据的处理当客户端要写入一文件数据时,将所述文件数据按一预设定的切片大小切片后进行写操作;所述写操作为先将分布式存储系统中的各存储服务器进行分组,所述各组存储节点的存储服务器为包括至少两个存储服务器,选取一组存储节点的存储服务器将文件数据切片后的第一切片数据进行写入,写入成功后,重新选择分布式存储系统的其他一组存储节点的存储服务器进行文件数据的第一切片数据的写入,所有存储服务器第一切片数据均写完后,各组存储服务器进行下一切片数据的写入,如此不断循环将所有的切片数据进行写入;任意一切片数据在写入的过程中,被写入的存储服务器发生故障,则设置当前要写入的切片数据大小为故障前文件数据最后写入的大小位置,并立即从文件数据的该大小位置开始生成新的切片数据,选择新的一组存储节点的存储服务器继续写入该新的切片数据;切片数据采用同步复制方法写入;所述同步复制方法为保存数据的一组存储节点中的任何一存储节点在接收到写入数据时,先往组内其它存储节点写入数据,最后再写所述一存储节点。
·
本发明具有如下优点本发明的数据冗余处理方法包括不分先后顺序的读取数据的处理和写入数据的处理;其读取数据的处理读取数据时,系统随机选取一个存储节点进行读取,若读取失败,自动转向其它存储节点访问别的副本。写入数据的处理采用文件数据分片技术、同步复制功能及异步更新功能相结合的方式实现数据写入的高可靠。本发明在分布式存储系统上既实现了数据读取的高可靠性,又实现了数据写入的高可靠性。其保证了分布式存储系统上数据的全面可靠性,其数据不会损坏和丢失。

图I为本发明分布式存储系统各存储服务器的结构示意图。图2为本发明客户端从存储节点读取数据的处理流程示意图。图3为本发明客户端写入数据到存储节点的处理流程示意图。
具体实施方式请参阅图I所示,本发明的一种基于分布式存储系统进行数据冗余处理方法,所述分布式存储系统包括至少一控制节点的控制服务器和至少两个存储节点的存储服务器,数据至少在两个或两个以上存储节点的存储服务器保存有相同的数据副本(在本实施实例中包括了由A、B、C、D四个存储节点构成的存储集群);所述数据冗余处理方法包括不分先后顺序的读取数据的处理和写入数据的处理;如图2所示,所述读取数据的处理当客户端要读取一文件数据(如文件filel)时,分布式存储系统从保存文件数据的所有存储节点中随机选取一存储节点的存储服务器与客户端进行通信(此时选择的为存储节点存储服务器A),所述客户端发送读取数据请求,选取的存储服务器响应客户端的请求后,客户端从选取的存储服务器中获取要读取的文件数据;判断客户端从选取的存储服务器中是否成功读取文件数据;否,则转向分布式存储系统的其他任意一保存文件数据的存储节点的存储服务器(如此时选取的存储节点存储服务器B)再进行访问读取文件数据;是,则提示读取文件数据成功。如图3所示,所述写入数据的处理当客户端要写入一文件数据时,将所述文件数据filel按一预设定的切片大小切片后(如切片为三个filel_partl、filel_part2、filel_part3)进行写操作;所述写操作为先将分布式存储系统中的各存储服务器进行分组(如存储节点存储服务器A和C为一组,存储节点存储服务器B和D为一组),所述各组存储节点的存储服务器为包括至少两个存储服务器,分布式存储系统选取一组存储节点的存储服务器(如存储节点存储服务器A和C)将文件数据切片后的第一切片数据(第一切片数据为filel_partl)进行写入,写入成功后,重新选择分布式存储系统的其他任意一组存储节点的存储服务器(如此时选择的为存储节点存储服务器B、D)进行文件数据的第一切片数据(即filel_partl)的写入,所有存储服务器第一切片数据均写完后,各组存储服务器(即按上述第一切片数据写入存储服务器的顺序进行各组的存储服务器写入)进行下一切片数据(下一切片数据为filel_part2)的写入,如此不断循环将所有的切片数据进行写A ;任意一切片数据(如filel_part3)在写入的过程中,被写入的存储服务器(如存储节点存储服务器A)发生故障,则设置当前要写入的切片数据大小为故障前文件数据最后写入的大小位置,并立即从文件数据的该大小位置(即将文件数据的filel_part3切片位置)开始生成新的切片数据(如filel_partnew),选择新的一组存储节点的存储服务器(即存储 节点存储服务器A出现故障,则选择存储节点存储服务器B、C)继续写入该新的切片数据(即此时就是filel_part3切片数据用filel_partnew切片数据进行替换);数据写入采用同步复制的方法;所述同步复制的方法为保存数据的一组存储节点中的任何节点在接收到写入数据时,先往组内其它节点写入数据,最后再写所述一存储节点。(如filel_partl写入到存储节点存储服务器A时,A先同步把数据写往存储节点存储服务器B,写入成功后再写自身存储服务器A本地数据)其中,本发明中所述各存储服务器中存储有所述文件数据的各切片数据后,将各切片数据组合成完整的所述文件数据。当各存储服务器要更新一文件数据时,某一存储节点的存储服务器发生故障,则分布式存储系统启动异步更新功能,所述异步更新功能为控制节点的控制服务器中将建立一更新日志,待故障的存储节点的存储服务器恢复正常后,分布式存储系统通过重新执行所述更新日志,则故障的存储服务器进行更新文件数据,以确保各存储服务器的数据保
持一致。总之,本发明的读取数据的处理读取数据时,系统从保存有数据的存储节点中随机选取一个存储节点进行读取,若读取失败,自动转向其它存储节点访问别的副本。写入数据的处理采用文件数据分片技术、同步复制功能及异步更新功能相结合的方式实现数据写入的高可靠。本发明在分布式存储系统上既实现了数据读取的高可靠性,又实现了数据写入的高可靠性。其保证了分布式存储系统上数据的全面可靠性,其数据不会损坏和丢失。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
权利要求
1.一种基于分布式存储系统进行数据冗余处理方法,其特征在于所述分布式存储系统包括至少ー控制节点的控制服务器和至少两个存储节点的存储服务器,至少在两个或两个以上存储节点的存储服务器保存有相同的数据副本; 所述数据冗余处理方法包括不分先后顺序的读取数据的处理和写入数据的处理; 所述读取数据的处理当客户端要读取一文件数据时,分布式存储系统从保存有数据副本的所有存储节点中随机选取一存储节点的存储服务器与客户端进行通信,判断客户端从选取的存储服务器中是否成功读取文件数据;否,则转向分布式存储系统的其他任意一保存有数据副本的存储节点的存储服务器再进行访问读取文件数据;是,则提示读取文件数据成功; 所述写入数据的处理当客户端要写入一文件数据时,将所述文件数据按ー预设定的切片大小切片后进行写操作;所述写操作为先将分布式存储系统中的各存储服务器进行分组,所述各组存储节点的存储服务器为包括至少两个存储服务器,选取ー组存储节点的存储服务器将文件数据切片后的第一切片数据进行写入,写入成功后,重新选择分布式存储系统的其他一组存储节点的存储服务器进行文件数据的第一切片数据的写入,所有存储服务器第一切片数据均写完后,各组存储服务器进行下一切片数据的写入,如此不断循环将所有的切片数据进行写入; 任意一切片数据在写入的过程中,被写入的存储服务器发生故障,则设置当前要写入的切片数据大小为故障前文件数据最后写入的大小位置,并立即从文件数据的该大小位置开始生成新的切片数据,选择新的一组存储节点的存储服务器继续写入该新的切片数据;切片数据采用同步复制方法写入;所述同步复制方法为保存数据的ー组存储节点中的任何一存储节点在接收到写入数据时,先往组内其它存储节点写入数据,最后再写所述一存储节点。
2.根据权利要求I所述的基于分布式存储系统进行数据冗余处理方法,其特征在于所述分布式存储系统随机选取ー组存储节点的存储服务器与客户端进行通信之后,还包括所述客户端发送读取数据请求,选取的存储服务器响应客户端的请求后,客户端从选取的存储服务器中获取要读取的文件数据。
3.根据权利要求I所述的基于分布式存储系统进行数据冗余处理方法,其特征在于所述各存储服务器中存储有所述文件数据的各切片数据后,将各切片数据组合成完整的所述文件数据。
4.根据权利要求3所述的基于分布式存储系统进行数据冗余处理方法,其特征在于当各存储服务器要更新一文件数据时,某一存储节点的存储服务器发生故障,则分布式存储系统启动异步更新功能,所述异步更新功能为控制节点的控制服务器中将建立一更新日志,待故障的存储节点的存储服务器恢复正常后,分布式存储系统通过重新执行所述更新日志,则故障的存储服务器进行更新文件数据,以确保各存储服务器的数据保持一致。
全文摘要
本发明提供一种基于分布式存储系统进行数据冗余处理方法,所述分布式存储系统包括至少一控制节点的控制服务器和至少两个存储节点的存储服务器,数据至少在两个或两个以上存储节点保存有相同的副本;所述数据冗余处理方法包括不分先后顺序的读取数据的处理和写入数据的处理;其读取数据的处理读取数据时,系统从保存数据副本的所有存储服务器中随机选取一个存储节点进行读取,若读取失败,自动转向其它存储节点访问别的副本。写入数据的处理采用文件数据分片技术、同步复制功能及异步更新功能相结合的方式实现数据写入的高可靠。本发明在分布式存储系统上既实现了数据读取的高可靠性,又实现了数据写入的高可靠性。
文档编号H04L29/08GK102857554SQ201210262780
公开日2013年1月2日 申请日期2012年7月26日 优先权日2012年7月26日
发明者刘德建, 陈宏展, 吴家亮, 张建新, 刘弘达, 李浩清 申请人:福建网龙计算机网络信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1