一种基于分布式存储的数据恢复方法及装置制造方法

文档序号:6632529阅读:282来源:国知局
一种基于分布式存储的数据恢复方法及装置制造方法
【专利摘要】本发明公开了一种基于分布式存储的数据恢复方法及装置,其中,基于分布式存储的数据恢复方法包括:分布式调度系统分批向若干数据存储客户端分发待存储数据,并监测各数据存储客户端的异常状态;在监测到数据存储客户端处于异常状态的情况下,查找处于正常状态的数据存储客户端;查询处于异常状态的存储客户端处理的上一批次待存储数据的数据标识;将上一批次后的待存储数据重新分发给处于正常状态的数据存储客户端。通过本发明提供的数据恢复方法,在不需要增加额外设备的基础上,保障数据写入的一致性和完整性;也不会因为存储客户端的异常影响正常的服务。
【专利说明】一种基于分布式存储的数据恢复方法及装置

【技术领域】
[0001]本发明涉及数据存储【技术领域】,具体涉及一种基于分布式存储的数据恢复方法及
>J-U ρ?α装直。

【背景技术】
[0002]分布式存储技术就是将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
[0003]为了保证分布式存储系统数据的一致性和完整性,当存储服务器出现异常时,需要采用一定的方法进行数据的恢复。目前,常用的方法是存储服务器将内存中的数据备份到存储介质,当存储服务器从异常恢复,重新启动时,存储服务器从存储介质中获取备份的数据。
[0004]采用备份数据的方法实现数据的恢复,由于存储服务器发生异常到恢复的过程需要一段时间,在这段时间内,存储服务器无法提供服务,对服务需求会产生影响;另外,该方法实现数据的恢复需要额外增加存储介质,增加的成本。


【发明内容】

[0005]本发明所要解决的技术问题是提供一种基于分布式存储的数据恢复方法及装置,能够实现分布式存储的数据恢复。
[0006]依据本发明的一个方面,提供了一种基于分布式存储的数据恢复方法,包括:
[0007]分布式调度系统分批向若干数据存储客户端分发待存储数据,并监测各数据存储客户端的异常状态;
[0008]在监测到数据存储客户端处于异常状态的情况下,查找处于正常状态的数据存储客户端;
[0009]查询处于异常状态的存储客户端处理的上一批次数据的数据标识;
[0010]将上一批次后的数据重新分发给处于正常状态的数据存储客户端。
[0011]依据本发明的另一个方面,提供了一种基于分布式存储的数据恢复装置,包括:
[0012]第一数据分发模块,用于调用分布式调度系统分批向若干数据存储客户端分发待存储数据,并监测各数据存储客户端的异常状态;
[0013]查找模块,用于在监测到数据存储客户端处于异常状态的情况下,查找处于正常状态的数据存储客户端;
[0014]数据标识查询模块,用于查询处于异常状态的存储客户端处理的上一批次数据的数据标识;
[0015]第二数据分发模块,用于将上一批次后的数据重新分发给处于正常状态的数据存储客户端。
[0016]本发明提供的一种基于分布式存储的数据恢复方法及装置,通过获取处于异常状态的数据存储客户端写入的断点信息,通过断点信息获取异常数据存储客户端处理的上一批次的数据标识,然后将上一批次后的数据重新分发给处于正常状态的数据存储客户端,对数据进行重新写入,来实现分布式存储过程中的客户端写入数据恢复,在不需要增加额外设备的基础上,保障数据写入的一致性和完整性。

【专利附图】

【附图说明】
[0017]图1为本发明实施例一的一种基于分布式存储的数据恢复方法流程图;
[0018]图2为本发明的数据写入过程的总体架构图;
[0019]图3为本发明实施例一的一种基于分布式存储的数据恢复方法的具体实例流程图;
[0020]图4为本发明实施例二的一种基于分布式存储的数据恢复装置示意图。

