CN106933701A - 用于数据备份的方法及设备 - Google Patents

用于数据备份的方法及设备 Download PDF

Info

Publication number
CN106933701A
CN106933701A CN201511023162.8A CN201511023162A CN106933701A CN 106933701 A CN106933701 A CN 106933701A CN 201511023162 A CN201511023162 A CN 201511023162A CN 106933701 A CN106933701 A CN 106933701A
Authority
CN
China
Prior art keywords
data
nic
summary data
segment
data segment
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.)
Pending
Application number
CN201511023162.8A
Other languages
English (en)
Inventor
王鲲
邹勇
叶诚
李玉伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC Corp filed Critical EMC Corp
Priority to CN201511023162.8A priority Critical patent/CN106933701A/zh
Priority to US15/387,841 priority patent/US10459642B2/en
Publication of CN106933701A publication Critical patent/CN106933701A/zh
Priority to US16/572,165 priority patent/US11334255B2/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本公开的各种实施例提供了一种用于数据备份的方法及设备,该方法包括:在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;在该网络接口卡中,为各个数据段确定相应的摘要数据;以及在中央处理器中,将该各个数据段的该摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作,以执行数据备份。

Description

用于数据备份的方法及设备
技术领域
本公开的各种实施例总体上涉及存储领域,并更为具体地涉及用于数据备份的方法及设备。
背景技术
在数据存储设备中,例如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)等不同接口输入的数据包(data packet)中提取相应的原始数据,以用于随后的分段处理。
根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作包括如果该摘要数据与已有摘要数据中的任何一个相匹配,则该中央处理器对与该摘要数据相对应的数据段进行去重操作。
根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作包括如果该摘要数据不与已有摘要数据中的任何一个相匹配,则该中央处理器确定与该摘要数据相对应的数据段确定为无法进行去重操作的数据段;以及在该网络接口卡中对该无法进行去重操作的数据段进行压缩操作。
这种在数据备份到存储设备之前进行的在线(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所指示的路径。
根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作包括如果该摘要数据与已有摘要数据中的任何一个相匹配,则该中央处理器对与该摘要数据相对应的数据段进行去重操作。
根据本公开的一个具体示例,全部已有的摘要数据可以被存储在例如摘要数据查找表(lookup table)中,以便使与待被备份的数据段对应的摘要数据与已有数据摘要进行快速比较。
根据本公开的实施例,在该中央处理器中,将该各个数据段的该摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与该摘要数据对应的数据段进行去重操作还包括如果该摘要数据不与已有摘要数据中的任何一个相匹配,则该中央处理器确定与该摘要数据相对应的数据段确定为无法进行去重操作的数据段,即,的确需要被备份到存储设备中的被更新/被添加的数据段;以及在该网络接口卡中对该无法进行去重操作的数据段进行压缩操作,如虚线方框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的资源占用,从而在整体上实现了性价比以及功耗性能比的优化。此外,利用本公开的所述方法以及设备执行的数据备份操作,使得数据在被备份到存储设备之前就进行了高效的在线去重操作,从而有效地减少了重复数据对存储空间的占用。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

Claims (24)

1.一种用于数据备份的方法,包括:
在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;
在所述网络接口卡中,为各个数据段确定相应的摘要数据;以及
在中央处理器中,将所述各个数据段的所述摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与所述摘要数据对应的数据段进行去重操作,以执行数据备份。
2.根据权利要求1所述的方法,其中所述网络接口卡被配置为基于现场可编程门阵列FPGA的网络接口卡。
3.根据权利要求1或2所述的方法,其中在所述网络接口卡中,为各个数据段确定相应的摘要数据包括:
在所述网络接口卡中,为各个数据段基于安全哈希算法来确定相应的摘要数据。
4.根据权利要求1或2所述的方法,还包括:
在对所述第一数据进行分段处理之前,通过协议处理,从输入到所述网络接口卡中的数据包中获得所述第一数据。
5.根据权利要求1或2所述的方法,其中在所述中央处理器中,将所述各个数据段的所述摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与所述摘要数据对应的数据段进行去重操作包括:
如果所述摘要数据与已有摘要数据中的任何一个相匹配,则所述中央处理器对与所述摘要数据相对应的数据段进行去重操作。
6.根据权利要求1所述的方法,其中在所述中央处理器中,将所述各个数据段的所述摘要数据与已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与所述摘要数据对应的数据段进行去重操作包括:
如果所述摘要数据不与已有摘要数据中的任何一个相匹配,则所述中央处理器确定与所述摘要数据相对应的数据段确定为无法进行去重操作的数据段;以及
在所述网络接口卡中对所述无法进行去重操作的数据段进行压缩操作。
7.根据权利要求6所述的方法,还包括:
在所述网络接口卡中对压缩后的数据段进行加密操作。
8.根据权利要求1或2所述的方法,还包括:
在为每个数据段确定相应的摘要数据之后,从所述网络接口卡中将所述摘要数据连同与所述摘要数据相对应的所述数据段写入到第一缓存中。
9.根据权利要求6所述的方法,还包括:
在将所述摘要数据与已有摘要数据逐一地进行比较之前,由中央处理器从所述第一缓存中读取所述摘要数据。
10.根据权利要求6所述的方法,还包括:
在将所述摘要数据与已有摘要数据逐一地进行比较之后,由中央处理器从所述第一缓存中读取所述无法进行去重操作的数据段,以用于在所述网络接口卡中的压缩操作。
11.根据权利要求6或7所述的方法,还包括:
在所述压缩操作或所述加密操作之后,将在所述网络接口卡中压缩后的数据段或加密后的数据段写入到第二缓存中。
12.一种用于数据备份的设备,包括:
数据分段装置,用于在网络接口卡中,对输入的第一数据进行分段处理,以获得多个数据段;
摘要数据确定装置,用于在所述网络接口卡中,为各个数据段确定相应的摘要数据;以及
去重确定装置,用于在中央处理器中,将所述各个数据段的所述摘要数据与对应于已处理数据段的已有摘要数据逐一地进行比较,并基于比较结果来确定是否将与所述摘要数据对应的数据段进行去重操作,以执行去重操作。
13.根据权利要求12所述的设备,其中所述网络接口卡被配置为基于现场可编程门阵列FPGA的网络接口卡。
14.根据权利要求12或13所述的设备,其中所述摘要数据确定装置包括:
安全哈希算法单元,用于在所述网络接口卡中,为各个数据段基于安全哈希算法来确定相应的摘要数据。
15.根据权利要求12或13所述的设备,还包括:
数据预处理装置,用于在对所述第一数据进行分段处理之前,通过协议处理,从输入到所述网络接口卡中的数据包中获得所述第一数据。
16.根据权利要求12或13所述的设备,其中所述去重确定装置包括:
去重执行单元,用于如果所述摘要数据与已有摘要数据中的任何一个相匹配,则所述中央处理器对与所述摘要数据相对应的数据段进行去重操作。
17.根据权利要求12所述的设备,其中所述去重确定装置包括:
压缩判定单元,用于如果所述摘要数据不与已有摘要数据中的任何一个相匹配,则中所述中央处理器确定与所述摘要数据相对应的数据段确定为无法进行去重操作的数据段;以及
压缩执行单元,用于在所述网络接口卡中对所述无法进行去重操作的数据段进行压缩操作。
18.根据权利要求17所述的设备,还包括:
加密单元,用于在所述网络接口卡中对压缩后的数据段进行加密操作。
19.根据权利要求12或13所述的设备,还包括:
第一数据写入单元,用于在为每个数据段确定相应的摘要数据之后,从所述网络接口卡中将所述摘要数据连同与所述摘要数据相对应的所述数据段写入到第一缓存中。
20.根据权利要求17所述的设备,还包括:
第一数据读取单元,用于在将所述摘要数据与已有摘要数据逐一地进行比较之前,由中央处理器从所述第一缓存中读取所述摘要数据。
21.根据权利要求17所述的设备,还包括:
在第二数据读取单元,用于将所述摘要数据与已有摘要数据逐一地进行比较之后,由中央处理器从所述第一缓存中读取所述无法进行去重操作的数据段,用于在所述网络接口卡中的压缩操作。
22.根据权利要求17或18所述的设备,还包括:
第二数据写入单元,用于在所述压缩操作或所述加密操作之后,将在所述网络接口卡中压缩后的数据段或加密后的数据段写入到第二缓存中。
23.一种用于数据备份的计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1-11任一项所述的方法的步骤。
24.一种数据存储设备,所述数据存储设备用于执行根据权利要求1-11中任一项所述的用于数据备份的方法。
CN201511023162.8A 2015-12-30 2015-12-30 用于数据备份的方法及设备 Pending CN106933701A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201511023162.8A CN106933701A (zh) 2015-12-30 2015-12-30 用于数据备份的方法及设备
US15/387,841 US10459642B2 (en) 2015-12-30 2016-12-22 Method and device for data replication
US16/572,165 US11334255B2 (en) 2015-12-30 2019-09-16 Method and device for data replication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511023162.8A CN106933701A (zh) 2015-12-30 2015-12-30 用于数据备份的方法及设备

Publications (1)

Publication Number Publication Date
CN106933701A true CN106933701A (zh) 2017-07-07

Family

ID=59226559

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511023162.8A Pending CN106933701A (zh) 2015-12-30 2015-12-30 用于数据备份的方法及设备

Country Status (2)

Country Link
US (2) US10459642B2 (zh)
CN (1) CN106933701A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721840A (zh) * 2019-10-18 2021-11-30 华为技术有限公司 数据访问方法、装置和第一计算设备
CN115118738A (zh) * 2022-08-30 2022-09-27 深圳华锐分布式技术股份有限公司 基于rdma的灾备方法、装置、设备及介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106933701A (zh) * 2015-12-30 2017-07-07 伊姆西公司 用于数据备份的方法及设备
US10853257B1 (en) * 2016-06-24 2020-12-01 EMC IP Holding Company LLC Zero detection within sub-track compression domains
CN108984334B (zh) 2017-06-02 2021-11-05 伊姆西Ip控股有限责任公司 用于管理会话的方法和设备
KR102421774B1 (ko) * 2018-02-12 2022-07-18 삼성디스플레이 주식회사 표시 장치
US11269776B2 (en) 2019-10-17 2022-03-08 EMC IP Holding Company LLC Direct input/output path to compressed data
CN112988202B (zh) * 2021-04-27 2021-09-03 成都成电光信科技股份有限公司 一种fc模块升级的系统及方法
US11669496B2 (en) * 2021-07-21 2023-06-06 Huawei Technologies Co., Ltd. Method and apparatus for replicating a target file between devices
US11847316B2 (en) * 2022-04-18 2023-12-19 Dell Products L.P. System and method for managing data storage in network interface controllers
US11861166B2 (en) * 2022-04-18 2024-01-02 Dell Products L.P. System and method for network interface controller based data deduplication
CN116136673B (zh) * 2023-04-19 2023-07-21 合肥安迅精密技术有限公司 贴片机整机控制系统及方法、贴片机

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
CN102298547A (zh) * 2011-09-20 2011-12-28 杭州华三通信技术有限公司 一种数据备份方法及其装置
CN102722583A (zh) * 2012-06-07 2012-10-10 无锡众志和达存储技术有限公司 重复数据删除硬件加速装置和方法
CN104683359A (zh) * 2015-03-27 2015-06-03 成都三零瑞通移动通信有限公司 一种安全通道建立方法及其数据保护方法和安全通道秘钥更新方法
US20150286414A1 (en) * 2014-04-03 2015-10-08 Strato Scale Ltd. Scanning memory for de-duplication using rdma

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100199065A1 (en) * 2009-02-04 2010-08-05 Hitachi, Ltd. Methods and apparatus for performing efficient data deduplication by metadata grouping
US9703796B2 (en) * 2011-12-06 2017-07-11 Brocade Communications Systems, Inc. Shared dictionary between devices
US8918372B1 (en) 2012-09-19 2014-12-23 Emc Corporation Content-aware distributed deduplicating storage system based on consistent hashing
US9495379B2 (en) * 2012-10-08 2016-11-15 Veritas Technologies Llc Locality aware, two-level fingerprint caching
EP2963965B1 (en) * 2013-03-27 2022-02-16 Huawei Technologies Co., Ltd. Method, apparatus, and device for measuring radio resource management information
US9817602B2 (en) * 2014-11-13 2017-11-14 Violin Systems Llc Non-volatile buffering for deduplication
US9804934B1 (en) 2014-12-30 2017-10-31 EMC IP Holding Company LLC Production recovery using a point in time snapshot
US10067836B1 (en) 2015-03-17 2018-09-04 EMC IP Holding Company LLC Configuration based intelligent protection modeling
US9996429B1 (en) 2015-04-14 2018-06-12 EMC IP Holding Company LLC Mountable container backups for files
US9946603B1 (en) 2015-04-14 2018-04-17 EMC IP Holding Company LLC Mountable container for incremental file backups
US10078555B1 (en) 2015-04-14 2018-09-18 EMC IP Holding Company LLC Synthetic full backups for incremental file backups
US10102080B1 (en) 2015-06-30 2018-10-16 EMC IP Holding Company LLC Accessing de-duplication services from an application using a file system filter driver for backup and restore
US9798607B1 (en) 2015-06-30 2017-10-24 EMC IP Holding Company LLC System and method for smart error handling mechanism for an application
US10225331B1 (en) 2015-09-23 2019-03-05 EMC IP Holding Company LLC Network address translation load balancing over multiple internet protocol addresses
US9830228B1 (en) 2015-10-01 2017-11-28 EMC IP Holding Company LLC Intelligent backup model for snapshots
US9804957B1 (en) 2015-10-01 2017-10-31 EMC IP Holding Company LLC Block tracking data validation backup model
US10042711B1 (en) 2015-12-18 2018-08-07 EMC IP Holding Company LLC Distributed data protection techniques with cloning
CN106933701A (zh) * 2015-12-30 2017-07-07 伊姆西公司 用于数据备份的方法及设备
US10146590B1 (en) 2016-03-31 2018-12-04 EMC IP Holding Company LLC Automatically deploying a virtualized object store in an open stack tenant name space
US9971655B1 (en) 2016-06-29 2018-05-15 EMC IP Holding Company LLC Primed application recovery
US10116569B1 (en) 2016-08-19 2018-10-30 EMC IP Holding Company LLC Embedded diagnostic tool for prediction of problems relating to network bandwidth
US10152387B1 (en) 2016-12-23 2018-12-11 EMC IP Holding Company LLC Instant start of virtual machine from archive copy on backup media

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110055471A1 (en) * 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
CN102298547A (zh) * 2011-09-20 2011-12-28 杭州华三通信技术有限公司 一种数据备份方法及其装置
CN102722583A (zh) * 2012-06-07 2012-10-10 无锡众志和达存储技术有限公司 重复数据删除硬件加速装置和方法
US20150286414A1 (en) * 2014-04-03 2015-10-08 Strato Scale Ltd. Scanning memory for de-duplication using rdma
CN104683359A (zh) * 2015-03-27 2015-06-03 成都三零瑞通移动通信有限公司 一种安全通道建立方法及其数据保护方法和安全通道秘钥更新方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113721840A (zh) * 2019-10-18 2021-11-30 华为技术有限公司 数据访问方法、装置和第一计算设备
CN115118738A (zh) * 2022-08-30 2022-09-27 深圳华锐分布式技术股份有限公司 基于rdma的灾备方法、装置、设备及介质
CN115118738B (zh) * 2022-08-30 2022-11-22 深圳华锐分布式技术股份有限公司 基于rdma的灾备方法、装置、设备及介质

Also Published As

Publication number Publication date
US20170192701A1 (en) 2017-07-06
US11334255B2 (en) 2022-05-17
US20200012440A1 (en) 2020-01-09
US10459642B2 (en) 2019-10-29

Similar Documents

Publication Publication Date Title
CN106933701A (zh) 用于数据备份的方法及设备
CN108427538B (zh) 全闪存阵列的存储数据压缩方法、装置、及可读存储介质
US8300823B2 (en) Encryption and compression of data for storage
US10416915B2 (en) Assisting data deduplication through in-memory computation
EP3376393A1 (en) Data storage method and apparatus
WO2014094479A1 (zh) 重复数据删除方法和装置
US9632720B2 (en) Data de-duplication
US11917072B2 (en) Implementing opportunistic authentication of encrypted data
US20170123710A1 (en) Deduplication of encrypted data
CN115941598A (zh) 一种流表半卸载方法、设备及介质
US10873467B2 (en) Method and system for compression and optimization of in-line and in-transit information security data
US8452900B2 (en) Dynamic compression of an I/O data block
US12014535B2 (en) System, client apparatus, data processing method, computer program and recording medium
CN113507482A (zh) 数据安全传输方法、安全交易方法、系统、介质和设备
US20230267217A1 (en) Method and system for differential deduplication in untrusted storage
US20220129417A1 (en) Code Similarity Search
US9734154B2 (en) Method and apparatus for storing a data file
US11977518B2 (en) Method and system for data deduplication and compression in untrusted storage system
CN109240849B (zh) 数据备份方法、装置及用于视频会议系统的多点控制单元
CN106855930B (zh) 一种安全可靠的大数据存储系统及方法
US11263177B2 (en) Identification of portions of data
CN111130788A (zh) 数据处理方法和系统、数据读取方法和iSCSI服务器
CN111061731B (zh) 一种加密数据全文检索方法
Nandhagopal et al. ETTG: Enhanced token and tag generation for authenticating users and deduplicating data stored in public cloud storage
CN104796305A (zh) 一种安全审计的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200423

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.