CN101183323A - 一种基于指纹的数据备份*** - Google Patents
一种基于指纹的数据备份*** Download PDFInfo
- Publication number
- CN101183323A CN101183323A CNA2007101687158A CN200710168715A CN101183323A CN 101183323 A CN101183323 A CN 101183323A CN A2007101687158 A CNA2007101687158 A CN A2007101687158A CN 200710168715 A CN200710168715 A CN 200710168715A CN 101183323 A CN101183323 A CN 101183323A
- Authority
- CN
- China
- Prior art keywords
- backup
- job
- server
- file
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于指纹的数据备份***,属于计算机存储备份技术领域,目的在于降低数据备份的管理、存储以及网络开销,提高备份性能。本发明包括备份服务器、备份代理、存储服务器和Web服务器,它们通过网络相互通信完成数据备份与恢复;本发明采用基于锚的文件分块技术识别备份文件的冗余数据,具有修改稳定性,计算开销小;数据分块以其指纹为索引存储在存储服务器的磁盘阵列上,消除了冗余数据的备份,节省磁盘存储空间;数据分块一旦存储就不再擦除,可以连续追加在磁盘上,消除了磁盘存储碎片;采用有效的备份缓冲策略,减少了备份的网络开销,提高了数据备份速度,降低了备份对应用服务器的影响。
Description
技术领域
本发明属于计算机存储备份领域,具体涉及一种数据备份***。
背景技术
在当今这个知识***的信息时代,无论对企业还是个人来说,数据都是一项弥足珍贵的资源。数据丢失轻则影响企业业务连续性,使其丧失一时的竞争优势,重则能使一个企业破产倒闭。引起数据丢失的原因很多,包括***软硬件故障、人为操作失误或破坏以及不可抗拒力(自然灾害、战争)等。为了保护数据免遭不测,传统的方法是周期性地把数据拷贝到可移动的媒介比如磁带、光盘上,然后再离线运送到一个相对安全的地方以便在必要时恢复这些数据。应当指出,这种传统的数据保护方法存在一些明显的缺点:(1)、可移动的存储介质比如磁带、光盘等随着时间的流逝,会出现磨损或损坏使其存储可靠性降低因而不适合作数据的长期存储介质。(2)、作为备份大容量数据的常用存储媒介的磁带,其读写速度往往很慢,而且由于是顺序存储设备,在恢复数据时通常会出现频繁的机械倒带操作,如果备份数据分布在几条磁带上,还需费时的装卸操作。这使得利用磁带进行数据备份和恢复是一件相当耗时的工作。(3)、需要雇用专人把备份数据运送到远程站点,并且保证运输和储存过程中的数据安全。由此可以看出,传统的数据备份需要人工介入完成许多任务,是一项代价高昂的、繁琐的工作。为了提高数据备份和恢复的效率,克服传统的数据保护技术的缺点,近二十年来,世界上一些知名的IT企业或研究机构研制出了形形色色的数据备份***。包括IBM的TotalStorage,HP的OpenView存储镜像软件、CASA、XPCA以及EVACA,EMC的SRDF和MirrorView,VERITAS的NetBackup等等。这些商业***没有重复数据删除功能,为了存储在备份中产生的大量冗余数据,往往需要使用磁盘到磁带(D2T)技术,即使用高速磁盘作为备份缓冲区以提高在线备份效率,然后在后台把磁盘缓冲区中的备份数据迁移到磁带库或光盘库等低速大容量的存储媒介上,故其后台存储设备还是需要耗费大量的人力物力进行日常维护。由于磁盘存储较磁带存储具有管理方便、存取速度快等优点,随着磁盘存储技术的发展,使用磁盘存储数据的备份***越来越受到重视。目前的磁盘存储技术能够很容易搭建一个TB甚至PB级的磁盘存储***。每比特磁盘存储的价格越来越便宜使得利用磁盘永久归档数据变得现实起来。对于一个基于磁盘的数据备份***来说,备份数据永久存储于磁盘而不擦除具有许多优点:首先,数据可以连续地写到磁盘上,不会因为空间回收而产生磁盘碎片,其次,用户的数据历史得到完整的保存,用户可以很方便地浏览文件的任一历史版本,第三,有利于保护用户的备份数据,避免了用户误操作而删除重要的数据。然而,对于一个永久存储的基于磁盘的备份***来说,最大的挑战来源于用户不断增加的备份数据。通常,企业的数据具有高度的冗余,大量重复的数据和文件存储在***中,一个文件的多个编辑版本之间也存在大量重复的内容。目前广泛使用的基于文件的备份技术不能识别文件之间的冗余数据,导致越来越多的重复数据备份到***中,不但降低了备份***的磁盘空间利用率,而且无端通过网络传输了大量冗余数据,增加了数据备份的网络开销,延长了数据备份时间。
由此可见,开发一个永久存储的基于磁盘的备份***,并采用新的数据备份技术清除备份的冗余数据,提高***的存储效率,是具有积极意义的。
发明内容
本发明提出一种基于指纹的数据备份***,***采用磁盘永久存储备份数据并采用基于指纹的数据备份技术以删除备份中的冗余数据,目的在于降低数据备份的管理、存储以及网络开销,提高备份性能。
本发明的一种基于指纹的数据备份***,包括备份服务器、备份代理、存储服务器和Web服务器,它们通过网络相互通信完成数据备份与恢复,其特征在于:
所述备份服务器装有配置文件和目录数据库,备份服务器的配置文件中记录用户定义的作业对象,作业对象包含指定***操作作业运行的属性,备份服务器通过作业对象控制着整个数据备份和恢复的过程;目录数据库存储作业记录,作业记录保存作业对象运行的管理信息;
所述备份代理单元安装于网络中每一个需要备份数据的主机上,备份时由备份代理单元从所在主机的文件***中读取需要备份的文件,对文件进行基于锚的分块并计算分块的指纹,把指纹和部分需要的分块数据通过网络送往存储服务器;恢复时备份代理单元通过网络从存储服务器接收文件数据并写到所在主机的文件***中指定的目录下;
所述存储服务器安装有大容量磁盘阵列,大容量磁盘阵列是数据备份的目的地,备份时通过网络从相应的备份代理单元接收指纹或数据分块,把数据分块存储到磁盘上,并建立文件的索引;恢复时则从大容量磁盘阵列根据文件索引重构文件,并把文件数据通过网络送到相应的备份代理;
所述Web服务器是本***的B-S模式网页用户管理界面,通过登录Web服务器,用户既可以指定***完成交互式的备份或恢复作业、监视***自动调度型作业的运行情况,还可以修改备份服务器的配置文件、定制作业对象,进行设备管理。
所述的基于指纹的数据备份***,其特征在于,所述备份服务器包括备份服务器初始化模块、命令监听模块、命令处理模块、作业处理模块和网络通信模块;
所述备份服务器初始化模块执行初始化工作,包括读取配置文件、建立内存中的资源链表、检查目录数据库状态、保证配置文件和目录数据库的数据一致性和完整性、启动命令监控端口、接受来自Web服务器的用户命令、初始化作业队列和用户命令队列、向作业队列中加载作业对象、启动作业和网络监控服务;
所述命令监听模块是由***生成的一个网络监听线程,对Web服务器的连接请求进行认证,保证只有经过***授权的Web服务器才能连接***,监听已通过认证的Web服务器发送来的命令请求;收到命令请求时,将命令请求加入到用户命令队列中等待***处理;
所述命令处理模块包括一个用户命令队列和N个命令工作线程,当用户命令队列溢出时,命令监听模块转入睡眠状态;这些命令工作线程不断从用户命令队列中读取命令并执行,根据所执行命令的不同完成不同的功能;当命令监听模块向用户命令队列中加入一个命令时,如果当前没有空闲的命令工作线程且活跃的命令工作线程的数目没有达到N时,就生成一个新的命令工作线程;命令工作线程每次从用户命令队列中读取命令时都检查命令监听模块的状态,如果其处于睡眠状态则唤醒它;
所述作业处理模块包括一个作业队列、L个作业工作线程和一个作业队列加载线程,当作业队列发生溢出时,作业队列加载线程进入睡眠状态;作业工作线程不断从作业队列中取作业对象并执行,根据作业对象属性的不同调用不同的资源、实现不同的功能;作业队列加载线程进行作业调度,检查作业资源链中每个作业对象的调度策略属性,把需要调度运行的作业对象加入作业队列中,如果当前没有空闲的作业工作线程且活跃的作业工作线程的数目没有达到L时,就生成一个新的作业工作线程;作业工作线程每次从作业队列中读取作业对象时都检查作业队列加载线程的状态,如果其处于睡眠状态则唤醒它;
所述网络通信模块把标准的网络通信应用编程接口进行封装,向命令工作线程和作业工作线程提供网络通信接口,网络通信接口实现备份服务器、备份代理和存储服务器之间的数据传输协议。
所述的基于指纹的数据备份***,其特征在于,所述备份代理包括备份代理初始化模块、请求监听模块、作业处理模块、文件分块模块和网络通信模块;
所述备份代理初始化模块,执行初始化工作,包括读取备份代理配置文件、建立内存资源链表、初始化作业队列、启动备份服务器请求监听模块;
所述请求监听模块监听网络上备份服务器的连接请求,认证连接的备份服务器,认证通过后生成一个网络连接套接字和此备份服务器通信并加入作业队列中;
所述作业处理模块包括一个作业队列和M个作业工作线程,当作业队列溢出时,请求监听模块转入睡眠状态;作业工作线程从作业队列中取出一个网络连接套接字后,首先为作业建立一个作业控制记录,把网络连接套接字链入作业控制记录的成员变量中,然后通过此网络连接套接字和备份服务器交互,把备份服务器作业对象的有关属性通过变换后赋值给作业控制记录的相应成员变量;然后用从备份服务器处得到的作业票据ticket连接相应的存储服务器,产生一个和存储服务器通信的网络连接套接字并将之链入作业控制记录的成员变量中;当请求监听模块向作业队列中加入一个网络连接套接字时,如果当前没有空闲的作业工作线程且活跃的作业工作线程的数目没有达到M时,就生成一个新的作业工作线程;作业工作线程每次从作业队列中取一个网络连接套接字时都检查请求监听模块的状态,如果其处于睡眠状态则唤醒它;
所述文件分块模块接受作业处理模块中作业工作线程的命令执行备份作业的文件分块任务,在客户机文件***上打开文件集中的每一个文件,对文件进行基于锚的分块并计算分块指纹,和相应的存储服务器协调执行第一备份过程的备份算法;
所述网络通信模块由作业的网络连接套接字组成,备份代理的每个作业都拥有两个网络连接套接字,分别用于和该作业对应的备份服务器作业以及存储服务器作业通信。
所述的基于指纹的数据备份***,其特征在于,所述存储服务器包括存储服务器初始化模块、连接监控模块、作业票据表、作业处理模块和网络通信模块,以及索引缓冲区、分块缓冲区、分块哈希表和磁盘日志;
所述存储服务器初始化模块执行初始化工作,包括解析存储服务器配置文件,建立内存资源链表,启动相关服务线程;
所述连接监控模块监控备份服务器和备份代理的连接请求,对连接的备份服务器进行认证,认证通过后生成一个网络连接套接字和此备份服务器通信并加入作业队列中;对连接的备份代理,则根据其出示的作业票据ticket检查作业票据表以对其进行认证,认证通过后生成一个网络连接套接字和此备份代理通信并链接到相应作业控制记录的成员变量中;
所述作业票据表用于存储对备份代理作业进行认证的票据;
所述作业处理模块包括一个作业队列以及W个作业工作线程,当作业队列溢出时,连接监控模块转入“拒绝备份服务器连接请求”状态;作业工作线程从作业队列中取出一个网络连接套接字后,首先为作业建立一个作业控制记录,把网络连接套接字链入作业控制记录的成员变量中,然后通过此网络连接套接字和备份服务器交互,把备份服务器作业对象的有关属性通过变换后赋值给作业控制记录的相应成员变量,并随机生成一个作业票据ticket登记到作业票据表中且向备份服务器作业对象传送此作业票据ticket;当连接监控模块向作业队列中加入一个网络连接套接字时,如果当前没有空闲的作业工作线程且活跃的作业工作线程的数目没有达到W时,就生成一个新的作业工作线程;作业工作线程每次从作业队列中取一个网络连接套接字时都检查连接监控模块的状态,如果其处于“拒绝备份服务器连接请求”状态则取消这种状态以使它接受备份服务器连接请求;
所述网络通信模块由作业的网络连接套接字组成,存储服务器的每个作业都拥有两个网络连接套接字,分别用于和该作业对应的备份服务器作业以及备份代理作业通信;
所述索引缓冲区是存储服务器作业执行第一备份过程和第二备份过程的基础设施,索引缓冲区以一个内存哈希表实现,用于存储本作业链中本作业实例Jobx(tn)的前一个作业实例Jobx(tn-1)包含的所有指纹以及在本作业运行过程中新生成的指纹;
所述分块缓冲区是存储服务器作业执行第一备份过程和第二备份过程的基础设施,分块缓冲区以一个独立的磁盘阵列实现,用以临时存储第一备份过程中其指纹在索引缓冲区中没有被找到的数据分块;
所述分块哈希表是存储服务器作业执行第二备份过程的基础设施,分块哈希表以一个独立的磁盘阵列实现,用以建立分块指纹到此分块在磁盘日志的存储地址的映射;
所述磁盘日志是存储服务器作业执行第二备份过程的基础设施,磁盘日志以一个独立的磁盘阵列实现,用以存储数据分块和以分块形式存储的文件索引。
本发明的优点为:
1、采用基于锚的文件分块技术把文件分成变长大小的块以识别文件内部或文件之间的冗余数据,具有修改稳定性,对一个文件的修改仅仅影响修改区域内相邻的数据块,其他数据块的边界不会发生移动。这样在对一个文件进行增量备份时,仅仅修改过的几个数据块需要备份,其他的数据块可以和以前的备份文件共享;使用窗口滑动计算,计算开销小。
2、数据分块以其指纹为索引存储在存储服务器的磁盘阵列上,把数据存储地址和内容关联起来,改变了数据存储地址和内容相分离的传统概念,消除了冗余数据的备份,节省了磁盘存储空间;
3、数据分块一旦存储就不再擦除,数据分块可以连续追加在磁盘上,消除了磁盘存储碎片;用户的数据历史得到完整保存,用户可以很方便地浏览文件的任一历史版本;避免了用户误操作而删除重要数据。
4、采用有效的备份缓冲策略,减少了备份的网络开销,提高了数据备份速度,降低了备份对应用服务器的影响。
附图说明
图1为本发明结构示意图;
图2为备份服务器结构示意图;
图3为备份代理结构示意图;
图4为存储服务器结构示意图;
图5为文件在磁盘日志上的存储示意图;
图6为磁盘日志上多个文件共享数据分块/索引块示意图;
图7为本发明的索引缓冲区结构图;
图8为基于锚的文件分块技术中,文件分块示意图。
具体实施方式
下面结合附图和实施例对本发明进一步详细说明。
1、***总体结构
图1为本发明***体系示意图,本发明包括备份服务器、备份代理、存储服务器和Web服务器,它们通过网络相互通信完成数据备份与恢复。
图2为备份服务器结构示意图;备份服务器包括备份服务器初始化模块、命令监听模块、命令处理模块、作业处理模块和网络通信模块;还装有配置文件和目录数据库。
备份服务器是整个网络备份***的指挥中枢,它通过作业对象控制着整个数据备份和恢复的过程。备份服务器的作业对象给用户提供了一个定制备份/恢复作业的窗口。作业对象包含了许多属性,这些属性指定了***如何操作作业运行。如备份代理属性指定了作业从哪一台主机上备份/恢复数据;文件集属性指定了作业要备份/恢复的目录;调度策略属性指定了***调度本作业运行的策略等等。记一个作业对象为Jobx,作业对象在时刻t被调度运行时产生一个运行实例Jobx(t)。作业对象Jobx按时间顺序的一序列运行实例Jobx(t0),Jobx(t1),...Jobx(tn)(t0<t1<...<tn)组成了本作业对象的一条作业链,记为Jobx(t0,t1,...tn)。所述备份服务器同时维护着一个目录数据库用于记录Jobx(t)的管理信息。具体地说,Jobx(t)的管理信息存储在目录数据库中本作业的作业记录Jobx(t).Record中。
目录数据库:用来存储作业运行的管理信息,即Jobx(t).Record。Jobx(t).Record主要存储本作业包含的文件的根块,本作业的指纹文件Jobx(t).FF等。每一个运行完成的作业Jobx(t)都在目录数据库中保存一份指纹文件Jobx(t).FF,Jobx(t).FF存储作业Jobx(t)所包含的所有指纹。Jobx(tn).FF用于对作业Jobx(tn+1)的索引缓冲区进行初始化。
图3为备份代理结构示意图;备份代理包括备份代理初始化模块、请求监听模块、作业处理模块、文件分块模块和网络通信模块。
图4为存储服务器结构示意图;存储服务器包括存储服务器初始化模块、连接监控模块、作业票据表、作业处理模块和网络通信模块,以及索引缓冲区、分块缓冲区、分块哈希表和磁盘日志。
存储服务器管理着一个大容量的磁盘阵列(RAID)用以存储数据分块。分块以其指纹为索引存储在磁盘阵列上。数据分块一旦写到磁盘上就不再擦除,这样整个磁盘阵列就像一个日志,数据分块无间隔地追加在磁盘上,消除了磁盘存储的碎片。用于存储数据分块的磁盘被称为磁盘日志。存储服务器使用一块专用的磁盘阵列存储分块哈希表,分块哈希表用以建立分块指纹到此分块在磁盘日志的存储地址的映射。备份文件的所有数据分块通过索引块进行索引,一个文件的所有索引块组成了一棵索引树。同时每一个文件都拥有唯一的一个分块叫根块,根块存储文件的索引树的根的索引,同时文件的元数据以及一些管理信息也存储在根块上。文件的根块以及索引块也作为数据分块存储在磁盘日志上。存储服务器采用备份缓冲策略以提高***的数据备份速度。具体为:(1)采用内存索引缓冲区存储本作业链中本作业实例Jobx(tn)的前一个作业实例Jobx(tn-1)包含的所有指纹以及在本作业运行过程中新生成的指纹。(2)采用一块专用的磁盘阵列作为分块缓冲区用以临时存储备份过程中其指纹在索引缓冲区中没有被找到的数据分块。(3)一个作业的备份过程被分成两个阶段完成,这两个阶段分别记为第一备份过程和第二备份过程。第一备份过程由备份代理和存储服务器相互交互完成文件分块的备份,使用索引缓冲区查找分块指纹,使用分块缓冲区存储在索引缓冲区查找过程中没有发现其指纹的数据分块。对备份代理来说,第一备份过程完成后作业的备份过程就算结束了。因为本过程使用内存索引缓冲区进行指纹查询,免去了费时的分块哈希表查询,故而速度很快。第二备份过程由存储服务器在***相对空闲的时候运行。本过程把分块缓冲区中临时存储的数据分块转存到磁盘日志上,使用分块哈希表进行指纹查询。本过程同时建立文件在磁盘日志上的索引树。由于第二备份过程是在后台由存储服务器独自完成,故而对运行备份代理的应用服务器没有影响。恢复文件时,存储服务器根据文件索引重构文件并把文件数据通过网络送到相应的备份代理。
Web服务器:本发明采用B-S模式提供网页用户界面。用户可以在任何地方通过Web浏览器登录***的管理界面以指定***完成交互式的备份或恢复作业、监视***自动调度型作业的运行情况,还可以定制作业、配置备份服务器、进行设备管理等。
2、存储服务器磁盘日志
本发明备份数据分块以其指纹为索引存储在存储服务器的磁盘日志上。这样保证没有相同的两个分块同时存储在磁盘上,因而消除了冗余数据的备份。分块一旦存储就不再擦除,使得分块可以连续的追加在磁盘日志上,消除了磁盘存储碎片。备份文件所属的数据块以索引块为索引。文件的索引块也存储在磁盘日志上。
2.1、分块块头
为了方面管理,每个数据分块的前面都附加了一个块头。块头为***管理,包括完整性检测、文件索引以及分块哈希表的重构提供了必要的信息。块头一共39字节,由以下部分组成:
magic:6个字符的块头标志;
fingerprint:本分块的指纹,共20字节;
type:本数据分块的类型,共有三种不同类型的数据分块,即数据块、索引块和文件的根块,分别记为:dc,ic,rc;
size:本数据分块的大小,不包括块头。对索引块,***规定其大小不能超过16KB;
offset:本数据分块在磁盘日志上的存储地址。
2.2、文件索引
图5所示为文件在磁盘日志上的存储结构。文件所属的数据块以索引块为索引,索引块也存储在磁盘日志上,一个文件的所有索引块组成了一棵索引树;每个文件都在磁盘日志上存储有唯一的一个根块,根块里存储文件索引树的根的索引,同时还存储文件的元数据和本文件的一些管理信息。文件备份完成后,其根块作为作业的管理信息同时也存储到目录数据库的作业记录里。图5中,F0表示一个文件,Di表示数据块,Ii表示索引块,索引块由索引项组成,P(X)表示一个索引项,它是一个三元组<H(X),offset,type>,其中X是被索引的数据分块,H(X)表示数据分块X的指纹,offset表示数据分块X在磁盘日志上的存储地址,type表示数据分块X的类型,X可以是一个索引块Ii,也可以是一个数据块Di,图中的箭头表示被索引块和其索引项的对应关系,M(F0)表示文件F0的元数据以及一些管理信息,索引块I0,I1和I2组成了文件F0的索引树,索引块I0为此索引树的根,R0表示文件F0的根块,它由M(F0)和一个指向文件的索引树的根I0的索引项P(I0)组成。磁盘日志上的所有数据块和索引块都可以被不同的文件所共享。图6所示为不同文件共享数据块和索引块的情况,图中各记号表示的意义和图5相同。
3、存储服务器分块哈希表
本发明存储服务器分块哈希表用以建立分块指纹到此分块在磁盘日志的存储地址的映射,分块哈希表由相同大小的桶组成。分块哈希表所包含的桶数是根据磁盘日志的大小来确定的,磁盘日志的容量越大,则分块哈希表所包含的桶数就越多,以降低桶的哈希冲突的几率。***根据哈希表的桶数取指纹的前n位作为桶号把指纹映射到哈希表的相应的桶里。每个指纹以三元组<fingerprint,offset,type>的形式存储在桶里,其中fingerprint表示此分块的指纹,offset表示此指纹对应的分块在磁盘日志上的存储地址,type表示此指纹对应的分块的类型。如果桶发生哈希冲突,则把指纹的三元组存储在相邻的一个桶里。
4、存储服务器索引缓冲区
图7所示为索引缓冲区的结构。索引缓冲区为一个内存哈希表,它由一个桶组和许多数据链表组成,桶组一共有1024*1024个桶,桶的编号从00000H到FFFFFH,桶可能为空,桶若非空,则里面包含一个指向数据链表的指针,对应一个数据链表,数据链表的表项存储被哈希到本桶中的指纹信息。哈希时,取指纹的前20比特作为桶号把此指纹哈希到相应的桶所指向的数据链表里。
数据链表的表项结构为:
tag:标识符,占4比特,用以指示在第一备份过程和第二备份过程中本指纹的状态;
fingerprintTail:本分块的指纹的后140比特,因为前20比特隐含在桶号中,故这里只需要存储指纹的后140比特;
offset:存储地址,占64比特,如果此项非空,则表示此指纹对应的数据分块在磁盘日志的存储地址;
next:占32比特,指向下一个表项的指针。
图7中“一个指纹”所示为一个指纹7E54F36A4EC62...3B被哈希到索引缓冲区的情况,第(1)步用指纹的前20比特“7E54F”作为桶号(bucketNo)找到编号为7E54FH的桶,第(2)步在此桶所指的数据链表中找fingerprintTail为“36A4EC62...3B”的表项,如果找到则表明指纹7E54F36A4EC62...3B已经存储在索引缓冲区中,如果没有找到,则建立一个新的表项存储此指纹的信息。
索引缓冲区的数据链表表项的tag共有三个不同的数值,其表示的意义如下:
0000:指纹来源于前一个作业的指纹文件,并且在本次备份过程中没有被命中;
1000:指纹来源于前一个作业的指纹文件,并且在本次备份过程中被命中;
1100:指纹是在本次备份过程中新产生的。
一个备份作业Jobx(tn-1)完成后,本作业所包含的所有指纹以二元组<fingerprint,offset>(其中fingerprint表示分块的指纹,offset表示分块在磁盘日志上的存储地址)的形式被保存在文件Jobx(tn-1).FF中,文件Jobx(tn-1).FF被存储在目录数据库的作业记录Jobx(tn-1).Record中。Jobx(tn-1).FF被用来初始化作业Jobx(tn)的索引缓冲区。由于同一个作业链的相邻作业通常共享大量的文件或数据,故使用Jobx(tn-1).FF初始化作业Jobx(tn)的索引缓冲区会提高缓冲区的指纹命中率。
5、备份过程
为方便起见,定义如下记号:
BS:备份服务器作业工作线程;
BA:备份代理作业工作线程;
SS:存储服务器作业工作线程;
F:一个文件;
H:一个指纹;
M(F):文件F的元数据;
R(F):文件F的根块;
H(D):数据分块D的指纹;
D(H):指纹H所对应的数据块/索引块;
F.Index:构建文件F的索引树的内存缓冲区;
index cache:索引缓冲区;
chunk cache:分块缓冲区;
hash table:分块哈希表;
Jobx(tn).FileSet:作业对象Jobx(tn)的文件集;
I(F,level):索引树F.Index第level层包含的索引块的集合。索引树的叶子被定义成0层,叶子结点的父结点为树的第1层,依次类推。
Iw(F,level):I(F,level)中当前被用于存储三元组<H,offset,type>的工作结点;
<H,offset,type>:三元组,H:指纹,offset:分块D(H)在磁盘日志上的存储地址,type:分块D(H)的类型;
5.1、第一备份过程
第一备份过程主要由备份代理作业工作线程和存储服务器作业工作线程协作完成,其步骤为:
(1)SS:使用Jobx(tn-1).FF初始化index cache;
(2)BA:if(Jobx(tn).FileSet为空)转(20),else从Jobx(tn).FileSet中读取一个文件Fi;
(3)BA:传送M(Fi)到SS;
(4)SS:把M(Fi)缓存到chunk cache;
(5)BA:对Fi进行基于锚的文件分块;
(6)BA:计算每个分块的指纹并把这些指纹组成的指纹集合传送到SS;
(7)SS:if(指纹集合为空)转(17),else在指纹集合中取出一个指纹Hj并在index cache中查询此指纹;
(8)SS:if(在index cache查到指纹Hj){
(9)SS:if(tag==0000){tag=1000;把<Hj,offset>缓存到chunkcache;}
(10)SS:else if(tag==1000)把<Hj,offset>缓存到chunkcache;
(11)SS:else if(tag==1100)把<Hj,null>缓存到chunk cache;}
(12)SS:else{把Hj缓存到index cache,tag=1100,offset=null;
(13)SS:请求BA传送D(Hj);
(14)BA:传送D(Hj)到SS;
(15)SS:把<HK,D(HK)>缓存到chunk cache;}
(16)SS:返回步骤(7);
(17)SS:通知BA备份下一个文件;
(18)BA:返回步骤(2);
(19)BA:向BS及SS报告作业Jobx(tn)的结束状态然后退出.
(20)SS:收到BA的作业结束信号后,结束第一备份过程,转入第二备份过程;
(21)BS:收到BA的作业结束信号后,断开和BA的连接,等待SS执行第二备份过程。
5.1.1基于锚的文件分块
在第一备份过程的步骤(5)中,基于锚的文件分块是由备份代理作业工作线程调用备份代理文件分块模块完成的,其步骤为:
(1)以文件的开头48字节b1,b2,...,b48为一个窗口,以式H1=(b1*p47+b2*p46+...+b48)mod M计算文件的第一个窗口的哈希值。上式中p为某个素数,可取17,M为常数,可取232。哈希值存储在变量H1中。
(2)向后滑动一个字节,以式H2=(p*H1+b49-b1*p48)mod M计算文件第二个窗口b2,b3,...,b49的哈希值存储在变量H2中。
(3)以此类推,计算文件的所有窗口的哈希值。
(4)对每个窗口的哈希值,取其低13位组成一个二进制数,如果此数等于预定的某个数(比如61),则确定其相应的窗口为一个锚。
(5)以锚为边界把文件分成大小不一的数据块。
上述基于锚的文件分块遵守如下三个约定:a)如果文件小于48字节,则退出基于锚的文件分块算法,整个文件为一个数据块;b)如果在某一段字节流中包含过多的锚,则舍弃一些锚使得最小的分块不小于2KB(文件末尾的一个分块是唯一的可能小于2KB的分块);c)如果在连续64KB的字节流中都没有锚,则取此64KB为一个分块;
本发明中基于锚的文件分块具有如下两个特点:(1)具有修改稳定性,也就是说对一个文件的修改仅仅影响修改区域内相邻的数据块,其他数据块的边界不会发生移动。这样在对一个文件进行增量备份时,仅仅修改过的几个数据块需要备份,其他的数据块可以和以前的备份文件进行共享。修改稳定性还保证了文件内部以及文件之间的数据相似性不因比特偏移而被遗漏,从而最大限度地检测出文件的重复数据。(2)滑动窗口具有计算方便的优点,其下一个窗口的哈希值可以很容易从前一个窗口的哈希值的基础上计算出来,因而使得基于锚的文件分块具有计算开销小的优点,整个算法的时间复杂度为O(n),其中n为文件包含的字节数。
图8所示为一个文件分块后再对文件编辑时此文件分块的变化情况。从图中可以看出,基于锚的文件分块具有修改稳定性,也就是说对一个文件的修改仅仅影响修改区域内相邻的数据块,其他数据块的边界不会发生移动。a行所示为一个文件被锚分成了B1~B8大小不一的8块,每一块的边界带纹齿的部分为48字节的锚。b、c、d行为对文件进行第1、2、3次修改后,分块的变化情况,带阴影的部分为被修改过的部分。b行:对文件的第1次修改发生在块B4内,修改后并没有产生新的块,仅仅使块B4变成了块B9,其它的块都没有发生改变。这时候的文件备份就只需要把块B9备份过去替代原来的块B4就可以了。c行:对文件的第2次修改发生在块B5内,修改后产生了新的锚,把块B5分成了两块B10和B11,其它的块都没有发生改变。这时候的文件备份就只需要把块B10和B11备份过去代替原来的块B5就行了。d行:对文件的第3次修改发生在块B2和B3的分界处,结果使B2和B3之间的锚丢失,两块合并成为一个块B12。这时候的文件备份只需把块B12备份过去代替原来的块B2和B3。
5.2、第二备份过程
第二备份过程主要由存储服务器作业工作线程在***相对空闲的时候完成,其步骤为:
(1)SS:if(Jobx(tn).FileSet为空)转(19),else从Jobx(tn).FileSet中取一个文件名Fi;
(2)SS:为文件Fi创建内存缓冲区Fi.Index,并在Fi.Index中创建R(Fi),然后把chunk cache中的M(Fi)存到R(Fi);
(3)SS:if(chunk cache中没有和Fi相关的元组)转(14),else从chunk cache中读取一个和Fi相关的元组;
(4)SS:if(是<Hj,offset>),转步骤(12);
(5)SS:else if(是<Hj,D(Hj)>){
(6)SS:在hash table中查询Hj;
(7)SS:if(找到)把“offset”值写到index cache中和的Hj对应的表项中,转步骤(12);
(8)SS:else{把D(Hj)追加到磁盘日志,同时更新hash table;
(9)SS:把“offset”值写到index cache中和的Hj对应的表项中,转步骤(12);}}
(10)SS:else if(是<Hj,null>)
(11)SS:从index cache中Hj对应的表项中读取“offset”值;
(12)SS:insert(<Hj,offset,dc>,0,Fi.Index);
(13)SS:返回步骤(3);
(14)SS:storeRemain(Fi.Index,R(Fi));
(15)SS:把R(Fi)追加到磁盘日志,同时更新hash table;
(16)SS:把R(Fi)传送给BS;
(17)BS:把R(Fi)传送到目录数据库并存储在Jobx(tn).Record中;
(18)SS:返回步骤(1);
(19)SS:创建文件Jobx(tn).FF;
(20)SS:读index cache,对每一个符合条件(tag==1000ortag==1100)的表项,把<H,offset>写到文件Jobx(tn).FF中;
(21)SS:把文件Jobx(tn).FF传送给BS;
(22)BS:把文件Jobx(tn).FF传送到目录数据库并存储在Jobx(tn).Record中;
(23)SS:向BS报告作业Jobx(tn)的结束状态;
(24)BS:中断和SS的连接,把作业Jobx(tn)的结束状态写到目录数据库的Jobx(tn).Record中,并结束作业Jobx(tn)运行。
在上述算法中,步骤(12)和(14)两个函数的算法如下:
步骤(12)算法
insert(<H,offset,type>,level,F.Index)
{∥存储三元组<H,offset,type>到F.Index.
//level:存储三元组<H,offset,type>的索引结点在索引树F.Index中的层号.
if(I(F,level)=)
{创建Iw(F,level);把<H,offset,type>存储到Iw(F,level);返回;}
else if(Iw(F,level)未满)
{存储<H,offset,type>到Iw(F,level)中;返回;}
else if(Iw(F,level)已满)
{计算H(Iw(F,level));
在hash table中查询H(Iw(F,level));
if未找到
把Iw(F,level)追加到磁盘日志,同时更新hash table;
insert(<H(Iw(F,level)),offset,ic>,level+1,F.Index);
创建一个新的索引结点Iw(F,level);
存储<H,offxet,type>到Iw(F,level)中;返回;
}
}
步骤(14)算法
storeRemain(F.Index,R(F))
{//把E.Index中每一层的工作索引结点存储到磁盘日志中.
int level:=0;
loop:计算H(Iw(F,level));
在hash table中查询H(Iw(F,level));
if未找到
把Iw(F,level)追加到磁盘日志,同时更新hash table;
if(|I(F,level)|=1)
{存储<H(Iw(F,level)),offset,ic>到R(F);返回;}
else
{insert(<H(Iw(F,level)),offset,ic>,level+1,F.Index);
level:=level+1;goto loop;
}
}
Claims (4)
1.一种基于指纹的数据备份***,包括备份服务器、备份代理、存储服务器和Web服务器,它们通过网络相互通信完成数据备份与恢复,其特征在于:
所述备份服务器装有配置文件和目录数据库,备份服务器的配置文件中记录用户定义的作业对象,作业对象包含指定***操作作业运行的属性,备份服务器通过作业对象控制着整个数据备份和恢复的过程;目录数据库存储作业记录,作业记录保存作业对象运行的管理信息;
所述备份代理单元安装于网络中每一个需要备份数据的主机上,备份时由备份代理单元从所在主机的文件***中读取需要备份的文件,对文件进行基于锚的分块并计算分块的指纹,把指纹和部分需要的分块数据通过网络送往存储服务器;恢复时备份代理单元通过网络从存储服务器接收文件数据并写到所在主机的文件***中指定的目录下;
所述存储服务器安装有大容量磁盘阵列,大容量磁盘阵列是数据备份的目的地,备份时通过网络从相应的备份代理单元接收指纹或数据分块,把数据分块存储到磁盘上,并建立文件的索引;恢复时则从大容量磁盘阵列根据文件索引重构文件,并把文件数据通过网络送到相应的备份代理;
所述Web服务器是本***的B-S模式网页用户管理界面,通过登录Web服务器,用户既可以指定***完成交互式的备份或恢复作业、监视***自动调度型作业的运行情况,还可以修改备份服务器的配置文件、定制作业对象,进行设备管理。
2.如权利要求1所述的基于指纹的数据备份***,其特征在于,所述备份服务器包括备份服务器初始化模块、命令监听模块、命令处理模块、作业处理模块和网络通信模块;
所述备份服务初始化模块执行初始化工作,包括读取配置文件、建立内存中的资源链表、检查目录数据库状态、保证配置文件和目录数据库的数据一致性和完整性、启动命令监控端口、接受来自Web服务器的用户命令、初始化作业队列和用户命令队列、向作业队列中加载作业对象、启动作业和网络监控服务;
所述命令监听模块是由***生成的一个网络监听线程,对Web服务器的连接请求进行认证,保证只有经过***授权的Web服务器才能连接***,监听已通过认证的Web服务器发送来的命令请求;收到命令请求时,将命令请求加入到用户命令队列中等待***处理;
所述命令处理模块包括一个用户命令队列和N个命令工作线程,当用户命令队列溢出时,命令监听模块转入睡眠状态;这些命令工作线程不断从用户命令队列中读取命令并执行,根据所执行命令的不同完成不同的功能;当命令监听模块向用户命令队列中加入一个命令时,如果当前没有空闲的命令工作线程且活跃的命令工作线程的数目没有达到N时,就生成一个新的命令工作线程;命令工作线程每次从用户命令队列中读取命令时都检查命令监听模块的状态,如果其处于睡眠状态则唤醒它;
所述作业处理模块包括一个作业队列、L个作业工作线程和一个作业队列加载线程,当作业队列发生溢出时,作业队列加载线程进入睡眠状态;作业工作线程不断从作业队列中取作业对象并执行,根据作业对象属性的不同调用不同的资源、实现不同的功能;作业队列加载线程进行作业调度,检查作业资源链中每个作业对象的调度策略属性,把需要调度运行的作业对象加入作业队列中,如果当前没有空闲的作业工作线程且活跃的作业工作线程的数目没有达到L时,就生成一个新的作业工作线程;作业工作线程每次从作业队列中读取作业对象时都检查作业队列加载线程的状态,如果其处于睡眠状态则唤醒它;
所述网络通信模块把标准的网络通信应用编程接口进行封装,向命令工作线程和作业工作线程提供网络通信接口,网络通信接口实现备份服务器、备份代理和存储服务器之间的数据传输协议。
3.如权利要求1所述的基于指纹的数据备份***,其特征在于,所述备份代理包括备份代理初始化模块、请求监听模块、作业处理模块、文件分块模块和网络通信模块;
所述备份代理初始化模块,执行初始化工作,包括读取备份代理配置文件、建立内存资源链表、初始化作业队列、启动备份服务器请求监听模块;
所述请求监听模块监听网络上备份服务器的连接请求,认证连接的备份服务器,认证通过后生成一个网络连接套接字和此备份服务器通信并加入作业队列中;
所述作业处理模块包括一个作业队列和M个作业工作线程,当作业队列溢出时,请求监听模块转入睡眠状态;作业工作线程从作业队列中取出一个网络连接套接字后,首先为作业建立一个作业控制记录,把网络连接套接字链入作业控制记录的成员变量中,然后通过此网络连接套接字和备份服务器交互,把备份服务器作业对象的有关属性通过变换后赋值给作业控制记录的相应成员变量;然后用从备份服务器处得到的作业票据ticket连接相应的存储服务器,产生一个和存储服务器通信的网络连接套接字并将之链入作业控制记录的成员变量中;当请求监听模块向作业队列中加入一个网络连接套接字时,如果当前没有空闲的作业工作线程且活跃的作业工作线程的数目没有达到M时,就生成一个新的作业工作线程;作业工作线程每次从作业队列中取一个网络连接套接字时都检查请求监听模块的状态,如果其处于睡眠状态则唤醒它;
所述文件分块模块接受作业处理模块中作业工作线程的命令执行备份作业的文件分块任务,在客户机文件***上打开文件集中的每一个文件,对文件进行基于锚的分块并计算分块指纹,和相应的存储服务器协调执行第一备份过程的备份算法;
所述网络通信模块由作业的网络连接套接字组成,备份代理的每个作业都拥有两个网络连接套接字,分别用于和该作业对应的备份服务器作业以及存储服务器作业通信。
4.如权利要求1所述的基于指纹的数据备份***,其特征在于,所述存储服务器包括存储服务器初始化模块、连接监控模块、作业票据表、作业处理模块和网络通信模块,以及索引缓冲区、分块缓冲区、分块哈希表和磁盘日志;
所述存储服务器初始化模块执行初始化工作,包括解析存储服务器配置文件,建立内存资源链表,启动相关服务线程;
所述连接监控模块监控备份服务器和备份代理的连接请求,对连接的备份服务器进行认证,认证通过后生成一个网络连接套接字和此备份服务器通信并加入作业队列中;对连接的备份代理,则根据其出示的作业票据ticket检查作业票据表以对其进行认证,认证通过后生成一个网络连接套接字和此备份代理通信并链接到相应作业控制记录的成员变量中;
所述作业票据表用于存储对备份代理作业进行认证的票据;
所述作业处理模块包括一个作业队列以及W个作业工作线程,当作业队列溢出时,连接监控模块转入“拒绝备份服务器连接请求”状态;作业工作线程从作业队列中取出一个网络连接套接字后,首先为作业建立一个作业控制记录,把网络连接套接字链入作业控制记录的成员变量中,然后通过此网络连接套接字和备份服务器交互,把备份服务器作业对象的有关属性通过变换后赋值给作业控制记录的相应成员变量,并随机生成一个作业票据ticket登记到作业票据表中且向备份服务器作业对象传送此作业票据ticket;当连接监控模块向作业队列中加入一个网络连接套接字时,如果当前没有空闲的作业工作线程且活跃的作业工作线程的数目没有达到W时,就生成一个新的作业工作线程;作业工作线程每次从作业队列中取一个网络连接套接字时都检查连接监控模块的状态,如果其处于“拒绝备份服务器连接请求”状态则取消这种状态以使它接受备份服务器连接请求;
所述网络通信模块由作业的网络连接套接字组成,存储服务器的每个作业都拥有两个网络连接套接字,分别用于和该作业对应的备份服务器作业以及备份代理作业通信;
所述索引缓冲区是存储服务器作业执行第一备份过程和第二备份过程的基础设施,索引缓冲区以一个内存哈希表实现,用于存储本作业链中本作业实例Jobx(tn)的前一个作业实例Jobx(tn-1)包含的所有指纹以及在本作业运行过程中新生成的指纹;
所述分块缓冲区是存储服务器作业执行第一备份过程和第二备份过程的基础设施,分块缓冲区以一个独立的磁盘阵列实现,用以临时存储第一备份过程中其指纹在索引缓冲区中没有被找到的数据分块;
所述分块哈希表是存储服务器作业执行第二备份过程的基础设施,分块哈希表以一个独立的磁盘阵列实现,用以建立分块指纹到此分块在磁盘日志的存储地址的映射;
所述磁盘日志是存储服务器作业执行第二备份过程的基础设施,磁盘日志以一个独立的磁盘阵列实现,用以存储数据分块和以分块形式存储的文件索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101687158A CN100547555C (zh) | 2007-12-10 | 2007-12-10 | 一种基于指纹的数据备份*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101687158A CN100547555C (zh) | 2007-12-10 | 2007-12-10 | 一种基于指纹的数据备份*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101183323A true CN101183323A (zh) | 2008-05-21 |
CN100547555C CN100547555C (zh) | 2009-10-07 |
Family
ID=39448610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101687158A Expired - Fee Related CN100547555C (zh) | 2007-12-10 | 2007-12-10 | 一种基于指纹的数据备份*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100547555C (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009152716A1 (zh) * | 2008-06-19 | 2009-12-23 | 华为技术有限公司 | 一种数据指纹保存方法、装置和多设备数据同步方法 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
CN101887388A (zh) * | 2010-06-18 | 2010-11-17 | 中兴通讯股份有限公司 | 基于内存数据库的数据备份***和方法 |
CN102169453A (zh) * | 2011-03-08 | 2011-08-31 | 杭州电子科技大学 | 一种文件在线备份方法 |
CN101599079B (zh) * | 2009-07-22 | 2011-08-31 | 中国科学院计算技术研究所 | 一种备份数据集中存储的管理方法 |
CN102436408A (zh) * | 2011-10-10 | 2012-05-02 | 上海交通大学 | 基于Map/Dedup的数据存储云化和云备份方法 |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
CN102510340A (zh) * | 2011-10-11 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 利用普通Internet网络实现异地快速备份的方法 |
CN102714789A (zh) * | 2011-04-19 | 2012-10-03 | 华为终端有限公司 | 一种移动终端的数据备份、恢复方法及移动终端 |
CN102915325A (zh) * | 2012-08-11 | 2013-02-06 | 深圳市极限网络科技有限公司 | 基于md5哈希列表的文件分解与组合技术 |
CN103119590A (zh) * | 2010-09-24 | 2013-05-22 | 日立数据***有限公司 | 在分布式数据库中管理完整性的方法和*** |
CN103200169A (zh) * | 2013-01-30 | 2013-07-10 | 中国科学院自动化研究所 | 一种基于Proxy代理的用户数据保护方法及其*** |
WO2013114230A1 (en) * | 2012-02-02 | 2013-08-08 | International Business Machines Corporation | Erasure correcting codes for storage arrays |
CN103384270A (zh) * | 2013-06-28 | 2013-11-06 | 环境保护部华南环境科学研究所 | 内外网穿透远距离传输数据的数据备份方法及*** |
CN103500120A (zh) * | 2013-09-17 | 2014-01-08 | 北京思特奇信息技术股份有限公司 | 基于多线程异步双写的分布式缓存高可用处理方法及*** |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理*** |
CN103870362A (zh) * | 2014-03-21 | 2014-06-18 | 华为技术有限公司 | 一种数据恢复方法、装置及备份*** |
WO2014107845A1 (zh) * | 2013-01-09 | 2014-07-17 | 华为技术有限公司 | 一种数据处理方法及装置 |
US8918701B2 (en) | 2011-02-28 | 2014-12-23 | SK Hynix Inc. | Nested multiple erasure correcting codes for storage arrays |
CN104331525A (zh) * | 2014-12-01 | 2015-02-04 | 国家计算机网络与信息安全管理中心 | 基于重复数据删除的共享方法 |
CN104408141A (zh) * | 2014-12-01 | 2015-03-11 | 国家计算机网络与信息安全管理中心 | 一种消冗文件***及其数据部署方法 |
TWI477981B (zh) * | 2012-12-12 | 2015-03-21 | Hon Hai Prec Ind Co Ltd | 儲存集群中的資料塊去重系統及方法 |
CN104508666A (zh) * | 2012-10-31 | 2015-04-08 | 惠普发展公司,有限责任合伙企业 | 对备份数据进行编目 |
US9058291B2 (en) | 2011-02-28 | 2015-06-16 | International Business Machines Corporation | Multiple erasure correcting codes for storage arrays |
CN106922187A (zh) * | 2014-08-14 | 2017-07-04 | 安东·戈斯德夫 | 用于低影响备份的***、方法、及计算机程序产品 |
CN107959658A (zh) * | 2016-10-17 | 2018-04-24 | 北京视联动力国际信息技术有限公司 | 一种网络会议数据同步方法及其*** |
CN109309706A (zh) * | 2017-07-27 | 2019-02-05 | Emc知识产权控股有限公司 | 在云局域网上的存储***之间共享预先计算的指纹和数据块的方法和*** |
CN109347899A (zh) * | 2018-08-22 | 2019-02-15 | 北京百度网讯科技有限公司 | 在分布式存储***中写入日志数据的方法 |
CN110945496A (zh) * | 2017-07-27 | 2020-03-31 | 思科技术公司 | 用于状态对象数据存储区的***和方法 |
CN111382012A (zh) * | 2020-03-03 | 2020-07-07 | 广州鼎甲计算机科技有限公司 | MySQL云数据库的备份方法、装置、计算机设备和存储介质 |
CN114157674A (zh) * | 2020-08-17 | 2022-03-08 | 中移(上海)信息通信科技有限公司 | 无线通信方法、装置、***、服务器以及介质 |
CN116566973A (zh) * | 2023-06-20 | 2023-08-08 | 北京中宏立达科技发展有限公司 | 一种基于对等网络的文件传输*** |
-
2007
- 2007-12-10 CN CNB2007101687158A patent/CN100547555C/zh not_active Expired - Fee Related
Cited By (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610281B (zh) * | 2008-06-19 | 2012-11-21 | 华为技术有限公司 | 一种数据指纹保存方法和装置 |
WO2009152716A1 (zh) * | 2008-06-19 | 2009-12-23 | 华为技术有限公司 | 一种数据指纹保存方法、装置和多设备数据同步方法 |
CN101599079B (zh) * | 2009-07-22 | 2011-08-31 | 中国科学院计算技术研究所 | 一种备份数据集中存储的管理方法 |
CN101814045A (zh) * | 2010-04-22 | 2010-08-25 | 华中科技大学 | 一种用于备份服务的数据组织方法 |
CN101887388A (zh) * | 2010-06-18 | 2010-11-17 | 中兴通讯股份有限公司 | 基于内存数据库的数据备份***和方法 |
CN103119590B (zh) * | 2010-09-24 | 2016-08-17 | 日立数据***有限公司 | 在分布式数据库中管理完整性的方法和*** |
CN103119590A (zh) * | 2010-09-24 | 2013-05-22 | 日立数据***有限公司 | 在分布式数据库中管理完整性的方法和*** |
CN102456059A (zh) * | 2010-10-21 | 2012-05-16 | 英业达股份有限公司 | 重复数据删除的处理*** |
US8918701B2 (en) | 2011-02-28 | 2014-12-23 | SK Hynix Inc. | Nested multiple erasure correcting codes for storage arrays |
US9058291B2 (en) | 2011-02-28 | 2015-06-16 | International Business Machines Corporation | Multiple erasure correcting codes for storage arrays |
CN102169453A (zh) * | 2011-03-08 | 2011-08-31 | 杭州电子科技大学 | 一种文件在线备份方法 |
US10095715B2 (en) | 2011-04-19 | 2018-10-09 | Huawei Device (Dongguan) Co., Ltd. | Data backup and recovery method for mobile terminal and mobile terminal |
CN102714789B (zh) * | 2011-04-19 | 2014-04-02 | 华为终端有限公司 | 一种移动终端的数据备份、恢复方法及移动终端 |
CN102714789A (zh) * | 2011-04-19 | 2012-10-03 | 华为终端有限公司 | 一种移动终端的数据备份、恢复方法及移动终端 |
CN102436408B (zh) * | 2011-10-10 | 2014-02-19 | 上海交通大学 | 基于Map/Dedup的数据存储云化和云备份方法 |
CN102436408A (zh) * | 2011-10-10 | 2012-05-02 | 上海交通大学 | 基于Map/Dedup的数据存储云化和云备份方法 |
CN102510340A (zh) * | 2011-10-11 | 2012-06-20 | 浪潮电子信息产业股份有限公司 | 利用普通Internet网络实现异地快速备份的方法 |
WO2013114230A1 (en) * | 2012-02-02 | 2013-08-08 | International Business Machines Corporation | Erasure correcting codes for storage arrays |
US8869006B2 (en) | 2012-02-02 | 2014-10-21 | International Business Machines Corporation | Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays |
US8874995B2 (en) | 2012-02-02 | 2014-10-28 | International Business Machines Corporation | Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays |
CN102915325A (zh) * | 2012-08-11 | 2013-02-06 | 深圳市极限网络科技有限公司 | 基于md5哈希列表的文件分解与组合技术 |
CN104508666A (zh) * | 2012-10-31 | 2015-04-08 | 惠普发展公司,有限责任合伙企业 | 对备份数据进行编目 |
US9552161B2 (en) | 2012-12-12 | 2017-01-24 | Shenzhen Airdrawing Technology Service Co., Ltd | Repetitive data block deleting system and method |
TWI477981B (zh) * | 2012-12-12 | 2015-03-21 | Hon Hai Prec Ind Co Ltd | 儲存集群中的資料塊去重系統及方法 |
WO2014107845A1 (zh) * | 2013-01-09 | 2014-07-17 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN103200169A (zh) * | 2013-01-30 | 2013-07-10 | 中国科学院自动化研究所 | 一种基于Proxy代理的用户数据保护方法及其*** |
CN103384270A (zh) * | 2013-06-28 | 2013-11-06 | 环境保护部华南环境科学研究所 | 内外网穿透远距离传输数据的数据备份方法及*** |
CN103677973A (zh) * | 2013-09-01 | 2014-03-26 | 西安重装渭南光电科技有限公司 | 一种分布式多任务调度管理*** |
CN103500120A (zh) * | 2013-09-17 | 2014-01-08 | 北京思特奇信息技术股份有限公司 | 基于多线程异步双写的分布式缓存高可用处理方法及*** |
CN103870362B (zh) * | 2014-03-21 | 2017-08-04 | 华为技术有限公司 | 一种数据恢复方法、装置及备份*** |
CN103870362A (zh) * | 2014-03-21 | 2014-06-18 | 华为技术有限公司 | 一种数据恢复方法、装置及备份*** |
CN106922187A (zh) * | 2014-08-14 | 2017-07-04 | 安东·戈斯德夫 | 用于低影响备份的***、方法、及计算机程序产品 |
CN106922187B (zh) * | 2014-08-14 | 2020-10-30 | 卫盟软件股份公司 | 用于低影响备份的***、方法、及计算机程序产品 |
CN104331525B (zh) * | 2014-12-01 | 2018-01-16 | 国家计算机网络与信息安全管理中心 | 基于重复数据删除的共享方法 |
CN104408141B (zh) * | 2014-12-01 | 2018-04-17 | 国家计算机网络与信息安全管理中心 | 一种消冗文件***及其数据部署方法 |
CN104331525A (zh) * | 2014-12-01 | 2015-02-04 | 国家计算机网络与信息安全管理中心 | 基于重复数据删除的共享方法 |
CN104408141A (zh) * | 2014-12-01 | 2015-03-11 | 国家计算机网络与信息安全管理中心 | 一种消冗文件***及其数据部署方法 |
CN107959658B (zh) * | 2016-10-17 | 2019-04-26 | 视联动力信息技术股份有限公司 | 一种网络会议数据同步方法及其*** |
CN107959658A (zh) * | 2016-10-17 | 2018-04-24 | 北京视联动力国际信息技术有限公司 | 一种网络会议数据同步方法及其*** |
CN110945496A (zh) * | 2017-07-27 | 2020-03-31 | 思科技术公司 | 用于状态对象数据存储区的***和方法 |
CN109309706A (zh) * | 2017-07-27 | 2019-02-05 | Emc知识产权控股有限公司 | 在云局域网上的存储***之间共享预先计算的指纹和数据块的方法和*** |
CN109309706B (zh) * | 2017-07-27 | 2022-03-04 | Emc知识产权控股有限公司 | 在云局域网的存储***间共享指纹和数据块的方法和*** |
CN109347899A (zh) * | 2018-08-22 | 2019-02-15 | 北京百度网讯科技有限公司 | 在分布式存储***中写入日志数据的方法 |
CN109347899B (zh) * | 2018-08-22 | 2022-03-25 | 北京百度网讯科技有限公司 | 在分布式存储***中写入日志数据的方法 |
CN111382012A (zh) * | 2020-03-03 | 2020-07-07 | 广州鼎甲计算机科技有限公司 | MySQL云数据库的备份方法、装置、计算机设备和存储介质 |
CN111382012B (zh) * | 2020-03-03 | 2020-12-29 | 广州鼎甲计算机科技有限公司 | MySQL云数据库的备份方法、装置、计算机设备和存储介质 |
CN114157674A (zh) * | 2020-08-17 | 2022-03-08 | 中移(上海)信息通信科技有限公司 | 无线通信方法、装置、***、服务器以及介质 |
CN116566973A (zh) * | 2023-06-20 | 2023-08-08 | 北京中宏立达科技发展有限公司 | 一种基于对等网络的文件传输*** |
CN116566973B (zh) * | 2023-06-20 | 2023-11-07 | 北京中宏立达科技发展有限公司 | 一种基于对等网络的文件传输*** |
Also Published As
Publication number | Publication date |
---|---|
CN100547555C (zh) | 2009-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100547555C (zh) | 一种基于指纹的数据备份*** | |
US9639289B2 (en) | Systems and methods for retaining and using data block signatures in data protection operations | |
US8065273B2 (en) | Automated priority restores | |
US8165221B2 (en) | System and method for sampling based elimination of duplicate data | |
CN101814045B (zh) | 一种用于备份服务的数据组织方法 | |
US7334098B1 (en) | Producing a mass storage backup using a log of write commands and time information | |
US9405776B2 (en) | Remote backup and restore | |
CN102521072B (zh) | 虚拟磁带库设备及数据恢复方法 | |
Tan et al. | CABdedupe: A causality-based deduplication performance booster for cloud backup services | |
CN102012851B (zh) | 一种持续数据保护方法及服务器 | |
US20060036904A1 (en) | Data replication method over a limited bandwidth network by mirroring parities | |
US20060036901A1 (en) | Data replication method over a limited bandwidth network by mirroring parities | |
CN103959256A (zh) | 基于指纹的数据重复删除 | |
CN106708653B (zh) | 一种基于纠删码与多副本的混合税务大数据安全保护方法 | |
US9002800B1 (en) | Archive and backup virtualization | |
CN110109778A (zh) | 一种大量小数据文件备份方法及恢复方法 | |
US10261696B2 (en) | Performance during playback of logged data storage operations | |
CN113886143B (zh) | 虚拟机持续数据保护方法、装置及数据恢复方法、装置 | |
CN106708662A (zh) | 一种恢复数据库的方法及设备 | |
CN112800019A (zh) | 基于Hadoop分布式文件***的数据备份方法及*** | |
CN112380067A (zh) | 一种Hadoop环境下基于元数据的大数据备份***及方法 | |
US8195612B1 (en) | Method and apparatus for providing a catalog to optimize stream-based data restoration | |
WO2023197937A1 (zh) | 数据处理方法及其装置、存储介质、计算机程序产品 | |
CN107357677A (zh) | 一种GlusterFS基于纠删码的数据冗余存储方法 | |
US20190073131A1 (en) | Dedupe file system for bulk data migration to cloud platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091007 Termination date: 20201210 |
|
CF01 | Termination of patent right due to non-payment of annual fee |