一种存放备份数据的分布式存储系统及方法与流程

文档序号:16753518发布日期:2019-01-29 17:07阅读:274来源:国知局
一种存放备份数据的分布式存储系统及方法与流程

本发明涉及数据备份技术领域,尤其涉及分布式存储、文件系统的相关技术,具体说是一种存放备份数据的分布式存储系统及方法。



背景技术:

随着云计算、大数据等新型技术的发展,业务系统产生的数据量呈现指数级增长,因此对备份系统的ipo和ito要求越来越高。同时,磁盘技术的发展速度远远超过磁带介质的发展步伐,越来越多的设备采用磁盘设备代替磁带设备作为首选备份介质。

但是,目前的备份系统对磁盘设备的支持存在如下问题:主流备份软件均使用磁带的方式管理磁盘,只有磁盘上存储的数据全部过期之后才会对磁盘空间进行回收,极大浪费了磁盘的空间。对于文件系统备份,若采用文件索引的方式进行管理,大量的文件将导致备份软件索引管理困难,长时间大量文件备份后,备份系统的索引空间会出现暴涨,伴有显著的性能降低。海量文件的增量备份恢复时,需要一次一次的恢复增量,将消耗大量时间,恢复浏览周期内的文件需要进行繁琐的索引查询,若使用文件索引,索引的效率非常低下,并且索引结构非常臃肿。若使用小型开源数据库存放索引,则当文件数量过多时会导致数据库稳定性下降,非常不利于维护,若使用大型商业数据库存放索引,则又需要高额的附加费用。数据的备份和恢复仅由单个存储设备提供支持,当备份域规模很大时,很容易出现备份设备的性能瓶颈,特别是备份设备的吞吐量瓶颈,可能会导致多个备份作业并发时无法在规定的备份窗口内完成备份任务。单个存储设备的存储空间扩容能力有限,并且纵向空间扩容会导致备份设备的处理性能下降,从而降低备份设备的性能,备份设备存在单点故障,如果备份设备硬件出现损坏,在硬件修复之前不得不中断系统的备份作业。



技术实现要素:

针对以上缺点,本发明提出了一种存放备份数据的分布式存储系统及方法,使用分布式存储方式代替索引方式对备份数据进行管理,提高整体性能。

本发明实施例提供了一种存放备份数据的分布式存储系统及方法,所述的系统,包括集群管理节点、元数据管理节点和存储节点;

所述集群管理节点用于提供集群的管理服务,以及元数据管理节点的选举和仲裁;所述集群管理节点的数量为n,其中n为自然数,n≥3;

所述元数据管理节点用于管理整个集群的配置信息并负责元数据管理节点的选举和切换;所述元数据管理节点至少包括主用元数据管理节点和备用数据管理节点;所述主用元数据管理节点用于管理整个集群的索引信息,负责数据导流;所述备用数据管理节点用于当主用元数据管理节点出现故障时,替代主用元数据管理节点工作;

所述存储节点用于存储备份数据;所述存储节点的数量为m,其中m为自然数,m≥2。

进一步的,所述存储节点的数据存储结构包括元数据管理区、位图和数据管理区;

所述元数据管理区用于存放所有的元数据;所述元数据包括数据块的属性信息;所述数据块用于存放按照硬盘大小64兆切块后的备份数据;

所述位图采用表的方式记录所述存储节点上的数据块使用情况;

所述数据管理区用于存放数据块。

一种存放备份数据的分布式存储方法,是基于一种存放备份数据的分布式存储系统实现,包括:

采用哈希校验的方式进行备份数据的存放校验,备份数据以数据块的方式存放,并将数据块的存放位置记录至元数据,同时将备份数据复制到另外的存储节点作为副本;

采用先按照元数据记录进行散粒组合然后再通过哈希校验的方式进行数据恢复;

采用将获取元数据的过期时间信息,将元数据的过期时间信息与当前系统的时间对比的方式进行备份数据垃圾回收。

进一步的,在所述备份数据的存放、数据恢复以及备份数据垃圾回收之前,还包括原始数据的写入,所述原始数据的写入方法包括以下步骤:

s1:向元数据管理节点发送写入请求;

s2:所述元数据管理节点按照就近原则选择存储节点,将原始数据按照数据块的方式写入所述存储节点;所述数据块是将原始数据切块,切块的大小为64m;

所述数据块的数量=[原始数据的大小(兆)/64(兆)]+1;

s3:所述存储节点将写入的所有数据块的信息进行哈希校验,并将哈希校验值反馈给所述元数据管理节点作为元数据;

s4:所述元数据管理节点接收到从存储节点反馈元数据后,通过散列算法再将数据块进行副本拷贝,并将副本调度到另外存储节点进行存放,待副本数据创建完毕后,将副本数据的信息更新至元数据。

进一步的,所述备份数据的存放的方法包括以下步骤:

计算备份数据的哈希校验值;

