在备份时计算散列值以删除重复数据的系统及其方法

文档序号:6492168阅读:169来源:国知局
在备份时计算散列值以删除重复数据的系统及其方法
【专利摘要】一种在备份时计算散列值以删除重复数据的系统及其方法,其通过在数据备份时,计算备份文档中的目标数据的散列值,并将计算产生的散列值写入备份文档中,而在后台重复数据删除时,由备份文档中直接读出散列值,并判断系统散列表中是否存在所读出的散列值,若是,则删除与存在系统散列表中的散列值对应的目标数据的技术手段,可以减少数据存取的次数并有效利用等待数据存取的时间,并达成提高删除备份数据中的重复数据的处理速度的技术效果。
【专利说明】在备份时计算散列值以删除重复数据的系统及其方法
【技术领域】
[0001]本发明涉及一种重复数据删除系统及其方法,特别涉及一种在备份时计算散列值以删除重复数据的系统及其方法。
【背景技术】
[0002]数据备份是指将存储介质中所记录的数据加以复制,一旦发生灾难或错误操作时,能够方便且及时地恢复系统的有效数据,由此保持系统的正常运作。
[0003]在数据备份时,为了避免重复备份数据而造成大量的冗余,目前有一种数据重复删除(De-duplication)技术,当使用这种技术时,储存装置上的重复数据只会保留一份,这样便可以节省大量的储存空间。目前重复数据删除技术可以在将原始数据备份到储存装置时,由储存原始数据的装置执行,这一方式被称为在线即时数据处理(inline);另外,重复数据删除技术也可以由储存装置执行,由储存装置执行的方式称为后台重复数据删除。
[0004]后台重复数据删除技术如图1所示,是由数据备份程序先将原始数据由数据来源全部复制到储存装置的存储介质中(步骤110),然后启动与数据备份程序相互独立的后台重复数据删除程序,后台重复数据删除程序会再读取备份文档中的目标数据(步骤120),并计算目标数据的散列值(步骤130)后,依据所计算出的散列值是否存在系统散列表中来判断备份数据是否存在重复数据,当系统散列表包含所计算出的散列值时,表示备份数据存在重复数据,这样便可以将重复的数据删除(步骤140)。
[0005]由上述可知,数据备份程序主要负责数据读取的操作,不过,由于目前的处理器的处理速度远高于存储介质存取数据的速度,这样造成在执行数据备份程序时,处理器的利用率非常低,而在后台重复数据删除程序中,则需要读取备份文档由此计算散列值,这表示后台重复数据删除程序还需要再读取数据,这样,在整个数据备份与重复数据删除的过程中,大部分的时间都在等待由存储介质中读取数据,一旦备份的数据量大时,整个数据备份与重复数据删除的时间会非常漫长。
[0006]综上所述,可知现有技术中长期以来一直存在后台重复数据删除技术的处理时间受限于数据存取速度的问题,因此有必要提出改进的技术手段,来解决这一问题。

【发明内容】

[0007]有鉴于现有技术存在后台重复数据删除技术的处理时间受限于数据存取速度的问题,本发明遂揭露一种在备份时计算散列值以删除重复数据的系统及其方法,其中:
[0008]本发明所揭露的在备份时计算散列值以删除重复数据的系统,应用于储存装置,储存装置储存多个备份文档,至少包含:数据备份程序,其中包含,文档读取模块,用以由数据来源中读取原始文档所包含的目标数据;散列计算模块,用以计算与目标数据对应的散列值;信息产生模块,用以依据散列值产生散列数据信息;储存模块,用以将目标数据与散列数据信息作为备份文档储存于储存装置中;散列表维护模块,用以建立系统散列表;信息读取模块,用以由备份文档中读取散列数据信息,并由散列数据信息中读取散列值;判断模块,用以判断系统散列表中是否存在被读出的散列值;数据删除模块,用以在判断模块判断系统散列表中存在被读出的散列值时,删除与被读出的散列值对应的目标数据。
[0009]本发明所揭露的在备份时计算散列值以删除重复数据的方法,应用于储存装置,储存装置储存多个备份文档,其步骤至少包括:由数据来源中读取原始文档所包含的目标数据;计算与目标数据对应的散列值;依据散列值产生散列数据信息;在储存装置中储存目标数据与散列数据信息为备份文档;建立系统散列表;由备份文档中读取散列数据信息;由散列数据信息中读取散列值;判断系统散列表中存在被读出的散列值时,删除与该被读出的散列值对应的目标数据。
[0010]本发明所揭露的系统与方法如上,与现有技术之间的差异在于本发明通过在数据备份时,计算备份文档中的目标数据的散列值,并将计算产生的散列值写入备份文档中,而在后台重复数据删除时,便可以由备份文档中读出散列值,并判断系统散列表中是否存在所读出的散列值,若是则删除与存在系统散列表中的散列值对应的目标数据,由此解决现有技术所存在的问题,并可以达成提高删除备份数据中的重复数据的处理速度的技术效果O
【专利附图】

