用于数据备份的方法及设备与流程

文档序号:12824588阅读:185来源:国知局
本公开的各种实施例总体上涉及存储领域,并更为具体地涉及用于数据备份的方法及设备。
背景技术
::在数据存储设备中,例如emc公司的数据备份产品datadomain(数据域)中,在将大量数据读备份到存储设备(例如,磁盘)之前,首先需要执行重复数据删除操作,也称去重(de-duplication)操作,以仅将大量数据中的更新部分备份到存储设备中,从而节省了存储空间。然而在这种数据存储设备中,包括了去重操作在内的诸如数据分段、压缩/解压缩、加密/解密之类的相关操作均是通过中央处理器(cpu)来完成的。因此,连接大量待备份数据与存储设备之间的网络接口卡(nic/fc)通常不具备任何可编程功能。虽然上述用于数据备份的操作可以通过cpu来执行,但是这种基于cpu的解决方案往往占用了大量cpu资源,并且导致单位功耗输出的性能(例如,每毫瓦输出的性能)较低,此外cpu在某些单线程的处理上与例如现场可编程门阵列(fpga)之类的硬件设备相比并不具有优势。也可以使用专门用于执行上述操作的专用硬件(例如,专用集成电路,asic)代替cpu来完成上述操作。这种基于专用硬件的解决方案虽然可以实现较高的单位功耗输出的性能,但由于其在硬件上的不可改变性,使得这种基于专用硬件的网络接口卡的扩展性或设计灵活性受到大大受限。技术实现要素:为了解决上述问题,本公开的实施例提供了一种基于网络接口卡并尤其例如是基于fpga的网络接口卡的用于数据备份的方法及设备。本公开的第一方面提供了一种用于数据备份的方法,包括:在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;在该网络接口卡中,为各个数据段确定相应的摘要数据;以及在中央处理器中,将该各个数据段的该摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作,以执行数据备份。根据本公开的实施例,该网络接口卡可以被配置为基于现场可编程门阵列fpga的网络接口卡。由于将一部分例如数据分段等尤其适于网络接口卡执行的操作移入到网络接口卡中执行,因此降低了对cpu的资源占用,从而在整体上实现了性价比以及功耗性能比的优化。根据本公开的实施例,在该网络接口卡中,为各个数据段确定相应的摘要数据(fingerprint,fp)可以包括:在该网络接口卡中,为各个数据段基于安全哈希算法sha1来确定相应的摘要数据。需要指出,使用摘要数据代替数据段的优点在于,使用少量的字节数(例如,仅16个字节)就可以代表各个数据段,以使得在后面进行去重操作时,无需使每个数据段以逐字节的方式与已有数据段进行比较,而是只需将表示相应数据段的具有少量字节数的摘要数据与已有的摘要数据比较即可。使用例如sha1算法获得的摘要数据尽管丢失了信息量,但由于该算法的精巧设计,使得通过使用该算法获得的摘要数据来进行后续去重判断时的错误率极低。因此大幅降低了cpu计算的复杂度。根据本公开的实施例,该方法还可以包括在对该第一数据进行分段处理之前,通过协议处理,从输入到该网络接口卡中的数据包中获得该第一数据。该协议处理操作使得能够从通过例如网络接口卡接口(nic)或 光纤通道接口(fc)等不同接口输入的数据包(datapacket)中提取相应的原始数据,以用于随后的分段处理。根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作包括如果该摘要数据与已有摘要数据中的任何一个相匹配,则该中央处理器对与该摘要数据相对应的数据段进行去重操作。根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作包括如果该摘要数据不与已有摘要数据中的任何一个相匹配,则该中央处理器确定与该摘要数据相对应的数据段确定为无法进行去重操作的数据段;以及在该网络接口卡中对该无法进行去重操作的数据段进行压缩操作。这种在数据备份到存储设备之前进行的在线(in-line)去重操作有效地减少了重复数据对存储空间的占用。可选地,该方法还可以包括:在该网络接口卡中对压缩后的数据段进行加密操作。根据本公开的实施例,该方法还可以包括:在为每个数据段确定相应的摘要数据之后,从该网络接口卡中将该摘要数据连同与该摘要数据相对应的该数据段写入到第一缓存中。根据本公开的实施例,该方法还可以包括:在将该摘要数据与已有摘要数据逐一地进行比较之前,中央处理器从该第一缓存中读取该摘要数据。根据本公开的实施例,该方法还可以包括:在将该摘要数据与已有摘要数据逐一地进行比较之后,中央处理器从该第一缓存中读取该无法进行去重操作的数据段,用于在该网络接口卡中的压缩操作。使用例如一个或多个第一缓存加快了中央处理器对经过网络接 口卡处理的待备份数据的读写(i/o)速度。根据本公开的实施例,该方法还可以包括:在该压缩操作或该加密操作之后,将在该网络接口卡中压缩后的数据段或加密后的数据段写入到第二缓存中。本公开的第二方面提供了一种用于数据备份的设备,包括:数据分段装置,用于在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;摘要数据确定装置,用于在该网络接口卡中,为各个数据段确定相应的摘要数据;以及去重确定装置,用于在中央处理器中,将该各个数据段的该摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作,以执行数据备份。根据本公开的实施例,该网络接口卡被配置为基于现场可编程门阵列fpga的网络接口卡。根据本公开的实施例,该摘要数据确定装置包括:安全哈希算法单元,用于在该网络接口卡中,为各个数据段基于安全哈希算法来确定相应的摘要数据。根据本公开的实施例,该设备还包括:数据预处理装置,用于在对该第一数据进行分段处理之前,通过协议处理,从输入到该网络接口卡中的数据包中获得该第一数据。根据本公开的实施例,该去重确定装置包括:去重执行单元,用于如果该摘要数据与已有摘要数据中的任何一个相匹配,则该中央处理器对与该摘要数据相对应的数据段进行去重操作。根据本公开的实施例,该去重确定装置包括:压缩判定单元,用于如果该摘要数据不与已有摘要数据中的任何一个相匹配,则中该中央处理器确定与该摘要数据相对应的数据段确定为无法进行去重操作的数据段;以及压缩执行单元,用于在该网络接口卡中对该无法进行去重操作的数据段进行压缩操作。根据本公开的实施例,该设备还包括:加密单元,用于在该网络接口卡中对压缩后的数据段进行加密操作。根据本公开的实施例,该设备还包括:第一数据写入单元,用于在为每个数据段确定相应的摘要数据之后,从该网络接口卡中将该摘要数据连同与该摘要数据相对应的该数据段写入到第一缓存中。根据本公开的实施例,该设备还包括:第一数据读取单元,用于在将该摘要数据与已有摘要数据逐一地进行比较之前,中央处理器从该第一缓存中读取该摘要数据。根据本公开的实施例,该设备还包括:在第二数据读取单元,用于将该摘要数据与已有摘要数据逐一地进行比较之后,中央处理器从该第一缓存中读取该无法进行去重操作的数据段,用于在该网络接口卡中的压缩操作。根据本公开的实施例,该设备还包括:第二数据写入单元,用于在该压缩操作或该加密操作之后,将在该网络接口卡中压缩后的数据段或加密后的数据段写入到第二缓存中。本公开的第三方面提供了一种用于数据备份的计算机程序产品,该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行根据权利要求1至11任一项该的方法的步骤。本公开的第四方面提供了一种数据存储设备,该数据存储设备用于执行本公开第一方面中所述的用于数据备份的方法。附图说明图1示出了根据本公开的实施例的用于数据备份的方法的流程图。图2示出了根据本公开的实施例的基于fpga的用于数据备份的系统的结构图。图3示出了根据本公开实施例的用于数据备份的设备的框图。具体实施方式下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。图1示出了根据本公开的实施例的用于数据备份的方法100的流程图。如图1所示,该方法100包括下面主要步骤s110-s130:在步骤s110,在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;在步骤s120,在该网络接口卡中,为各个数据段确定相应的摘要数据;以及在步骤s130,在中央处理器中,将该各个数据段的该摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作。优选地,该网络接口卡可以被配置为基于现场可编程门阵列fpga的网络接口卡。相比于cpu和专用集成硬件设备而言,fpga具有在单位功耗输出的性能与可扩展性之间的很好的折中。换言之,fpga不但由于拥有软件和硬件两者的可编程能力而具有相比于专用集成硬件而言更好的可扩展性,而且fpga非常适合处理如上所提及的诸如数据分段、压缩/解压缩、加密/解密之类的一些特定操作,因此使得fpga具有多倍于cpu的单位功耗输出的性能。这使得利用fpga而实现的连接待备份数据与存储装置之间的网络接口卡具有整体上较高的性价比以及提高的功耗性能比。从图1中方法100的步骤中可以看出,由于可以证明数据分段步骤s110与摘要数据确定步骤s120是尤其适于网络接口卡执行的操作,因此被并入到优选为fpga的网络接口卡中执行,而去重操作s130由于更适于cpu执行,因此仍保持为由cpu执行。这种处理任务上的分割实现了整体上的性价比以及功耗性能比的优化。图2示出了根据本公开的实施例的基于fpga的用于数据备份的系统的结构图。下面结合图2,对图1中的方法100的步骤进行详细描述。根据本公开的实施例,该方法100可以额外地包括:在对该第一数据进行分段处理(即,步骤s110)之前,通过协议处理,从输入到该网络接口卡中的数据包中获得第一数据。根据图2所示的实施例,取决于不同的外部数据来源,不同的外部数据包首先通过网络接口卡接口(nic)201或光纤通道接口(fc)202被输入到基于fpga网络接口卡210中,由于输入到网络接口卡210中的数据包并不是原始数据,因此随后需要通过不同的协议处理来从输入的数据包中提取相应的作为原始数据的第一数据,以用于随后的数据分段处理。图2中所示的协议处理包括例如tcp/ip和fc的传输层协议处理203,以及例如网络文件系统(nfs)/通用因特网文件系统(cifs)的应用层协议处理204。在获得作为原始数据的第一数据之后,接下来,方法进行到步骤s110。在步骤s110处,在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段。根据图2所示的实施例,将作为原始数据的第一数据例如通过锚点(anchor)算法进行分段处理,如由方框205所指示。根据本公开的一个具体示例,经分段处理后的多个数据段可以具有从几kb到几gb范围内的不等的大小。根据本公开的一个具体示例,对第一数据的分段处理可以优选地采用不定长的方式。这是由于用户对一个文件(例如,gb数量级的文件)的改动可能很小,例如,仅增加几个字节,这种情况下,如果采用定长分段处理,则后面所有没有被改变的数据段也都将随之被改变。采用不定长分段处理则可以适应性地仅关注于发生改变的那些数据段,并且使得未发生改变的那些数据段不受影响,从而提高了去重的效率。需要指出,本公开并不旨在限定用于数据分段处理的算法,任何数据分段算法均应落入本公开的保护范围内。在获得各个数据段之后,接下来,方法100进行到步骤s120。 在步骤s120处,在该网络接口卡中,为各个数据段确定相应的摘要数据。根据本公开的实施例,步骤s120可以包括在该网络接口卡中,为各个数据段基于安全哈希算法(sha1)来确定相应的摘要数据,由方框205所指示。同样,本公开并不旨在限定用于获得摘要数据的算法,除sha1之外的其他任何用于获得摘要数据的算法同样应当落入本公开的保护范围内。要指出,使用摘要数据代替数据段的优点在于,仅使用少量的字节数(例如,sha1算法输出的摘要数据仅为16个字节)就可以代表数据段,以使得在后面继进行去重操作时,无需使每个数据段以逐字节的方式与已有数据段进行比较,而是只需将对应于数据段的具有少量字节数的摘要数据与已有的摘要数据比较即可。使用例如sha1算法获得的摘要数据尽管丢失了信息量,但由于该算法的精巧设计,使得通过使用该算法获得的摘要数据来进行后续去重判断时的错误率极低。这大幅降低了cpu计算的复杂度。根据本公开的实施例,该方法100还可以包括:在为每个数据段确定相应的摘要数据之后,从该网络接口卡中将该摘要数据连同与该摘要数据相对应的该数据段写入到第一缓存中(例如写入到图2中所示的231、232中),示意性地如箭头208和209所指示的路径。可选地,也可以在获得多个数据段之后并且在为每个数据段确定相应的摘要数据之前就将该多个数据段写入到第一缓存231中,然后,在为每个数据段确定相应的摘要数据之后,从该网络接口卡中将该摘要数据写入到第一缓存中232。同样,本公开并不旨在限定将数据段和摘要数据写入到第一缓存的顺序。根据图2所示的实施例,该第一缓存包括用于存储原始数据的原始数据缓存231,以及用于存储锚点和摘要数据的锚点和摘要数据缓存232。根据图2所示的实施例,该第一缓存被配置为存储器230 的一部分。原始数据和摘要数据被写入到原始数据缓存231和锚点和摘要数据的锚点和摘要数据缓存232中,示意性地分别由图2的路径208和209示出。在获得摘要数据(即,步骤s120)之后,接下来,方法100进行到步骤s130。在步骤s130处,在中央处理器中,将该各个数据段的该摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作。根据本公开的实施例,在将该摘要数据与已有摘要数据逐一地进行比较之前,中央处理器首先从该第一缓存中读取该摘要数据用于后续的比较操作,示意性地如箭头221所指示的路径。根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作包括如果该摘要数据与已有摘要数据中的任何一个相匹配,则该中央处理器对与该摘要数据相对应的数据段进行去重操作。根据本公开的一个具体示例,全部已有的摘要数据可以被存储在例如摘要数据查找表(lookuptable)中,以便使与待被备份的数据段对应的摘要数据与已有数据摘要进行快速比较。根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作还包括如果该摘要数据不与已有摘要数据中的任何一个相匹配,则该中央处理器确定与该摘要数据相对应的数据段确定为无法进行去重操作的数据段,即,的确需要被备份到存储设备中的被更新/被添加的数据段;以及在该网络接口卡中对该无法进行去重操作的数据段进行压缩操作,如虚线方框206所示。根据本公开的实施例,在将该摘要数据与已有摘要数据逐一地进行比较之后,中央处理器需要从该第一缓存中读取该无法进行去 重操作的数据段,并将其发送到fpga中,以用于在该网络接口卡中进行压缩操作,如箭头222所指示的路径。同样可以证明,相比于cpu而言,基于fpga的网络接口卡更适于执行压缩/解压缩操作。可选地,可以在该网络接口卡中对压缩后的数据段进行加密操作,如虚线方框207所示。根据本公开的实施例,在该压缩操作206或可选的加密操作207之后,将在该网络接口卡中压缩后的数据段或加密后的数据段写入到第二缓存中,如箭头223所指示的路径。根据图2所示的实施例,该第二缓存例如为用于存储压缩数据的压缩数据缓存233。根据图2所示的实施例,该第二缓存同样被配置为存储器230的一部分。通过图2所示的实施例可以看出,与传统的网络接口卡相比,基于fpga的网络接口卡的设计在pcie总线上仅额外地引入了针对的锚点(anchor)、摘要数据、以及压缩数据的流量。图3示出了根据本公开实施例的用于数据备份的设备的框图300。设备300包括下面主要装置:数据分段装置310,用于在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;摘要数据确定装置320,用于在该网络接口卡中,为各个数据段确定相应的摘要数据;以及去重确定装置330,用于在中央处理器中,将该各个数据段的该摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作,以执行数据备份。根据本公开的实施例,该网络接口卡被配置为基于现场可编程门阵列fpga的网络接口卡。根据本公开的实施例,该摘要数据确定装置320包括:安全哈希算法单元,用于在该网络接口卡中,为各个数据段基于安全哈希算法来确定相应的摘要数据。根据本公开的实施例,该设备300还包括:数据预处理装置, 用于在对该第一数据进行分段处理之前,通过协议处理,从输入到该网络接口卡中的数据包中获得该第一数据。根据本公开的实施例,该去重确定装置330包括:去重执行单元,用于如果该摘要数据与已有摘要数据中的任何一个相匹配,则该中央处理器对与该摘要数据相对应的数据段进行去重操作。根据本公开的实施例,该去重确定装置330包括:压缩判定单元,用于如果该摘要数据不与已有摘要数据中的任何一个相匹配,则中该中央处理器确定与该摘要数据相对应的数据段确定为无法进行去重操作的数据段;以及压缩执行单元,用于在该网络接口卡中对该无法进行去重操作的数据段进行压缩操作。根据本公开的实施例,该设备300还包括:加密单元,用于在该网络接口卡中对压缩后的数据段进行加密操作。根据本公开的实施例,该设备300还包括:第一数据写入单元,用于在为每个数据段确定相应的摘要数据之后,从该网络接口卡中将该摘要数据连同与该摘要数据相对应的该数据段写入到第一缓存中。根据本公开的实施例,该设备300还包括:第一数据读取单元,用于在将该摘要数据与已有摘要数据逐一地进行比较之前,中央处理器从该第一缓存中读取该摘要数据。根据本公开的实施例,该设备300还包括:在第二数据读取单元,用于将该摘要数据与已有摘要数据逐一地进行比较之后,中央处理器从该第一缓存中读取该无法进行去重操作的数据段,用于在该网络接口卡中的压缩操作。根据本公开的实施例,该设备300还包括:第二数据写入单元,用于在该压缩操作或该加密操作之后,将在该网络接口卡中压缩后的数据段或加密后的数据段写入到第二缓存中。综上所述,本公开的各个实施例提供了一种用于数据备份的方法设备,该方法包括:在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;在该网络接口卡中,为各个数据段确 定相应的摘要数据;以及在中央处理器中,将该各个数据段的该摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作,以执行数据备份。由于将一部分例如数据分段、压缩/解压缩、加密/解密等尤其适于网络接口卡执行的操作移入到网络接口卡中执行,因此降低了对cpu的资源占用,从而在整体上实现了性价比以及功耗性能比的优化。此外,利用本公开的所述方法以及设备执行的数据备份操作,使得数据在被备份到存储设备之前就进行了高效的在线去重操作,从而有效地减少了重复数据对存储空间的占用。以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1