将备份数据的哈希校验值和原始数据的哈希校验值进行对比,如果相同,则说明备份数据和原始数据相同,在元数据中增加所述备份数据的版本记录,并将其指向原始数据;

如果不相同,则说明备份数据被修改,在元数据中增加备份数据的版本记录和数据块映射表,并将所述备份数据写入存储节点。

进一步的,备份数据的存放方法还包括:

计算备份数据的哈希校验值,将备份数据的哈希校验值和原始数据的哈希校验值进行对比,如果不相同,则说明数据备份时出现错误,将重新备份当前数据。

进一步的,所述备份数据在存储节点中是按照元数据和数据块的方式存放;

所述副本数据在存储节点中是按照元数据和数据块的方式存放。

进一步的,所述备份数据的恢复方法包括以下步骤:

通过元数据块找到待恢复数据的备份数据块所在位置;所述元数据块用于存放备份数据的元数据;

计算待恢复数据的备份数据块的哈希值,和存储在所述元数据管理节点的备份数据的哈希值进行比对,如果相同,则恢复;

如果不相同,则读取该所述备份数据的原始数据,将计算出的待恢复数据的备份数据块的哈希值和原始数据的哈希值进行比对,如果相同,则恢复原始数据;如果不相同,则备份数据和原始数据失效。

进一步的,所述备份数据的恢复方法还包括:

扫描待恢复数据的元数据块,获取待恢复数据的元数据;

按照元数据中的记录组合数据块;

所述元数据管理节点选取存储节点提供所述组合元数据和数据块后的待恢复数据。

进一步的,所述备份数据垃圾回收的方法包括以下步骤:

扫描所有的元数据块,获取元数据的过期时间信息;

将元数据的过期时间信息与当前系统的时间对比,获得过期的数据块;

如果所述过期的数据块未被使用,则删除所述元数据;如果所述过期的数据块被使用,则删除所述元数据,同时删除所述数据块中的内容并修改位图中所述数据块的使用情况,将删除的所述数据块的地址修改为未使用。

发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:

本发明提出了一种存放备份数据的分布式存储系统,使用分布式存储系统的方式代替索引方式对备份的数据进行管理,可以更好的支持磁盘作为物理备份介质,并在一定程度上避免因为备份系统索引损坏造成整个备份数据丢失,提升数据恢复的速率,同时通过支持分布式存储技术,使整个备份支持横向扩容,既可以解决备份空间不足的问题,又能够提高整体的性能。

本发明提出了一种存放备份数据的分布式存储方法,包括备份数据的存放的方法、数据恢复的方法以及备份数据垃圾回收的方法。备份数据的存放将多个版本数据的管理纳入一个元数据管理数据库,并且将硬件空间划分为定长的64m,极大减少索引的数量,提高备份系统的索引速度。使用该数据存放能够极大的利用磁盘设备高iops以及集群的高并发优势,系统设计有冗余,不会轻易出现系统崩溃,并且省去了很多优化备份服务器自身数据的环境,既便于系统管理员进行系统管理又节省了数据库的授权费用。通过元数据管理不同版本的数据,保证系统在永久增量的情况下依旧可以做到直接恢复,免去增量的合成的时间,显著降低恢复窗口期,通过分布式多副本技术可以解决备份设备的单点故障,并且能够提升系统的并行度,增加系统的吞吐量。有效的垃圾回收的机制,将会及时回收过期数据,保证磁盘资源的迅速释放,解决传统备份空间利用率低下的问题。

附图说明

图1是本发明实施例1的一种存放备份数据的分布式存储系统整体结构图;

图2是本发明实施例1中的元数据块的具体结构事例;

图3是基于本发明实施例1的备份数据的存放的方法流程图;

图4是基于本发明实施例1的数据恢复的方法流程图。

具体实施方式

为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。

实施例1

如图1所示:本发明实施例1提供了一种存放备份数据的分布式存储系统整体结构图。

一种存放备份数据的分布式存储系统包括集群管理节点,元数据管理节点和存储节点。在实施例1中,集群管理节点有3个,元数据管理节点有2个,主用元数据管理节点和备用元数据管理节点,存储节点有4个。但是本发明保护的一种存放备份数据的分布式存储系统的结构不局限于本实施例,还可以是其他结构。

集群管理节点用于提供集群的管理服务,以及元数据管理节点的选举和仲裁,当一个集群管理节点出现宕机时,集群剩下的节点会再次推选出一个集群管理节点。

元数据管理节点用于管理整个集群的配置信息并负责元数据管理节点的选举和切换,集群会同时有两个元数据节点存在,主用元数据管理节点和备用元数据管理节点,并且主用元数据管理节点和备用元数据管理节点数据实时同步,当主用元数据管理节点宕机后,备用元数据管理节点立即提升为主用元数据管理节点,替代主用元数据管理节点工作,同时集群管理节点会通过投票的方式提升一个存储节点变为备用元数据节点。

