基于数据分块冗余和虚拟化存储的在线备份方法

文档序号:6511650阅读:149来源:国知局
专利名称:基于数据分块冗余和虚拟化存储的在线备份方法
技术领域
本项发明属于网络通信技术领域,具体涉及一种网络在线备份方法,特别是基于数据分块冗余和虚拟化存储的在线备份方法。
背景技术
网络在线备份是一种基于网络的数据备份,也就是说,用户通过网络把数据备份到异地的数据服务器上,而不是本地的硬盘上,通过对异地数据服务器的有效管理和保护,就可以最大程度的保护用户数据,从而在用户数据丢失的情况下,可以方便的恢复数据,提高数据的安全性和容灾能力。
图1是基本的网络在线备份结构图。如图所示,通常网络在线备份方法包括两种不同用途的服务名字服务和数据服务。名字服务是用户直接通讯的服务,用于记录用户的目录空间结构、访问权限以及管理数据服务,用于响应用户的请求;数据服务向名字服务注册,以便向用户提供空间存储服务。
通常网络在线备份具有多种数据访问方式,数据加密传输和存储,定时备份计划,数据共享等功能,用来方便用户的使用。而其核心是保护数据的安全性,目前一般采用冗余的数据存储策略将数据服务器分散在不同的地理位置,保存数据的多份拷贝,来避免自然灾害带来的数据丢失。采用硬盘的冗余策略,即RAID技术(冗余磁盘阵列技术),保证硬盘上数据的安全。数据服务器存放处采用24*7小时的监控,甚至采用空气过滤系统,防水防火系统,UPS电源保护等来保证数据服务器的安全。
上述保护措施对提高数据的安全性有很大的作用,但一方面需要有很大的投入,另一方面得到的效果并不足以满足人们对数据安全性和可靠性的要求,而且基于硬件冗余的方法扩展性差,添加删除新的数据服务器往往比较麻烦。随着对数据安全性的要求越来越严格,对系统的扩展性的要求越来越高,如何用较低的成本获得高的数据安全性和可靠性,并保证系统的可扩展性越来越受到人们的重视,本发明正是基于解决上述的需要而提出的。