【具体实施方式】
[0021]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0022]实施例一、一种基于分布式存储的数据恢复方法。下面结合图1-图3对本发明提供的方法进行详细说明。
[0023]图1中,S101、分布式调度系统分批向若干数据存储客户端分发待存储数据,并监测各数据存储客户端的异常状态。
[0024]具体的,参见图2,首先介绍一下分布式存储时数据写入的过程,分布式调度系统将大量数据分批发送给数据存储客户端,其中,数据存储客户端为多个,一个存储客户端可以作为一个存储节点,分布式调度系统可以采取预定策略将大量的数据分发给不同的数据存储客户端,数据存储客户端接收到分布式调度系统分发的数据,对数据进行处理,比如说按照业务要求将数据进行分类处理,或者按照数据格式要求对数据进行处理,存储客户端将处理后的数据提交给数据库,数据库进行数据的处理后,将数据物化到HDFS(Hadoc)PDistributed File System,分布式文件系统)中,即将数据存储于分布式文件系统中。
[0025]需要说明的是,本实施例中的数据库是基于Hbase的数据库,Hbase存入数据是以Key-value的形式存储数据的。Hbase采用Key值来唯一标识一条数据,利用了 Key值的不变性来保证数据恢复的一致性。其中,Key值的设计可以包括关键内容与MD5码的组合,MD5码是基于整条数据的编码,整条数据和编码的结果存在一一对应关系,从而保证数据重入恢复的一致性。
[0026]另外,由于hbase有版本概念,各个存储客户端提交给Hbase数据库的数据可以存储多个版本。因此,为了使存储客户端写入数据恢复时不重复写入,设置Hbase数据库的版本数为1,即保证只有一个版本有效,这样即使存储客户端重入相同的数据也不会出现重复数据。在数据按照批次进行恢复时,Hbase数据库的断点机制就保证了数据完整性和不重复性。
[0027]在数据写入的过程中,可以分为存储客户端写入数据恢复,即在存储客户端将数据提交给Hbase数据库的过程中,进行数据的恢复;或者入库的数据恢复,即存储客户端已经将数据提交给Hbase数据库后进行数据的恢复。
[0028]本实施例主要设计了存储客户端写入数据恢复的方法,参见图3,图3为存储客户端写入数据恢复的流程图,分布式调度系统分批向存储客户端分发数据,并监测各个存储客户端的异常状态。
[0029]S102、在监测到数据存储客户端处于异常状态的情况下,查找处于正常状态的数据存储客户端。
[0030]具体的,上述步骤中分布式调度系统监测每个存储客户端的异常状态,当监测到存储客户端处于异常状态时,比如,存储客户端连接异常或存储客户端出现宕机的情况,分布式调度系统会在存储客户端集群中查询处于正常状态的存储客户端。
[0031]S103、查询处于异常状态的存储客户端处理的上一批次数据的数据标识。
[0032]具体的,需要说明的是,在数据写入的过程中,当存储客户端将当前批次的数据提交给Hbase数据库时,会在Hbase数据库中写入断点信息,并保存于断点文件中,其中,断点信息包括该批次的数据提交Hbase数据库提交成功的信息、提交数据的存储客户端的标识以及该批次数据的数据标识。若分布式调度系统监测到某个存储客户端处于异常状态时,在Hbase数据库的断点文件中查找断点信息,获取该处于异常状态的存储客户端提交的上一批次数据的数据标识。
[0033]S104、将上一批次后的数据重新分发给处于正常状态的数据存储客户端。
[0034]具体的,上述步骤S103分布式调度系统查询到处于异常状态的存储客户端提交的上一批次数据的数据标识,将上一批次以后的数据,即当前批次和当前批次后的数据重新分发给处于正常状态的存储客户端进行数据写入,由正常的存储客户端将分发的数据处理后提交给Hbase数据库。
[0035]实施例二、一种基于分布式存储的数据恢复装置。下面结合图4对本发明提供的装置进行说明。
[0036]图4中,本发明提供的装置包括第一数据分发模块401、查找模块402、断点信息写入模块403、数据标识查询模块404和第二数据分发模块405。
[0037]其中,第一数据分发模块401主要用于调用分布式调度系统分批向数据存储客户端分发待存储数据,并监测各数据存储客户端的异常状态。
[0038]具体的,分布式存储数据写入时,设置于分布式调度系统中的第一数据分发模块401将大量数据分批发送给数据存储客户端,其中,数据存储客户端为多个,一个存储客户端可以作为一个存储节点,分布式调度系统可以采取预定策略将大量的数据分发给不同的数据存储客户端,数据存储客户端接收到分布式调度系统分发的数据,对数据进行处理,存储客户端将处理后的数据提交给数据库。在第一数据分发模块401将数据分发给存储客户端的同时,监测各存储客户端的异常状态。
[0039]需要说明的是,本实施例中的数据库是基于Hbase的数据库,Hbase存入数据是以Key-value的形式存储数据的。Hbase采用Key值来唯一标识一条数据,利用了 Key值的不变性来保证数据恢复的一致性。其中,Key值的设计可以包括关键内容与MD5码的组合,MD5码是基于整条数据的编码,整条数据和编码的结果存在一一对应关系,从而保证数据重入恢复的一致性。
[0040]另外,由于hbase有版本概念,各个存储客户端提交给Hbase数据库的数据可以存储多个版本。因此,为了使存储客户端写入数据恢复时不重复写入,设置Hbase数据库的版本数为1,即保证只有一个版本有效,这样即使存储客户端重入相同的数据也不会出现重复数据。在数据按照批次进行恢复时,Hbase数据库的断点机制就保证了数据完整性和不重复性。
[0041]查找模块402主要用于在第一数据分发模块401监测到数据存储客户端处于异常状态的情况下,查找处于正常状态的数据存储客户端。
[0042]具体的,分布式调度系统监测每个存储客户端的异常状态,当监测到存储客户端处于异常状态时,比如,存储客户端连接异常或存储客户端出现宕机的情况,分布式调度系统中的查找模块402会在存储客户端集群中查询处于正常状态的存储客户端。
[0043]断点信息写入模块403主要用于当数据存储客户端分批将数据成功提交给Hbase数据库时,在数据库中写入断点信息,所述断点信息包含该数据存储客户端处理的各批数据的数据标识。
[0044]数据标识获取模块404主要用于查询处于异常状态的存储客户端处理的上一批次数据的数据标识。
[0045]具体的,需要说明的是,在数据写入的过程中,当存储客户端将当前批次的数据提交给Hbase数据库时,断点信息写入模块403会在Hbase数据库中写入断点信息,并保存于断点文件中,其中,断点信息包括该批次的数据提交Hbase数据库提交成功的信息、提交数据的存储客户端的标识以及该批次数据的数据标识。若分布式调度系统监测到某个存储客户端处于异常状态时,数据标识查询模块404在Hbase数据库的断点文件中查找断点信息,获取该处于异常状态的存储客户端提交的上一批次数据的数据标识。
[0046]第二数据分发模块405主要用于将上一批次后的数据重新分发给处于正常状态的数据存储客户端。
[0047]具体的,数据标识获取模块404查询到处于异常状态的存储客户端提交的上一批次数据的数据标识,第二数据分发模块405将上一批次以后的数据,即当前批次和当前批次后的数据重新分发给处于正常状态的存储客户端进行数据写入,由正常的存储客户端将分发的数据处理后提交给Hbase数据库。
[0048]本发明提供的一种基于分布式存储的数据恢复方法及装置,通过获取处于异常状态的数据存储客户端写入的断点信息,通过断点信息获取异常数据存储客户端处理的上一批次的数据标识,然后将上一批次之后的数据重新分发给处于正常状态的数据存储客户端,对数据进行重新写入,来实现分布式存储过程中的存储客户端写入数据恢复,在不增加额外设备的基础上,保障数据写入的一致性和完整性;在某些存储客户端发生异常的情况下,不会因为异常而影响正常的服务功能;另外,不需要增加额外的设备即可实现数据的恢复,减少了成本。
[0049]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于分布式存储的数据恢复方法,其特征在于,包括: 步骤S101、分布式调度系统分批向若干数据存储客户端分发待存储数据,并监测各数据存储客户端的异常状态; 步骤S102、在监测到数据存储客户端处于异常状态的情况下,查找处于正常状态的数据存储客户端; 步骤S103、查询处于异常状态的存储客户端处理的上一批次待存储数据的数据标识; 步骤S104、将上一批次后的待存储数据重新分发给处于正常状态的数据存储客户端。
2.如权利要求1所述的数据恢复方法,其特征在于,还包括: 当所述数据存储客户端将分布式调度系统分批分发的待存储数据成功提交给Hbase数据库时,在Hbase数据库中写入断点信息,所述断点信息包含该数据存储客户端提交给Hbase数据库的各批待存储数据的数据标识; 所述步骤S103包括: 在Hbase数据库中查找处于异常状态的数据存储客户端的断点信息,获取该数据客户端处理的上一批次待存储数据的数据标识。
3.如权利要求2所述的数据恢复方法,其特征在于,预先设置Hbase数据库的版本数为1
4.如权利要求1或2所述的数据恢复方法,其特征在于,所述待存储数据中的每条数据记录具有数据记录唯一标识,所述数据记录唯一标识为该数据记录关键词与MD5码的组口 ο
5.一种基于分布式存储的数据恢复装置,其特征在于,包括: 第一数据分发模块,用于调用分布式调度系统分批向若干数据存储客户端分发待存储数据,并监测各数据存储客户端的异常状态; 查找模块,用于在监测到数据存储客户端处于异常状态的情况下,查找处于正常状态的数据存储客户端; 数据标识查询模块,用于查询处于异常状态的存储客户端处理的上一批次待存储数据的数据标识; 第二数据分发模块,用于将上一批次后的待存储数据重新分发给处于正常状态的数据存储客户端。
6.如权利要求5所述的数据恢复装置,其特征在于,还包括: 断点信息写入模块,用于当所述数据存储客户端将分布式调度系统分批分发的待存储数据成功提交给Hbase数据库时,在Hbase数据库中写入断点信息,所述断点信息包含该数据存储客户端提交给Hbase数据库的各批待存储数据的数据标识; 所述数据标识查询模块,用于查询处于异常状态的数据存储客户端处理的上一批次待存储数据的数据标识具体包括: 在Hbase数据库中查找处于异常状态的数据存储客户端的断点信息,获取该数据客户端处理的上一批次待存储数据的数据标识。
7.如权利要求6所述的数据恢复装置,其特征在于,预先设置Hbase数据库的版本数为1
8.如权利要求5或6所述的数据恢复装置,其特征在于,所述所述待存储数据中的每条数据记录具有数据记录唯一标识,所述数据记录唯一标识为该数据记录关键词与MD5码的组合。
【文档编号】G06F17/30GK104360915SQ201410601850
【公开日】2015年2月18日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】杜旭苗 申请人:北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1