存储节点主要用于存储数据,同时存储节点会实时跟元数据管理节点进行元数据同步。对存储数据在存储节点中的结构又可以分成元数据管理区、位图和数据管理区三个部分。元数据管理区位于存储节点第一块磁盘的开头部分,是一个连续的空间,用于存放集群中所有的元数据信息,默认为20g。其中元数据用于记录数据块的属性信息,数据块用于存放真实切片后的备份数据,元数据所在的块为元数据块。位图用于描述所述存储节点上的数据块使用情况。数据管理区用于存放数据块。

如图2所示,该图给出了元数据块的具体结构的事例。元数据块主要有以下几个部分组成:对象uuid、文件名、数据版本、属主、类型、用户、权限、数据块地址等。

基于本发明实施例提出的一种存放备份数据的分布式存储系统,还提出了一种存放备份数据的分布式存储方法,该方法包括备份数据的存放、数据恢复以及备份数据垃圾回收。在进行备份数据的存放、数据恢复以及备份数据垃圾回收之前,首先需要将原始数据写入存储节点。将原始数据写入存储节点的方法是:

s1:向元数据管理节点发送写入请求,以对象的方式写入。

s2:元数据管理节点按照就近原则选择存储节点,将原始数据按照数据块的方式写入存储节点。在此时需要将将原始数据按照64m大小对数据流进行切块,其中数据块的数量=[原始数据的大小(m)/64(m)]+1

s3:存储节点将写入的所有数据块的信息如写入的位置、客户端、数据版本等信息进行哈希校验,并将哈希校验值反馈给元数据管理节点作为元数据。

s4:所述元数据管理节点接收到从存储节点反馈元数据后,通过散列算法再将数据块进行副本拷贝,并将副本调度到另外存储节点进行存放,待副本数据创建完毕后,将副本数据的信息更新至元数据。

现在结合图3所示,对一种存放备份数据的分布式存储方法中备份数据的存放的流程作具体的说明。

在步骤s301中,开始处理该流程。

在步骤s302中,计算备份数据的哈希校验值。

在步骤s303中,将备份数据的哈希校验值和原始数据的哈希校验值进行对比,判断其对比的结果是否相同。如果相同,说明备份数据和原始数据相同,未被修改,则转向步骤s304。如果不相同,说明备份数据被修改,则转向步骤s306。

在步骤s304中,在元数据中添加一条新的版本记录。

在步骤s305中,在步骤s304中增加的新的版本记录指向原始数据。

在步骤s306中,在元数据中增加备份数据的版本记录和数据块映射表。

在步骤s307中,元数据管理节点选取一台存储节点将所述备份数据写入存储节点。

在步骤s308中,备份被修改过的所述备份数据的副本。

在步骤s309中,根据被修改过的所述备份数据更新元数据信息。

在步骤s310中,流程结束。

本发明实施例中还介绍一种存放备份数据的分布式存储方法中数据恢复的方法,其具体的过程为:

通过元数据块找到待恢复数据的备份数据块所在位置;

计算待恢复数据的备份数据块的哈希值,和存储在所述元数据管理节点的备份数据的哈希值进行比对,如果相同,则恢复;如果不相同,则读取该所述备份数据的原始数据,将计算出的待恢复数据的备份数据块的哈希值和原始数据的哈希值进行比对,如果相同,则恢复原始数据;如果不相同,则备份数据和原始数据失效。

下面结合图4所示,对一种存放备份数据的分布式存储方法中,文件颗粒度恢复的流程做具体的说明:

在步骤s401中,开始处理该流程。

在步骤s402中,扫描待恢复数据的元数据块,包括文件信息、客户端、用户、路径以及用户名等。

在步骤s403中,获取待恢复数据的元数据。

在步骤s404中,按照元数据中的记录组合数据块。

在步骤s405中,由元数据管理节点选取一台存储节点提供服务。

在步骤s406中,存储节点提供组合后的数据文件。

在步骤s407中,流程结束。

本发明实施例中还介绍一种存放备份数据的分布式存储方法中备份数据垃圾回收的方法。

在步骤s501中,开始处理该流程。

在步骤s502中,扫描备份数据所有的元数据块,获取元数据的过期时间信息。

在步骤s503中,判断备份数据是否过期,判断的依据是当前的系统时间和元数据块对照表中的过期信息相比。如果前的系统时间未超过元数据块对照表中的过期信息,则文件未过期,则转向步骤s508,该流程结束。如果前的系统时间超过元数据块对照表中的过期信息,则文件过期,则转向步骤s504。

在步骤s504中,判断是否存在和过期文件相同哈希值的未过期文件。如果存在,则转向步骤s505。如果不存在,则转向步骤s506。

在步骤s505中,删除该过期文件的元数据。

在步骤s506中,删除该过期文件的元数据,同时执行步骤s507。

在步骤s507中,删除该过去文件元数据相关联的数据块。

在步骤s508中,该流程结束。

尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1