发明内容
为了满足上述要求,本发明的目的在于提供一种基于数据分块冗余和虚拟化存储的在线备份方法,从而用较低的成本获得高的备份数据安全性和可靠性,并提供良好的扩展性。
为了实现上述目的,本发明提供了一种通过将文件分解成碎片实现数据分块冗余以及虚拟化数据服务进而达到用廉价硬件成本获取高数据安全性、可靠性和系统扩展性的方法。
本发明是这样实现的基于数据分块冗余和虚拟化存储的在线备份方法,包括以下部分1.数据服务虚拟化数据服务是一个提供数据服务的个体,提供的数据服务包括文件上传、下载、删除等。
数据服务池是多个数据服务的集合,对外是一个整体,使用者并不知道数据服务池内部的结构,对使用者是透明的,提供虚拟化的数据服务,并保证服务的质量;对内而言,数据服务可自由的加入、退出数据服务池,而不影响使用者。
名字服务是用户直接通讯的个体,提供管理服务,包括用户空间目录结构管理,用户权限管理,处理用户请求等。
每个数据服务可位于相同的机器上,也可以位于不同的机器上。数据服务只有向数据服务池注册后才能提供服务,数据服务池监控服务负责管理数据服务的注册、退出和选择,为名字服务提供有保证的数据服务。
图2是数据服务虚拟化结构图,如图所示,该部分主要的方法步骤是1)将多个数据服务组成数据服务池。首先将每个数据服务注册到数据服务池中,然后分别在每个数据服务上部署各自的服务监控代理,服务监控代理是与数据服务绑定的,可记录数据服务的运行和负载情况,并监控数据服务的运行,周期性的将数据服务的信息提供给数据服务池监控服务。
2)部署数据服务池监控服务。数据服务池监控服务与数据服务池绑定,负责收集数据服务池中各个数据服务的运行负载信息,并对服务能力以及服务能力变化趋势进行综合的评估,服务能力的评估包括实时的能力评估和能力的变化趋势评估,这样更能反映总服务能力的好坏。数据服务池监控服务不断的收集各个注册数据服务的信息,动态的设置数据服务的服务能力,例如是否存活,是否可以提供服务,服务能力高低,能力变化趋势预测等,并等待名字服务的服务请求。
3)部署名字服务,并建立与数据服务池监控服务的联系。名字服务是与用户直接通讯的,用户的请求都是由名字服务处理的。名字服务根据用户的需求向数据服务池监控服务发送请求,进而获得所需要的服务。
部署之后,便可提供虚拟化的存储服务,当用户向名字服务请求服务时,名字服务向数据服务池监控服务发出数据服务请求,数据服务池监控服务利用评估的数据服务性能参数,动态选择服务能力较好的数据服务提供给名字服务,可按照不同的需要运用不同的选择策略,满足不同条件下不同用户的不同需要。例如可提供不同用户不同的服务质量等。
名字服务得到数据服务后,进而为用户服务。对名字服务和用户来说,提供的数据服务是数据服务池监控服务提供的,是数据服务池中服务能力较好的一组数据服务,实现了数据服务的虚拟化。
如上述步骤建立的数据服务池是一个虚拟的存储服务池,对内可不断添加新的数据服务,数据服务也可自由的退出,所有这些都不影响用户的正常使用,这样就可以根据系统负载动态的对数据服务能力进行调整,具有良好的扩展性,例如可在系统负载加大时添加新的数据服务,提高系统吞吐量,在系统负载减小时退出部分数据服务,节省大量的资源开销。同时由于数据服务池是一个整体,因此只要求数据服务池的整体服务能力,从而降低对单个数据服务的要求,可以采用廉价的硬件成本得到高的服务能力,节省了大量的成本;对外则可保证提供持续的具有良好服务能力的数据服务。
2.用户数据分块冗余用户所要备份的文件采用数据分块冗余机制,传统的提高数据可靠性的机制有副本机制和硬件RAID冗余机制。副本机制是保存文件的多个副本,进而在原文件不可用时,利用文件的副本恢复原文件来保证数据的可靠性,但需要浪费大量的存储空间;硬件的RAID冗余机制是利用奇偶校验机制来保证数据的可靠性,但稳定性不高;与前两者不同,数据分块冗余机制是将文件分解成多个碎片,随后将碎片分散,恢复文件时,不需要全部碎片即可恢复文件,从而提高了数据的安全性和可靠性,对空间的浪费较小,稳定性也高。
图3是数据分块冗余示意图。数据分块冗余机制的步骤可分为两部分,一是用户文件备份部分;二是用户文件恢复部分。
用户文件备份部分的步骤如下1)用户文件的分解。在用户向名字服务请求文件备份服务后,用户文件不是直接传送到服务器的存储空间,而是首先将文件分解成多个碎片,并根据分解的情况,记录分解参数,分解参数包括碎片个数、碎片大小等信息。
2)数据服务的获取。由名字服务向数据服务池监控服务发出请求,由此可得到一组满足需要的数据服务。
3)碎片的分发存储。将碎片分发到由步骤2的得到的多个数据服务上去,同时记录各个碎片的分发信息,包括碎片与数据服务的对应关系等。
4)文件元数据的建立与保存。由步骤1得到的分解参数和步骤3得到的碎片分发信息,构造文件元数据信息,文件元数据信息描述了文件的基本信息、文件与碎片的对应关系以及碎片与数据服务的对应关系。例如文件名、文件大小、文件分解参数,碎片个数,碎片存放位置等,在文件恢复时也要用到。建立文件元数据信息之后,将它保存在名字服务上。至此完成了文件的备份。
用户文件恢复的步骤如下1)文件元数据的取得。在用户向名字服务请求文件恢复后,从名字服务上取得该文件的元数据,进而从元数据中取得文件的分解参数,碎片个数以及碎片与数据服务的对应关系等。
2)碎片的获取。根据步骤1得到的碎片与数据服务的对应关系,从数据服务上取回碎片。并不需要取回所有的碎片,只需要取回满足文件恢复需要数目的碎片即可。
3)碎片的重组和原文件的恢复。根据步骤1得到的分解参数信息,对碎片进行重组,继而恢复原文件。
以上是发明的步骤,该方法的好处是通过数据分块冗余机制把文件分成碎片,可保证单个碎片是没有意义的二进制流文件,从单个碎片中不能得到原文件的任何可用信息,并且利用单个碎片不能恢复原文件,因此对原文件的窃听是不可能的,从而保证了数据的安全性。
不同的碎片存放在不同的数据服务上,各个数据服务是独立的,恢复文件需要取得碎片,但并不需要所有的碎片,假定文件分解成n个碎片,则只需要n个碎片中的任意m个碎片(m<n)即可恢复原文件,因此允许有限数量的碎片丢失,却并不影响原文件的恢复,从而保证了数据的可靠性。
此外碎片的分解参数是可以调节的,碎片数目也是可调节的,碎片数目越多安全性越高,可根据实际的数据安全需要和成本的高低来调节数据分块冗余的程度,有良好的灵活性。
以上是本发明两个部分的方法步骤,可以看到基于数据分块冗余和虚拟化存储的在线备份方法,通过数据分块冗余和数据服务虚拟化的结合使用,大大提高了数据的安全性,可靠性,并具有良好的系统可扩展性。
根据本发明的基于数据分块冗余和虚拟化存储的在线备份方法,不必借助昂贵的硬件投入、硬件冗余等传统措施,同样可以达到高的数据安全性、可靠性,扩展性。当然在传统方法的基础上使用本发明的方法则可以有更好的效果。