【附图说明】
[0011]图1为现有的数据备份程序与后台重复数据删除程序的运作过程示意图。
[0012]图2为本发明所述的在备份时计算散列值以删除重复数据的系统架构图。
[0013]图3为本发明所述的在备份时计算散列值以删除重复数据的方法流程图。
[0014]图4为本发明实施例所述的散列数据信息的示意图。
[0015]主要部件附图标记:
[0016]200 储存装置
[0017]201 存储介质
[0018]205 后台重复数据删除程序
[0019]206 数据备份程序
[0020]210 文档读取模块
[0021]220 散列计算模块
[0022]230 信息产生模块
[0023]240 储存模块
[0024]250 散列表维护模块
[0025]270 信息读取模块
[0026]280 判断模块
[0027]290 数据删除模块
[0028]400 散列数据信息
[0029]410 散列值记录栏位
[0030]420 散列值总数栏位
[0031]430 文档删除标记栏位
[0032]步骤110由数据来源复制原始文档至储存装置
[0033]步骤120读取备份文档所包含的目标数据[0034]步骤130计算目标数据的散列值
[0035]步骤140在系统散列表包含散列值时删除目标数据
[0036]步骤310由数据来源中读取原始文档所包含的目标数据
[0037]步骤321计算与目标数据对应的散列值
[0038]步骤325依据散列值产生散列数据信息
[0039]步骤330在储存装置中储存目标数据与散列数据信息为备份文档
[0040]步骤350建立系统散列表
[0041]步骤361由备份文档中读取散列数据信息
[0042]步骤365由散列数据信息中读取散列值
[0043]步骤370判断系统散列表中是否存在被读出的散列值
[0044]步骤381删除与被读出的散列值对应的目标数据
[0045]步骤385加入散列值至系统散列表中
[0046]步骤390删除备份文档中的散列数据信息
【具体实施方式】
[0047]以下将结合附图及实施例来详细说明本发明的特征与实施方式,内容足以使任何本领域技术人员能够轻易地充分理解本发明解决技术问题所应用的技术手段并据以实施,由此实现本发明可达成的技术效果。
[0048]本发明可以将原先在后台重复数据删除程序中所执行的计算数据散列值的步骤移至数据备份程序中进行,使得数据备份程序在等待输出输入操作的闲置时间计算被备份的数据的散列值。
[0049]以下先以图2本发明所述的在备份时计算散列值以删除重复数据的系统架构图来说明本发明的系统运作。如图2所示,本发明的后台重复数据删除程序205在储存装置200中执行,含有散列表维护模块250、信息读取模块270、判断模块280、以及数据删除模块290。另外,储存装置200中还包含数据备份程序206,其中包含文档读取模块210、散列计算模块220、信息产生模块230、以及储存模块240。
[0050]文档读取模块210负责由数据来源中读取原始文档。其中,文档读取模块读取原始文档的数据来源可以是外部的储存装置(图未示),也可以是储存装置200中的存储介质201。
[0051]另外,文档读取模块210可以将储存原始文档的各个数据区块(block)视为不同的目标数据,这样,当原始文档的文档大小超过一个数据区块的储存大小时,原始文档会包含两个或两个以上的目标数据,而当原始文档的文档大小小于或等于一个数据区块的储存大小时,原始文档只会包含一个目标数据。文档读取模块210也可以将整个原始文档视为一个目标数据,此时,目标数据就是原始文档的完整内容。
[0052]散列计算模块220负责计算与被文档读取模块210所读出的目标数据相对应的散列值。其中,特别值得一提的是,由于目前存储介质的数据读写速度远低于处理器的处理速度,因此,散列计算模块220会在文档读取模块210等待目标数据由数据来源读出的过程中,以及等待储存模块240将目标数据储存至存储介质201的过程中,同时开始对已被文档读取模块210所读出的目标数据的部分内容计算散列值,这样,便可以有效利用等待数据读取的时间。例如,当文档读取模块210每次读出512字节的数据,则散列计算模块220会由第一个被读出的512字节的数据开始计算散列值,但计算散列值的过程并不会结束,当第二个512字节的数据被文档读取模块210读取后,散列计算模块220会以第二个512字节的数据继续计算散列值,依此类推,在散列计算模块220对文档读取模块210所读出的最后一组数据计算散列值后,散列计算模块220便完成目标数据的散列值的计算。
[0053]信息产生模块230负责依据散列计算模块220所计算出的各个目标数据的散列值产生散列数据信息。信息产生模块230所产生的散列数据信息中可以包含各个目标数据的散列值,也可以包含各个散列值以及散列计算模块220所计算出的散列值的总数,也就是备份文档中所包含的目标数据的数量,散列数据信息中也可以包含各个散列值、散列值的总数,以及与备份文档对应的文档删除标记。其中,信息产生模块230可以依照目标数据的在备份文档中的顺序,依序将各目标数据的散列值记录到散列数据信息中。
[0054]储存模块240负责将文档读取模块210所读取的目标数据储存到储存装置200的存储介质201中,成为备份文档。储存模块240也负责在备份文档中,写入信息产生模块230所产生的散列数据信息。一般而言,储存模块240会将散列数据信息写入备份文档的最末,但本发明并不以此为限。
[0055]散列表维护模块250负责建立并维护系统散列表,并负责在判断模块280判断系统散列表中不存在信息读取模块270所读出的散列值时,将信息读取模块270所读出的散列值加入系统散列表中。
[0056]信息读取模块270负责由储存装置200的存储介质201所储存的备份文档中读取散列数据信息,并由备份文档所包含的散列数据信息中,读取与备份文档中的某一目标数据相对应的散列值。其中,与信息读取模块270读取的散列值所对应的目标数据即为后台重复数据删除程序205当下正在判断的是否为重复数据的目标数据。
[0057]判断模块280负责判断散列表维护模块250所建立的系统散列表中是否存在信息读取模块270所读出的散列值。
[0058]数据删除模块290负责在判断模块280判断散列表维护模块250所建立的系统散列表中存在信息读取模块270所读出的散列值时,表示后台重复数据删除程序205当下正在判断的目标数据为重复数据,所以,数据删除模块290会删除与被信息读取模块270所读出的散列值对应的目标数据。
[0059]另外,在信息读取模块270读出备份数据中的散列数据信息中的所有散列值后,也就是后台重复数据删除程序205完成该备份文档的判断后,数据删除模块290可以删除该备份文档中的散列数据信息。
[0060]接着以一个实施例来解说本发明的运作系统与方法,并请参照图3本发明所述的在备份时计算散列值以删除重复数据的方法流程图。在本实施例中,假设使用者欲备份的数据储存在执行本发明的储存装置200外部的其他储存装置中。
[0061]当储存装置200备份使用者欲备份的数据时,数据备份程序206中的文档读取模块210可以至数据来源读取原始文档所包含的目标数据(步骤310)。在本实施例中,假设目标数据为数据区块,则在文档读取模块210通过储存装置200至该外部的储存装置读取原始文档时,外部储存装置会依序读出记录原始文档的内容的数据区块,并传送至储存装置200,使得文档读取模块210读取到原始文档所包含的各个数据区块。[0062]在数据备份程序206中的文档读取模块210至数据来源读取原始文档所包含的目标数据(步骤310)后,数据备份程序206中的散列计算模块220可以在文档读取模块210等待外部储存装置读取数据区块中的内容时,计算文档读取模块210已读取到的各个目标数据的散列值(步骤321)。例如,当文档读取模块210在等待第二个目标数据时,散列计算模块220可以先计算文档读取模块210所读取到的第一个目标数据。
[0063]在数据备份程序206中的散列计算模块220可以持续的计算数据备份程序206中的文档读取模块210所读取的目标数据的散列值(步骤321),直到计算出所有被文档读取模块210所读出的目标数据的散列值为止。之后,数据备份程序206中的信息产生模块230可以依据散列计算模块220所计算出的散列值产生散列数据信息(步骤325)。在本实施例中,假设信息产生模块230所产生的散列数据信息400如图4所示,包含散列值记录栏位410、散列值总数栏位420、以及文档删除标记栏位430,其中,信息产生模块230会依照备份文档所包含的数据区块的顺序,依序记录备份文档所包含的各个数据区块的散列值,例如,当信息产生模块230使用MD5计算数据区块的散列值,则散列值记录栏位410中的第I个字节到第32个字节记录第一个数据区块的散列值、第33个字节到第64个字节记录第二个数据区块的散列值、…,依此类推。另外,信息产生模块230也会在散列值总数栏位420总数栏位中记录数据区块的总数。
[0064]在数据备份程序206中的信息产生模块230依据散列计算模块220所计算出的散列值产生散列数据信息(步骤325)后,数据备份程序206中的储存模块240可以将数据备份程序206中的文档读取模块210所读出的目标数据以及数据备份程序206中的信息产生模块230所产生的散列数据信息储存到储存装置200的存储介质201中成为备份文档(步骤330)。在本实施例中,假设储存模块240会将信息产生模块230所产生的散列数据信息储存在备份文档的最末,也就是在文档读取模块210所读出的所有数据区块之后。其中,在数据备份程序206中的文档读取模块210至数据来源读取原始文档所包含的目标数据(步骤310)后,数据备份程序206中的储存模块240就会将文档读取模块210所读出的目标数据储存到数据备份程序206中的存储介质201中,而当储存模块240储存所有被文档读取模块210所读出的目标数据·,且数据备份程序206中的信息产生模块230依据散列计算模块220所计算出的散列值产生散列数据信息后,储存模块240便会将散列数据信息写入备份文档的最末,这样,储存模块240便完成数据的备份。
[0065]在储存装置200中的后台重复数据删除程序205执行时,后台重复数据删除程序205中的散列表维护模块250可以建立系统散列表(步骤350),接着,后台重复数据删除程序205中的信息读取模块270可以由储存装置200的存储介质201所储存的备份文档中读取备份文档所包含的散列数据信息(步骤361)。在本实施例中,由于散列数据信息在备份文档的最末,假设散列数据信息中的散列值总数栏位420与文档删除标记栏位430分别为4个字节以及I个字节,则信息读取模块270可以由备份文档的倒数第2至5个字节读取出目标数据的总数,并将所读取出的总数乘上散列值的长度后,向前读取所计算出的数值的字节数,由此读取所有目标数据的散列值。例如,当目标数据有5个,散列值的长度为32个字节,则表示散列数据信息中的散列值记录栏位410的长度为160个字节,也就是备份文档倒数第6至165个字节为散列值记录栏位410。
[0066]在后台重复数据删除程序205中的信息读取模块270由储存装置200的存储介质201所储存的备份文档中读取备份文档所包含的散列数据信息(步骤361)后,后台重复数据删除程序205中的信息读取模块270可以由所读取到的散列数据信息中依序读取出各个目标数据的散列值(步骤365)。在本实施例中,由于每一个散列值的长度都是32个字节,因此,信息读取模块270可以读取散列数据信息400中的散列值记录栏位410的第I至32个字节作为备份文档中的第一个数据区块的散列值,并读取散列值记录栏位410的第33至64个字节作为备份文档中的第二个数据区块的散列值,依此类推,这样便可以读出五个数据区块的散列值。
[0067]在后台重复数据删除程序205中的信息读取模块270由所读取到的散列数据信息中依序读取出各个目标数据的散列值(步骤365)后,后台重复数据删除程序205中的判断模块280可以判断由后台重复数据删除程序205中的散列表维护模块250所建立的系统散列表中是否包含信息读取模块270所读出的散列值(步骤370)。
[0068]若后台重复数据删除程序205中的判断模块280判断由后台重复数据删除程序205中的散列表维护模块250所建立的系统散列表中包含后台重复数据删除程序205中的信息读取模块270所读出的散列值,则表示储存装置200的存储介质201中已存在与包含在系统散列表中的散列值对应的目标数据,这样,后台重复数据删除程序205中的数据删除模块290可以删除与包含在系统散列表中的散列值对应的目标数据(步骤381)。而若判断模块280判断系统散列表中并未包含信息读取模块270所读出的散列值,则表示储存装置200的存储介质201中并未储存与未包含在系统散列表中的散列值对应的目标数据,因此,散列表维护模块250可以将未包含在系统散列表中的散列值加入系统散列表中(步骤385),但数据删除模块290并不会执行。
[0069]在后台重复数据删除程序205中的判断模块280完成信息读取模块270所读出的所有散列值是否存在于后台重复数据删除程序205中的散列表维护模块250所建立的系统散列表中的判断(步骤370)后,后台重复数据删除程序205中的数据删除模块290可以删除备份文档中的散列数据信息(步骤390),使得原始文档完整的备份到储存装置200,同时也完成储存装置200中的重复数据的删除。
[0070]综上所述,可知本发明与现有技术之间的差异在于具有在数据备份时,计算备份文档中的目标数据的散列值,并将计算产生的散列值写入备份文档中,而在后台重复数据删除时,由备份文档中直接读出散列值,并判断系统散列表中是否存在所读出的散列值,若是,则删除与存在系统散列表中的散列值对应的目标数据的技术手段,通过这一技术手段可以来解决现有技术所存在后台重复数据删除技术的处理时间受限于数据存取速度的问题,进而达成提高删除备份数据中的重复数据的处理速度的技术效果。
[0071]再者,本发明的在备份时计算散列值以删除重复数据的方法,可实现于硬件、软件或硬件与软件的组合中,亦可在电脑系统中以集中方式实现或以不同元件散布于若干互连的电脑系统的分散方式实现。
[0072]虽然本发明所揭露的实施方式如上,然而所述的内容并非用以直接限定本发明的专利保护范围。任何本发明所属领域技术人员,在不脱离本发明所揭露的精神和范围的前提下,对本发明的实施的形式上及细节上作一些更动润饰,均属于本发明的专利保护范围。本发明的专利保护范围,仍须以权利要求书所限定的内容为准。
【权利要求】
1.一种在备份时计算散列值以删除重复数据的方法,其特征在于,应用于储存装置,该方法至少包含下列步骤: 由数据来源中读取原始文档所包含的至少一目标数据; 计算与所述各目标数据对应的散列值; 依据这些散列值产生散列数据信息; 在该储存装置中储存所述各目标数据与该散列数据信息为备份文档; 建立系统散列表; 由该备份文档中读取该散列数据信息; 由该散列数据信息中读取该散列值;及 判断该系统散列表中存在该被读出的散列值时,删除与该被读出的散列值对应的目标数据。
2.如权利要求1所述的在备份时计算散列值以删除重复数据的方法,其特征在于,该方法还包含判断该系统散列表中不存在该散列值时,加入该散列值至该系统散列表中的步骤。
3.如权利要求1所述的在备份时计算散列值以删除重复数据的方法,其特征在于,该方法在判断该系统散列表中是否存在该散列值的步骤后,还包含删除该散列数据信息的步骤。·
4.一种在备份时计算散列值以删除重复数据的系统,其特征在于,应用于储存装置,该系统至少包含: 数据备份程序,其中还包含: 文档读取模块,用以由数据来源中读取原始文档所包含的至少一目标数据; 散列计算模块,用以计算与所述各目标数据对应的散列值; 信息产生模块,用以依据这些散列值产生散列数据信息 '及 储存模块,用以将所述各目标数据与该散列数据信息作为备份文档储存于该储存装置中;及 后台重复数据删除程序,其中还包含: 散列表维护模块,用以建立系统散列表; 信息读取模块,用以由该备份文档中读取该散列数据信息,并由该散列数据信息中读取该散列值; 判断模块,用以判断该系统散列表中是否存在该被读出的散列值;及数据删除模块,用以在该判断模块判断该系统散列表中存在该被读出的散列值时,删除与该被读出的散列值对应的目标数据。
5.如权利要求4所述的在备份时计算散列值以删除重复数据的系统,其特征在于,该散列表维护模块还用以在该判断模块判断该系统散列表中不存在该散列值时,将该散列值加入该系统散列表中。
6.如权利要求4所述的在备份时计算散列值以删除重复数据的系统,其特征在于,该数据删除模块还用以删除该备份文档中的该散列数据信息。
7.如权利要求4所述的在备份时计算散列值以删除重复数据的系统,其特征在于,该散列数据信息记录所述各散列值、所述各散列值及这些散列值的总数、或所述各散列值、这些散列值的总数、及文档删除标记。
8.如权利要求4所述的在备份时计算散列值以删除重复数据的系统,其特征在于,该目标数据为备 份文档的完整内容,或备份文档的数据区块。
【文档编号】G06F17/30GK103853754SQ201210507449
【公开日】2014年6月11日 申请日期:2012年11月30日 优先权日:2012年11月30日
【发明者】刘建辉 申请人:英业达科技有限公司, 英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1