下面结合附图对本发明进一步详细地说明图1是基本的网络在线备份结构图;图2是数据服务虚拟化部分结构图;图3是软件冗余示意图;图4是服务器端的数据服务虚拟化结构图;图5是客户端使用软件冗余的数据流图。
具体实施例方式
下面参照本发明的附图,更详细的描述出本发明的最佳实施例。
网络在线备份系统一般分为客户端和服务器端这两个部分,其中服务器端一般又可分为名字服务器和数据服务器群。本发明的两个部分数据服务虚拟化可用在服务器端;数据分块冗余可用在客户端。
图4是数据服务虚拟化运用在服务器端的结构图。如图所示,数据服务池是一个虚拟的存储池,可不断添加新的数据服务,有良好的扩展性,有多个数据服务组成,不同的数据服务可位于相同机器上,也可分布在多台机器上。
1.将多个数据服务组成数据服务池。注册数据服务,并在每个数据服务上部署服务监控代理,它收集运行时信息,例如CPU的负载、磁盘空间、可用内存大小、网络流量大小、当前服务人数等信息,并周期性的向数据服务池监控服务提交数据。
2.部署数据服务池监控服务,它主要有四部分组成,信息收集模块、性能评估模块、日志统计模块、服务选择模块。
信息收集模块负责周期性的收集池中各个数据服务的当前运行负载信息,并将收集到的信息发送给性能评估模块和日志统计模块。性能评估模块对数据服务当前性能和负载做实时的分析和评估,主要的根据是诸如CPU、内存、当前服务个数、可用内存、网络流量等对服务能力影响的大小。分别给各个影响服务能力的因素赋与不同的影响因子,从而求出总的实时服务能力。日志统计模块负责日志记录和历史信息统计,通过分析历史负载和服务能力信息,得到历史服务能力以及历史能力变化规律,从而预测数据服务的服务能力变化趋势。
服务选择模块等待名字服务的服务选择请求,它根据服务评估模块提供的实时服务能力,结合日志统计模块提供的历史服务能力以及服务能力变化趋势,评估每一个数据服务的总服务能力和变化趋势,以备数据服务选择时使用。
3.部署名字服务,并建立与数据服务池监控服务的联系,之后等待用户请求。服务选择有多种策略,这里设定不同的用户有不同的服务质量等级,当名字服务得到用户请求后,根据用户的服务质量等级向数据服务池监控服务发送服务选择请求,上述的服务选择模块根据名字服务的需要,动态的选择数据服务,并将之返回给名字服务,名字服务将之提供给用户使用。
图5是客户端使用数据分块冗余的数据流图。如图所示,数据分块冗余可分为四个部分文件分解模块、碎片分发模块、碎片收集模块、碎片重组模块。
1.用户文件的分解。用户备份的文件首先通过文件分解模块,该模块根据用户设定的分解参数将文件分解为本地的多个碎片,碎片的个数、大小可以根据需要做调节,以满足不同冗余度的需要,分解之后要记录文件分解参数信息,之后将它们放入碎片分发任务队列中等待处理。
2.数据服务的获取。碎片分发模块检测碎片分发任务队列,一旦发现有任务可调度,便取出任务,并向名字服务发送数据服务请求,名字服务收到请求后,进而请求数据服务池监控服务,获得经过选择的多个数据服务,并发送给碎片分发模块。
3.碎片的分发存储。碎片分发模块得到可用的数据服务后,开始碎片分发。为了保证传输过程中的保密性,碎片分发模块首先将每个碎片进行加密,并进行压缩以节省带宽,随后分别分发到前面得到的数据服务上,并记录每个碎片与数据服务的对应关系等碎片分发信息。
4.文件元数据的建立与保存。分发完毕后碎片分发模块根据分解参数和碎片分发信息构造文件元数据信息,其中包括文件名、文件大小、文件所有者、文件分解参数、碎片个数、碎片大小、碎片存储位置等信息,并将之提交给名字服务,从而完成文件的备份。
当用户恢复文件时,需要特定数量的碎片以及文件元数据信息,只有当两者获得之后,才能进行文件的重组,需要的模块有碎片收集模块和碎片重组模块。具体的步骤如下1.文件元数据的获取。用户向名字服务请求恢复文件,则碎片收集模块与名字服务联系,取得需要恢复文件的元数据信息,从而取得碎片分解信息和分解参数信息,例如碎片的位置、分解算法参数等。
2.碎片的获取。碎片收集模块从各个碎片对应的数据服务上取回所需数量的碎片,这里只需取回恢复文件所需的碎片个数,而不需要所有的碎片。之后提交给碎片重组模块。
3.碎片的重组和原文件的恢复。碎片重组模块得到所需碎片和文件元数据信息之后,判断是否可恢复原文件,及判断碎片的数量是否满足要求,如果不满足要求,则向用户报告恢复文件失败,否则利用文件元数据信息重组碎片,从而完成文件的恢复,并提交给用户。
数据服务虚拟化和数据分块冗余在系统中是结合在一起的,实际系统证明,两者的结合达到了理想的效果。此外还可有其他实施方法,例如可将数据服务池部属在同一台机器上,使得池中不同的数据服务有不同的存储区域,例如位于不同的分区,不同的磁盘上,以达到让数据服务彼此之间的错误相关性较小,在客户端利用数据分块冗余将碎片分散,每个碎片对应不同的数据服务,从而达到了RAID的效果,即使分区损坏,磁盘损坏,只要剩下的碎片数目满足碎片重组的碎片数量要求即可保证数据的恢复,并且节省了大量的成本投入。
实际系统表明,基于数据分块冗余和虚拟化存储的在线备份方法提高了数据的安全性、可靠性,提高了系统的扩展性,与传统方法相比,可节省大量成本,在廉价成本投入条件下,仍能取得令人满意的效果。此外,本发明与传统方法是可兼容的,可以很方便的加入到传统方法上来,从而获得更好的效果。
尽管为说明目的公开了本发明的最佳实施例和附图,但是本领域的技术人员可以理解在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容。
权利要求
1.一种基于数据分块冗余和虚拟化存储的在线备份方法,在数据服务端包括以下步骤1)多个数据服务组成数据服务池;2)部署数据服务池监控服务;3)部署名字服务,并建立与数据服务池监控服务的联系;在用户端数据备份包括以下步骤1)将文件分解成多个碎片,并记录分解参数;2)由名字服务向数据服务池监控服务发出请求,获取数据服务;3)将碎片分发到数据服务上去,同时记录碎片的分发信息;4)由分解参数和碎片分发信息,构造文件元数据信息,并将文件元数据信息保存在名字服务上。
2.根据权利要求1所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于,将备份的文件恢复时,包括一下步骤1)用户向名字服务请求文件恢复,从名字服务上获得该文件的元数据信息,进而从元数据中获得文件的分解参数以及碎片与数据服务的对应关系;2)根据获得的元数据信息,从数据服务上取回碎片;3)根据得到的分解参数,对碎片进行重组,从而恢复出原文件。
3.根据权利要求1所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于文件的分解参数包括碎片个数和碎片大小。
4.根据权利要求1所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于将多个数据服务组成数据服务池时,首先将每个数据服务注册到数据服务池中,然后分别在每个数据服务上部署各自的服务监控代理。
5.根据权利要求4所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于部署数据服务池监控服务时,将数据服务池监控服务与数据服务池绑定,数据服务池监控服务收集各个注册数据服务的信息,并等待名字服务的服务请求。
6.根据权利要求1所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于名字服务直接与用户通讯,根据用户的需求向数据服务池监控服务发送请求,进而获得服务。
7.根据权利要求1所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于数据服务池对内可不断添加新的数据服务,数据服务也可自由的退出。
8.根据权利要求2所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于将备份的文件恢复,从数据服务上取回碎片时,不需要取回所有的碎片。
9.根据权利要求1所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于不同的碎片存放在不同的数据服务上,各个数据服务是独立的。
10.根据权利要求1所述的基于数据分块冗余和虚拟化存储的在线备份方法,其特征在于不同的数据服务可位于相同的机器上,也可以位于不同的机器上。
全文摘要
本发明提供了一种基于数据分块冗余和虚拟化存储的在线备份方法,从而用较低的成本获得高的备份数据安全性和可靠性,并提供良好的扩展性。本发明通过将文件分解成碎片实现数据分块冗余以及虚拟化数据服务进而达到用廉价硬件成本获取高数据安全性、可靠性和系统扩展性的方法。基于数据分块冗余和虚拟化存储的在线备份方法,通过数据分块冗余和数据服务虚拟化的结合使用,大大提高了数据的安全性,可靠性,并具有良好的系统可扩展性。根据本发明的基于数据分块冗余和虚拟化存储的在线备份方法,不必借助昂贵的硬件投入、硬件冗余等传统措施,同样可以达到高的数据安全性、可靠性,扩展性。
文档编号G06F11/07GK1633086SQ20051000291
公开日2005年6月29日 申请日期2005年1月26日 优先权日2005年1月26日
发明者田敬, 张大为, 高乾, 代亚非, 李晓明 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1