CN109309706B - 在云局域网的存储***间共享指纹和数据块的方法和*** - Google Patents

在云局域网的存储***间共享指纹和数据块的方法和*** Download PDF

Info

Publication number
CN109309706B
CN109309706B CN201810842597.2A CN201810842597A CN109309706B CN 109309706 B CN109309706 B CN 109309706B CN 201810842597 A CN201810842597 A CN 201810842597A CN 109309706 B CN109309706 B CN 109309706B
Authority
CN
China
Prior art keywords
fingerprint
pss
query
subset
psss
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.)
Active
Application number
CN201810842597.2A
Other languages
English (en)
Other versions
CN109309706A (zh
Inventor
A·纳塔宗
S·张
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 IP Holding Co LLC
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 IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Publication of CN109309706A publication Critical patent/CN109309706A/zh
Application granted granted Critical
Publication of CN109309706B publication Critical patent/CN109309706B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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]
    • 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/0608Saving storage space on storage systems
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

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

Abstract

一种用于在云局域网上的存储***之间共享预先计算的指纹和数据块的方法和***。具体地,所公开的方法和***将数据重复删除存储***的功能扩展为包括当指纹和数据块未被本地存储时查询云局域网上的其他数据重复删除存储***以查找对应于数据块的指纹。通过云局域网在一个数据重复删除存储***到另一个之间传输数据块可以是对通过广域网在数据重复删除存储***和客户端之间传输数据块的更快和更便宜的替代。

Description

在云局域网的存储***间共享指纹和数据块的方法和***
技术领域
本公开的各实施例涉及数据传输领域。
背景技术
当考虑将软件和/或数据部署到云时,与位于云内部的***之间的数据流量的交换相比,云与位于云外部的***之间的数据流量的交换可能在大体更慢的速度和更大的费用下进行。
发明内容
在一个方面,根据本发明的一个或多个实施例的实现数据块传输的方法包括:从客户端接收包括第一指纹的第一备份请求;生成包括所述第一指纹的第一指纹查询;将所述第一指纹查询发送到保护存储***(PSS)集合的的第一PSS子集;和响应于所述第一指纹查询并从所述第一PSS子集中的至少一个PSS获得与所述第一指纹相关联的第一数据块。
在一个方面,一种***包括:保护存储***(PSS)集合;和通过广域网(WAN)可操作地连接到所述PSS集合的客户端,其中,所述PSS集合中的PSS被编程为:从所述客户端接收包括指纹的备份请求;生成包括所述指纹的指纹查询;将所述指纹查询发送到所述 PSS集合的PSS子集,其中,所述PSS子集不包括所述PSS;和响应于所述指纹查询并从所述PSS子集中的至少一个PSS获得与所述指纹相关联的数据块。
在一个方面,根据本发明的一个或多个实施例的包括计算机可读程序代码的非暂时性计算机可读介质(CRM),所述计算机可读程序代码在由计算机处理器执行时使所述计算机处理器能够:从客户端接收包括第一指纹的第一备份请求;生成包括所述第一指纹的第一指纹查询;将所述第一指纹查询发送到保护存储***(PSS)集合的第一 PSS子集;和响应于所述第一指纹查询并从所述第一PSS子集中的至少一个PSS获得与所述第一指纹相关联的第一数据块。
附图说明
图1示出了根据本发明的一个或多个实施例的***。
图2示出了根据本发明的一个或多个实施例的保护存储***。
图3A和3B示出了描述根据本发明的一个或多个实施例的用于在云局域网上发现保护存储***的方法的流程图。
图4A和4B示出了描述根据本发明的一个或多个实施例的用于发现在云局域网上的保护存储***的方法的流程图。
图5A-5C示出了描述根据本发明的一个或多个实施例的用于在云局域网上的保护存储***之间共享指纹和数据块的方法的流程图。
图6A和6B示出了描述根据本发明的一个或多个实施例的用于选择在云局域网上的保护存储***作为查询接收者的方法的流程图。
图7示出了根据本发明的一个或多个实施例的示例***。
图8示出了根据本发明的一个或多个实施例的计算***。
具体实施方式
现在将参考附图详细描述本发明的特定实施例。在以下对本发明的实施例的详细描述中,阐述了许多具体细节以便提供对本发明的更透彻的理解。然而,对于本领域普通技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细描述众所周知的特征以避免使描述不必要地复杂化。
在以下对图1-8的描述中,在本发明的各种实施例中,关于附图描述的任何组件可以等同于关于任何其他附图描述的一个或多个名称相似的组件。为简洁起见,关于每个附图,将不再重复对这些组件的描述。因此,每个附图的组件的每个实施例通过引用并入,并且假设可选地存在于具有一个或多个名称相似的组件的每个其他图中。另外,根据本发明的各种实施例,附图的组件的任何描述将被解释为可选实施例,其可以附加于、结合或代替关于任何其他图中相应的名称相似的组件描述的实施例来实现。
在整个申请中,序数(例如,第一、第二、第三等)可以用作元件(即,应用中的任何名词)的形容词。除非明确公开,例如通过使用术语“之前”、“之后”、“单个”和其他此类术语,否则序数的使用不一定暗示或创建元件的任何特定排序,也不限制任何元件仅为单个元件。相反,序数的使用是为了区分元件。作为示例,第一元件不同于第二元件,并且第一元件可以包含多于一个元件并且在元件的排序中可以位于第二元件之后(或之前)。
通常,本发明的实施例涉及用于在云局域网上的存储***之间共享预先计算的指纹和数据块的方法和***。具体地,本发明的一个或多个实施例扩展了数据重复删除(deduplicate)存储***的功能以包括当指纹和数据块未被本地存储时查询云局域网上的其他数据重复删除存储***以查找对应于数据块的指纹。通过云局域网在一个数据重复删除存储***与另一个之间传输数据块可以是对通过广域网在数据重复删除存储***和客户端之间传输数据块的更快和更便宜的替代。
图1示出了根据本发明的一个或多个实施例的***。***(100) 包括通过广域网(WAN)(108)可操作地连接到云局域网(LAN) (104)的客户端(102)。此外,云LAN(104)包括一组保护存储***(PSS)(106A-106N)。下面描述这些组件中的每一个。
在本发明的一个实施例中,客户端(102)可以是被编程为与至少一个或多个PSS(106A-106N)交互的任何计算***(参见例如图 8)。具体地,客户端(102)可以包括以下功能:(i)生成备份请求 (用于数据块存储)并将其提交给一个或多个PSS(106A-106N),其中备份请求包括指纹(下面讨论);(ii)当一个或多个PSS (106A-106N)通知不是一个PSS(106A-106N)具有编目/存储在它们各自的本地指纹数据库(参见例如图2)中的指纹时,向一个或多个PSS(106A-106N)提供与指纹相关联的存储的数据块;(iii)从一个或多个PSS(106A-106N)接收备份响应,该备份响应可以指示至少一个PSS(106A-106N)已经存储了所提供的指纹的数据块,这意味着客户端(102)不需要将数据块上传到一个或多个PSS(106A-106N)。作为示例,客户端(102)可以是台式计算机、膝上型计算机、智能电话、服务器、大型计算机、数据中心终端等。
在本发明的一个实施例中,云LAN(104)可以是基于云的(即,基于因特网的)网络或互连计算***(参见例如图8)的集群。共同地,云LAN(104)可以包括以服务和应用的形式为一个或多个客户端(102)提供共享计算机处理和存储资源的功能。在本发明的一个实施例中,云LAN(104)包括一组(例如,两个或更多个)PSS (106A-106N)(下面描述)。云LAN(104)还可以包括附加组件 (未示出),诸如,例如,网络交换机、网络路由器、服务器和其他类型的计算***,其可以:(i)在形成云LAN(104)的各种互连计算***之间促进通信和信息交换;和/或(ii)提供上述共享计算机处理和存储资源的至少一部分。此外,在本发明的一个实施例中,云 LAN(104)的互连计算***可以使用有线或无线连接的任何组合直接或间接地彼此连接,这可以通过现有或未来开发的有线和/或无线通信协议的任何组合来实现。
在本发明的一个实施例中,保护存储***(PSS)(106A-106N) 可以是使用任何类型的存储单元和/或设备(例如,文件***、数据库、表的集合,或任何其他存储机制)实现的后端数据存储库。PSS (106A-106N)可以使用多个存储单元和/或设备来实现,这些存储单元和/或设备可以是或可以不是相同类型或可以位于或可以不位于相同物理站点。在本发明的一个实施例中,可以使用一个或多个服务器来实现PSS(106A-106N)。此外,PSS(106A-106N)可以包括维持、管理或以其他方式备份数据的功能。更具体地,PSS(106A-106N) 可以包括存储经重复删除的数据的功能。经重复删除的数据可以指在存储之前经过重复删除的数据。普通技术人员将理解,重复删除是指旨在消除重复数据块(或区块)的数据压缩技术,因此其集中于仅存储唯一数据块(或区块)。在本发明的一个实施例中,PSS(106A-106N) 可以包括持久存储装置。托管在PSS(106A-106N)上的持久存储装置的示例包括但不限于光学存储装置、磁存储装置、NAND闪存、 NOR闪存、磁RAM存储器(M-RAM)、自旋扭矩磁RAM存储器(ST-MRAM)、相变存储器(PCM)以及定义为非易失性存储装置类存储器(SCM)的任何其他存储器。PSS(106A-106N)在下面参考图2进一步详细描述。
在本发明的一个实施例中,客户端(102)和云LAN(104)可以通过WAN(108)可操作地彼此连接。WAN(108)可以是互连LAN 的网络或集群,其中上述互连LAN集群至少包括云LAN(104)和客户端(102)所在的LAN(未示出)。WAN(108)的组件(例如,计算***(参见例如图8))可以使用有线或无线连接的任何组合直接或间接地彼此连接。在这些组件彼此间接连接的实施例中,可以存在便于这些组件之间的通信和信息交换的其他网络基础设施组件或***(例如,交换机、路由器、服务器等)。而且,这些组件可以使用有线和/或无线通信协议的任何组合彼此通信。
虽然图1示出了组件的配置,但是在不脱离本发明的范围的情况下可以使用其他***配置。例如,在本发明的一个实施例中,***(100) 还可以包括PSS注册平台(PRP)(未示出)。在这样的实施例中, PRP可以是提供PSS(106A-106N)的集中管理的硬件和/或软件实现的服务。这样,PRP可以包括以下功能:(i)从新安装的PSS(106A-106N) 接收注册包(下面描述);(ii)基于所接收的注册包中包括的至少一部分内容,注册(即,创建注册条目)新安装的PSS(106A-106N); (iii)将与新安装的PSS(106A-106N)相关联的信息(例如,PSSID、媒体访问控制(MAC)地址、互联网协议(IP)地址等)共享给云 LAN(104)上的现有PSS(106A-106N);(iv)将与云LAN(104) 上的现有PSS(106A-106N)相关联的类似信息共享给新安装的PSS (106A-106N)。在不脱离本发明的范围的情况下,PRP可以执行附加功能。此外,PRP可以托管在物理服务器上(例如,在数据中心中,或者在可以是基于云的虚拟服务器上)。PRP可以托管在单个服务器上,或者可替选地,托管在物理、虚拟或其组合的多个服务器上。在本发明的一个实施例中,PRP可以托管在一个或多个计算***中的任何一个上,该计算***类似于图8中所示的示例性计算***。
图2示出了根据本发明的一个或多个实施例的保护存储*** (PSS)。PSS(200)包括客户端接口(202)、查询接口(204)、优化引擎(206)、指纹数据库(208)和数据块数据库(216)。下面描述这些组件中的每一个。
在本发明的一个实施例中,客户端接口(202)可以是用于启用和促进与一个或多个客户端(222)的信息交换的通信接口。客户端接口(202)可以使用硬件、软件、固件或其任何组合来实现。此外,客户端接口(202)可包括以下经由任何基于WAN的有线和/或无线通信介质和协议实现的功能:(i)从客户端(222)接收备份请求和数据块;以及(ii)将备份响应发送给客户端(222)。在本发明的一个实施例中,客户端接口(202)可以是网络应用程序接口(API),其可以由一个或多个客户端(222)通过网页和基于WAN的连接来访问。客户端接口(202)的示例包括但不限于网络接口控制器/设备、网络套接字、一个或多个计算机端口等。
在本发明的一个实施例中,查询接口(204)可以是用于启用和促进与云LAN(参见例如图1)上的一个或多个其他PSS(224)的信息交换的通信接口。查询接口(204)可以使用硬件、软件、固件或其任何组合来实现。此外,查询接口(202)可包括以下通过任何基于LAN的有线和/或无线通信介质和协议实现的功能:(i)将指纹查询和指纹发送到一个或多个其他PSS(224);以及(ii)从一个或多个其他PSS接收查询响应和数据块(224)。在本发明的一个实施例中,查询接口(204)还可以实现与云LAN上的任何其他计算*** (未示出)的通信。随后,查询接口(204)可以包括以下其他功能:向任何计算***(包括其他PSS(224)和/或PRP(未示出)发送网络包(例如,数据包、地址解析协议(ARP)包、注册包等)/从任何计算***(包括其他PSS(224)和/或PRP(未示出)接收网络包(例如,数据包、地址解析协议(ARP)包、注册包等),以便例如发现其他PSS(224)(参见例如图3A和3B),并注册PSS(200)(参见例如图4A和4B)。在本发明的一个实施例中,查询接口(204) 可以是网络API,其可以使用基于LAN的连接来访问。查询接口(204) 的示例包括但不限于网络接口控制器/设备、网络套接字、一个或多个计算机端口等。
在本发明的一个实施例中,优化引擎(206)可以是在PSS(200) 的底层硬件(例如,一个或多个集成电路(未示出))上执行的至少一个计算机过程(即,至少一个计算机程序的实例)。具体地,优化引擎(206)可以是专用于执行一个或多个优化协议(参见例如图6A 和6B)的至少一个计算机过程。更具体地,优化引擎(206)可以包括以下功能:(i)至少部分地基于从每个其他PSS(224)接收的查询响应为云LAN上的每个其他PSS(224)计算和记录统计和/或度量 (例如,指纹命中概率(FHP)(下面讨论));以及(ii)基于所记录的统计和/或度量的至少一部分,将一个或多个其他PSS(224) 识别为由查询接口(204)生成和发送的未来指纹查询的接收者。
在本发明的一个实施例中,指纹数据库(208)可以是维持一个或多个指纹数据库条目(210A-210N)的存储库。每个指纹数据库条目(210A-210N)可以存储将指纹(212)与存储ID(214)相关联的映射。此外,指纹数据库(208)可以由PSS内核(未示出)(即,集成电路或在集成电路上执行的核心计算机程序)基于数据块数据库条目(218A-218N)的分配或解除分配来编程。
在本发明的一个实施例中,指纹(212)可以是唯一地识别数据块(220)的数字签名(即,包括字母、数字、符号等的位串或字符串)。可以通过经由散列(hash)函数(未示出)提交数据块(220) 来计算指纹(212),散列函数可以采用现有和/或未来开发的密码算法的任何组合。这样,指纹(212)可以是由给定用于输入的数据块 (220)的散列函数输出的散列值、散列码或摘要。在本发明的一个实施例中,可以预先计算指纹(212),意味着指纹(212)可以在除 PSS(200)之外的计算***(诸如,例如,客户端(222)或另一个 PSS(224))上计算。普通技术人员将理解,指纹可以被生成(212) 并用于在PSS(200)中实现数据重复删除(如上所述)。因此,指纹(212)在尺寸上可以大致小于可与指纹(212)关联的一个或多个数据块(220)。
在本发明的一个实施例中,存储ID(214)可以是识别符,该识别符对应于存储位置(即,数据块数据库条目(218A-218N)),其中,一个或多个相关联的数据块(220)被存储在该存储位置。存储 ID(214)可以由唯一地识别上述存储位置的字符串(例如,字母、数字、符号等)表示,从而将该存储位置与PSS(200)上的其他存储位置区分开。在本发明的一个实施例中,存储ID(214)可以是分配给存储器或持久存储中的起始字节的二进制地址,一个或多个数据块(220)可以存储在该存储器或持久存储装置处(或从其扩展)。在本发明的另一个实施例中,存储ID(214)可以由PSS内核(未示出)使用任何现有的或未来开发的全球唯一或宇宙唯一识别符生成技术生成。作为示例,存储ID(214)可以是字母数字标签,或者可以是以十六进制表示法表示的N位整数(其中N>0)。
在本发明的一个实施例中,数据块数据库(216)可以是维持一个或多个数据块数据库条目(218A-218N)的存储库。每个数据块数据库条目(218A-218N)可以存储将存储ID(214)与一个或多个数据块(220)相关联的映射。此外,数据块数据库(216)可以由PSS 内核(未示出)基于整个数据重复删除过程中的数据块(220)的存储来编程。
在本发明的一个实施例中,数据块(220)可以是原始备份流(即,提交以供存储的代表性大量数据)的片段或分区。此外,数据块(220) 可以是在整个原始备份流中可被重复(即,两次或更多次)识别的唯一字节模式。在本发明的一个实施例中,每个数据块(220)的大小可以通过在数据重复删除过程中设置的默认或输入参数来确定,否则就被识别为重复删除间隔尺寸并以千字节(KB)或兆字节(MB)测量。
图3A和3B示出了描述根据本发明的一个或多个实施例的用于发现云局域网(LAN)上的保护存储***(PSS)的方法的流程图。虽然顺序地呈现和描述了流程图中的各个步骤,但是普通技术人员将理解,一些或所有步骤可以以不同的顺序执行,可以组合或省略,并且一些或所有步骤可以并行执行。在本发明的一个实施例中,图3A和 3B中所示的步骤可以与图4A-6中所示的任何其他步骤并行执行而不脱离本发明范围。
转到图3A,在步骤300中,在云LAN(参见例如图1)上安装新的PSS。在本发明的一个实施例中,可以安装新的PSS以补充现有的PSS以提供额外的计算机存储资源。在本发明的另一个实施例中,可以安装新的PSS以替换现有的PSS,该现有的PSS(i)可能发生故障或经历故障切换;或(ii)可能正在进行定期维修。在本发明的一个实施例中,安装新PSS可能需要将新PSS可操作地连接到云LAN,然后初始化或激活新PSS。
在步骤302中,在安装到云LAN之后,新PSS(以发现云LAN 上的其他PSS)生成地址解析协议(ARP)包集合。在本发明的一个实施例中,ARP包集合中的每个ARP包都包括指定给云LAN上的计算***的一系列IP地址(不包括与新PSS相关联的IP地址)中的一个不同IP地址。新PSS可以从例如驻留在新PSS上的持久存储装置中的存储位置或随机存取存储器(RAM)中的存储器地址获得上述一些列IP地址,其中在新PSS部署/安装到云LAN之前,该一些列IP 地址可能已经被存储在新PSS上。
在步骤304中,在生成ARP包之后,新PSS在整个云LAN中广播ARP包集合。在本发明的一个实施例中,可以顺序地广播每个ARP 包。在步骤306中,新PSS响应于ARP包(在步骤304中广播)的子集,从云LAN上的计算***集合接收ARP响应集合。在本发明的一个实施例中,ARP响应集合中的每个ARP响应都可以指示云LAN 上的哪些计算***是活动的或活跃的(即,在本文中定义为活动计算***(ACS))。此外,每个ARP响应都可以包括与ACS相关联的MAC地址,该ACS还与ARP响应寻址的相应ARP包中包含的IP地址相关联。
在步骤308中,在确定云LAN上的哪些计算***是ACS之后,新PSS获得PSS服务配置(PSC)。在本发明的一个实施例中,PSC 可以从例如驻留在新PSS上的持久存储装置中的存储位置或随机存取存储器(RAM)中的存储器地址获得,其中在新PSS部署/安装到云LAN之前PSC可能已经被存储在新PSS上。此外,PSC可以概述与PSS专用(即,为由PSS执行的操作所特有)的至少一个服务相关联的端口协议映射。例如,PSS专用的一个服务可以实现PSS的指纹查询功能(以上关于图2提到)。通过另一个示例,PSS专用的另一个服务可以实现PSS之间的数据块的传输。在本发明的一个实施例中,端口协议映射可以随后包括:(i)与PSS特定服务通过其操作的计算***上的网络端口相关联的端口号;(ii)PSS特定服务在 PSS之间传递信息所遵循的网络协议(例如,传输控制协议(TCP)、用户数据协议(UDP)、安全套接字层(SSL)协议等)。
转到图3B,可以针对在步骤306中识别的每个ACS迭代剩余步骤(即,步骤320到328)。在步骤320中,新PSS为PSC中指定的每个端口协议映射生成服务状态请求(SSR)。在本发明的一个实施例中,SSR可以是用于确定与端口协议映射相关联的PSS特定服务是否在ACS上可用的探测器。在步骤322中,在生成SSR集合之后,新PSS至少使用与ACS(在步骤306中通过ARP响应获得)相关联的IP地址将每个SSR发送到ACS。在本发明的一个实施例中,每个 SSR可以使用网络协议发送并寻址到用于PSS特定服务的端口协议映射中指定的(在ACS上的)网络端口。
在步骤324中,新PSS接收端口状态响应(PSR)集合。在本发明的一个实施例中,可以从SSR被发送到的ACS的子集接收PSR集合。PSR集合可以包括:(i)来自相应SSR被发送到的ACS的回复,其指示PSS特定服务正在监听端口号,并使用网络协议;以及(ii) 来自ACS的回复,其指示与端口号相关的ACS上的端口已关闭,或者与端口号的任何后续连接将被拒绝。
在步骤326中,确定所接收的PSR是否指示ACS(至少一个SSR 被发送至该ACS)实现PSS的至少一个服务特性。如果确定所接收的PSR代表指示PSS特定服务正在监听端口号并且使用在相应的发送的SSR中指定的网络协议的回复,则过程进行到步骤328。另一方面,如果确定所接收的PSR可替选地代表指示在相应的发送的SSR 中指定的ACS上的端口号被关闭或者到该端口号的未来连接将被拒绝的回复,则过程结束(即,在这种情况下,ACS不是PSS)。在步骤328中,在确定(在步骤326中)PSS特定服务正在监听端口号并且使用由所发送的SSR指定的网络协议之后,新PSS随后识别ACS (从其接收PSR)作为云LAN上的另一个PSS。自此,该过程结束。
图4A和4B示出了描述根据本发明的一个或多个实施例的用于发现在云局域网(LAN)上的保护存储***(PSS)的方法的流程图。虽然顺序地呈现和描述了流程图中的各个步骤,但是普通技术人员将理解,一些或所有步骤可以以不同的顺序执行,可以组合或省略,并且一些或所有步骤可以并行执行。在本发明的一个实施例中,图4A 和4B中所示的步骤可以与图3A-3B和/或图5A-6中所示的任何其他步骤并行执行而不脱离本发明的范围。
转到图4A,在步骤400中,在云LAN(参见例如图1)上安装新PSS。在本发明的一个实施例中,可以安装新PSS以补充现有的 PSS以提供额外的计算机存储资源。在本发明的另一个实施例中,可以安装新PSS以替换现有的PSS,该现有的PSS(i)可能发生故障或经历故障切换;或(ii)可能正在进行定期维修。在本发明的一个实施例中,安装新PSS可能需要将新PSS可操作地连接到云LAN,然后初始化或激活新PSS。
在步骤402中,在安装到云LAN之后,新PSS获得PSS注册平台(PRP)IP地址。在本发明的一个实施例中,新PSS可以从例如驻留在新PSS上的持久存储装置中的存储位置或随机存取存储器(RAM) 中的存储器地址获得上述PRP IP地址,其中,在新PSS部署/安装到云LAN之前,PRP IP地址可能已被存储在新PSS上。
在步骤404中,新PSS生成注册包。在本发明的一个实施例中,注册包可以包括但不限于:(i)与新PSS相关联的PSS ID;(ii)与新PSS相关联的MAC地址;以及(iii)与新PSS相关联的IP地址。在本发明的一个实施例中,PSS ID可以是用于识别PSS的字符串(例如,字母、数字、符号等)。可以在PSS部署/安装到云LAN上之前将PSS ID提供给PSS。此外,PSS ID可以是区分PSS(例如,新PSS) 与云LAN上的其他PSS(例如,现有PSS)的唯一识别符。作为示例,PSS ID可以是字母数字标签,或者可以是以十六进制表示法表示的N位整数(其中N>0),其可以由管理员提供。
在步骤406中,新PSS发送注册包(在步骤404中生成)。在本发明的一个实施例中,可以向与PRP IP地址(在步骤402中获得) 相关联的PRP发送注册包。如上所述,PRP可以是提供PSS的集中管理的硬件和/或软件实现的服务。
在步骤408中,PRP接收注册包。此后,在步骤410中,基于所接收的注册包中包含的信息的至少一部分,PRP注册新PSS。在本发明的一个实施例中,注册新PSS可能需要:(i)从注册包中至少提取与新PSS相关联的PSS ID、MAC地址和IP地址;以及(ii)在存储在PRP上的PSS注册表(PRT)中生成新表条目,其中新表条目至少包括所提取的与新PSS相关联的PSSID、MAC地址和IP地址。
转到图4B,在步骤420中,在注册新PSS之后,PRP生成注册响应。在本发明的一个实施例中,注册响应可以包括在PRT中的现有表条目集合中指定的信息。具体地,注册响应可以至少包括与云 LAN上的现有PSS集合中的每个现有(即,先前注册的)PSS相关联的PSSID、MAC地址和IP地址。在步骤422中,PRP向新PSS 发送注册响应(在步骤420中生成)。
在步骤424中,新PSS接收PRP发送的注册响应。在本发明的一个实施例中,一旦接收到注册响应,新PSS随后可至少存储:(i) 与存储在新PSS上的路由信息库(RIB)中的每个现有PSS(包括在注册响应中)相关联的IP地址;以及(ii)与存储在新PSS上的转发信息库(FIB)中的每个现有PSS(也包括在注册响应中)相关联的 MAC地址。
在步骤426中,在将注册响应发送到新PSS之后,PRP继续生成注册更新集合。在本发明的一个实施例中,注册更新集合中的每个注册更新都可以包括在PRT(在步骤410中生成)中的新表条目中指定的信息。更具体地,每个注册更新可以至少包括与新PSS相关联的PSS ID、MAC地址和IP地址。
在步骤428中,PRP随后向云LAN上的现有PSS集合广播注册更新集合。在本发明的一个实施例中,每个注册更新可以指向云LAN 上的一个IP地址,其中该一个IP地址可以与现有PSS相关联。此外,在本发明的一个实施例中,可以从存储在PRP上的PRT中的现有表条目集合中获得注册更新集合可以指向的IP地址。在步骤430中,云LAN上的每个现有PSS接收由PRP发送的注册更新集合的相应注册更新。此后,在本发明的一个实施例中,每个现有PSS可以随后至少更新:(i)存储在现有PSS上的RIB,以包括与新PSS相关联的 IP地址(包括在注册更新中);(ii)存储在现有PSS上的FIB,以包括与新PSS相关联的MAC地址(也包括在注册更新中)。自此,该过程结束。
图5A-5C示出了描述根据本发明的一个或多个实施例的用于在云局域网(LAN)上的保护存储***(PSS)之间共享指纹和数据块的方法的流程图。虽然顺序地呈现和描述了流程图中的各个步骤,但是普通技术人员将理解,一些或所有步骤可以以不同的顺序执行,可以组合或省略,并且一些或所有步骤可以并行执行。在本发明的一个实施例中,图5A-5C中所示的步骤可以与图3A-4B和/或图6中所示的任何其他步骤并行执行而不脱离本发明的范围。
转到图5A,在步骤500中,PSS从客户端接收备份请求。在本发明的一个实施例中,备份请求可以通过WAN从客户端发送到PSS。此外,备份请求可以包括唯一地识别数据块的指纹或数字签名。在本发明的一个实施例中,备份请求的目的可以是询问PSS是否具有与已经存储的指纹相关联的数据块或者客户端是否需要通过WAN上载相关联的数据块到PSS以进行存储。
在步骤502中,PSS使用该指纹在指纹数据库上执行搜索或查找。在本发明的一个实施例中,搜索/查找可能需要尝试识别指纹数据库 (参见例如图2)中的至少包括该指纹(在步骤500中接收)的数据库条目。此外,指纹数据库可以是驻留在PSS上的本地指纹数据库,该PSS可以对与可以本地存储在PSS上的数据块相关联的指纹进行编目。
在步骤504中,确定所接收的指纹是否存储在本地指纹数据库中。如果基于搜索/查找确定所接收的指纹未存储在本地指纹数据库中(即,本地指纹数据库中没有数据库条目包括所接收的指纹),则该过程进行到步骤506。另一方面,如果基于搜索/查找可替选地确定所接收的指纹存储在本地指纹数据库中(即,本地指纹数据库中的一个数据库条目包括所接收的指纹),则该过程进行到步骤528(参见例如图5B)。
在步骤506中,在确定(在步骤504中)所接收的指纹未存储在本地指纹数据库中之后,PSS生成指纹查询集合。在本发明的一个实施例中,每个指纹查询可以包括指纹(在步骤500中通过备份请求接收)。此外,指纹查询的目的可以是询问云LAN上的其他PSS是否将指纹存储在它们各自的本地指纹数据库中。
在步骤508中,PSS发送指纹查询集合(在步骤506中生成)。在本发明的一个实施例中,指纹查询集合可以从PSS通过云LAN发送到其他PSS集合。此外,在本发明的一个实施例中,其他PSS集合可以是云LAN上的所有其他PSS的子集。在本发明的一个实施例中,选择所有其他PSS中的哪个或哪些其他PSS来接收指纹查询可以基于优化协议来确定/识别,优化协议的示例在下面参考图6A和6B 进一步详细描述。在本发明的另一个实施例中,可以选择云LAN上的所有其他PSS来接收指纹查询。
在步骤510中,PSS从云LAN上的其他PSS接收查询响应集合 (在步骤508中选择接收指纹查询)。在本发明的一个实施例中,每个查询响应可以是由所选择的其他PSS对指纹查询的回复。因此,每个查询响应可以通知PSS:(i)各自的其他PSS(其发送查询响应) 已经基于在其各自的本地指纹数据库上执行的搜索/查找确定该指纹 (包含在指纹查询中)存储在其他PSS上;或者(ii)各自的其他PSS 已经基于在其各自的本地指纹数据库上执行的搜索/查找确定该指纹未存储在其他PSS上。
转到图5B,在步骤520中,确定在一个所选择的其他PSS是否已经对该指纹(在步骤500中接收的备份请求中指定)进行了编目。如果基于对查询响应集合(在步骤510中接收)的检查确定至少一个所选择的其他PSS确实存储了该指纹,则该过程进行到步骤522。另一方面,如果基于对查询响应集合的检查,可替选地确定所选择的其他PSS都没有存储该指纹,则该过程进行到步骤540(参见例如图5C)。
在步骤522中,在确定(在步骤520中)至少一个所选择的其他 PSS正在存储该指纹之后,PSS从至少一个所选择的其他PSS中的一个获得与该指纹相关联的数据块。在本发明的一个实施例中,选择从中获得数据块的至少一个所选择的其他PSS中的哪一个可以通过如下方式确定:(i)随机;(ii)基于所选择的其他PSS到PSS的路径成本(即接近度);或(iii)基于任何其他选择过程(在不脱离本发明的范围的情况下)。此外,为了向PSS提供数据块,所选择的其他 PSS可以:(i)从PSS接收该指纹的数据块请求;并且响应于接收到数据块请求:(ii)在包含该指纹的本地指纹数据库中识别数据库条目;(iii)获得也在所识别的指纹数据库条目中指定的存储ID;(iv) 在该数据库条目的本地数据块数据库(参见例如图2)(与该存储ID 对应)中识别该数据库条目;(v)获得存储在所识别的数据块数据库条目中的数据块;(vi)生成包括所获得的数据块的数据块响应;以及(vii)通过云LAN将数据块响应发送到PSS。
在步骤524中,在从所选择的其他PSS获得数据块(在步骤522 中)之后,PSS更新其本地数据块数据库。在本发明的一个实施例中,更新本地数据块数据库可能需要在本地数据块数据库中生成新的数据库条目。新数据库条目可以包括数据块(在步骤522中获得)和识别新数据块数据库条目的新存储ID。在本发明的一个实施例中,新存储ID可以是对存储有数据块的PSS上的持久存储装置中的位置的引用。
在步骤526中,PSS随后更新其本地指纹数据库。在本发明的一个实施例中,更新本地指纹数据库可能需要在本地指纹数据库中生成新数据库条目。新数据库条目可以包括指纹(在步骤500中接收)和新存储ID(在步骤524中指定)。此后,在步骤528中,PSS向客户端发出备份响应。在本发明的一个实施例中,如步骤526所述,可以在更新了PSS上的本地指纹数据库之后执行备份响应的发出。在本发明的另一个实施例中,可以通过确定(在步骤504中)该指纹已经存储在PSS上的本地指纹数据库中来导致备份响应的发出。此外,在本发明的一个实施例中,备份响应可以通知客户端已经存储了与该指纹 (在步骤500中通过来自客户端的备份请求接收)相关联的数据块,以及没有必要通过WAN从客户端上载数据块。自此,该过程结束。
转到图5C,在步骤540中,在确定(在步骤520中)其他PSS 都没有存储该指纹(在步骤508中由PSS发送的指纹查询中指定)之后,PSS从客户端获得与该指纹相关联的数据块。在本发明的一个实施例中,为了从客户端获得数据块,PSS可以:(i)向客户端发出(即,生成并发送)备份响应,其中备份响应通知客户端该指纹,并且因此,相关联的数据块尚未被存储;以及(ii)通过WAN并响应于备份响应,接收包括来自客户端的数据块的数据传输。
在步骤542中,在从客户端获得数据块之后,PSS更新其本地数据块数据库。在本发明的一个实施例中,更新本地数据块数据库可能需要在本地数据块数据库中生成新数据库条目。新数据库条目可以包括数据块(在步骤540中获得)和识别新数据块数据库条目的新存储 ID。在本发明的一个实施例中,新存储ID可以是对存储有数据块的 PSS上的持久存储装置中的位置的引用。在步骤544中,PSS随后更新其本地指纹数据库。在本发明的一个实施例中,更新本地指纹数据库可能需要在本地指纹数据库中生成新数据库条目。新数据库条目可以包括指纹(在步骤500中接收)和新存储ID(在步骤542中指定)。
图6A和6B示出了描述根据本发明的一个或多个实施例的用于选择在云局域网(LAN)上的保护存储***(PSS)作为查询接收者的方法的流程图。虽然顺序地呈现和描述了流程图中的各个步骤,但是普通技术人员将理解,一些或所有步骤可以以不同顺序执行,可以组合或省略,并且一些或所有步骤可以并行执行。在本发明的一个实施例中,图6中所示的步骤可以与图3A-5C中所示的任何其他步骤并行执行而不脱离本发明范围。
转到图6A,在步骤600中,PSS初始化备份请求计数(BRC)。在本发明的一个实施例中,BRC可以被实现为驻留在PSS上的集成电路(即计算机处理器)的计数器或寄存器。此外,初始化BRC可能需要将存储在BRC中的初始值设置为零。
在步骤602中,PSS从客户端接收备份请求。在本发明的一个实施例中,备份请求包括指纹。指纹可以是唯一地识别数据块的数字签名。在步骤604中,在接收备份请求时,PSS递增BRC。具体地,在本发明的一个实施例中,PSS将BRC中的存储值增加1以记录所接收的备份请求。
在步骤606中,PSS确定该指纹(在步骤602中接收)未存储在驻留在PSS上的本地指纹数据库中。在本发明的一个实施例中,到达该确定可能需要PSS使用该指纹执行本地指纹数据库的搜索/查找,并且在本地指纹数据库中找不到指定该指纹的一个数据库条目。
在步骤608中,基于步骤606的确定,PSS生成指纹查询集合。在本发明的一个实施例中,指纹查询集合中的每个指纹查询都包括指纹。在步骤610中,PSS将指纹查询集合发送到云LAN上的所有其他PSS的集合。具体地,在本发明的一个实施例中,PSS将(指纹查询集合的)每个不同的指纹查询发送到(所有其他PSS的集合的)不同的其他PSS。此外,在步骤612中,PSS随后从云LAN上的所有其他PSS的集合接收查询响应集合。在本发明的一个实施例中,每个查询响应可以是另一个PSS对指纹查询的回复。因此,每个查询响应都可以通知PSS:(i)各自的其他PSS(其发送查询响应)已经基于在其各自的本地指纹数据库上执行的搜索/查找确定该指纹(包含在指纹查询中)存储在其他PSS上;或者(ii)各自的其他PSS已经基于在其各自的本地指纹数据库上执行的搜索/查找确定该指纹未存储在其他PSS上。
转到图6B,在步骤620中,PSS基于请求响应集合(在步骤612 中接收)维持每个其他PSS的指纹命中统计。具体地,在本发明的一个实施例中,PSS可以维持每个其他PSS的指纹命中概率(FHP)。对于每个其他PSS,相关联的FHP可以指代其他PSS包含该指纹并且通过关联正被搜索的数据块的概率。此外,可以至少部分地通过由一个其他PSS提交的指示其上存储指纹的查询响应与指示其上未存储指纹的查询响应的所记录的比率来计算FHP。
在步骤622中,确定BRC中的存储值是否超过预定计数标准。在本发明的一个实施例中,预定义计数标准可以是预定值,该预定值指定要接收和记录的备份请求的阈值数(即,足够大的样本总体),当到达该阈值数时,导致执行后续步骤,从而识别/选择其他PSS的哪个子集可以是未来指纹查询的接收者。作为示例,预定义计数标准可以将备份请求的阈值数指定为等于一万(10,000)。因此,如果确定BRC超过预定计数标准,则该过程进行到步骤624。另一方面,如果可替选地确定BRC不符合预定计数标准,则该过程进行到步骤602,在步骤602中,PSS接收另一个备份请求。
在步骤624中,在确定(在步骤622中)BRC超过预定计数标准之后,PSS评估与(所有其他PSS的集合中的)一个其他PSS相关联的FHP。在本发明的一个实施例中,FHP的评估可能需要将FHP与预定义的命中概率标准进行比较。预定命中概率标准可以是指定阈值概率(即,所搜索的指纹和数据块存储在另一个PSS上的阈值概率) 的预定值,当达到该预定值时,识别或选择该一个其他PSS作为未来指纹查询的接收者。作为示例,预定命中概率标准可以将阈值概率(以百分比表示)指定为等于百分之八十(80%)。
在步骤626中,确定与该一个其他PSS相关联的FHP是否满足预定义命中概率标准。如果确定FHP满足预定命中概率标准,则该过程进行到步骤628。另一方面,如果可替选地确定FHP未满足预定命中概率标准,则该过程进行到步骤630。
在步骤628中,在确定(在步骤626中)与该一个其他PSS相关联的FHP满足预定义命中概率标准之后,PSS将该一个其他PSS识别为任何未来指纹查询的接收者。在本发明的一个实施例中,将该一个其他PSS与所有其他PSS的集合中的其他PSS区分开可能需要将与该一个其他PSS相关联的唯一PSS ID存储在驻留在PSS上的预留存储器位置或寄存器中。
在步骤630中,确定是否已经评估了所有其他PSS的集合中的每个其他PSS的FHP。在本发明的一个实施例中,在将一个其他PSS 识别为任何未来指纹查询的接收者(根据步骤628)之后,到达该确定可能已经得出。在本发明的另一个实施例中,在确定(在步骤626中)与一个其他PSS相关联的FHP未能满足预定义命中概率标准之后,到达该确定可能已经得出。此外,如果确定已经评估了所有其他 PSS的FHP,则该过程进行到步骤632。另一方面,如果可替选地确定至少一个剩余的FHP(与至少一个剩余的其他PSS相关联)尚未经历评估,该过程进行到步骤624,在步骤624中,与所有PSS集合中的另一个其他PSS相关联的另一个FHP经历评估。
在步骤632中,在确定(在步骤630中)所有其他PSS的相关联 FHP都已经经历评估之后,再次确定是否已经将至少一个其他PSS 识别为由PSS提交的未来指纹查询的接收者。在本发明的一个实施例中,到达该确定可能已导致所有FHP的评估,其中至少一个FHP满足预定义命中概率标准,从而导致将至少一个其他PSS识别为未来指纹查询的接收者。在本发明的另一个实施例中,到达该确定可能已导致所有FHP的评估,其中没有FHP满足预定义命中概率标准,因此导致将所有其他PSS识别为未来指纹查询的非接收者。这样,如果确定所有其他PSS的集合中的至少一个其他PSS已被识别为未来指纹查询接收者,则该过程结束。另一方面,如果可替选地确定所有其他 PSS的集合中的其他PSS都没有被识别为未来指纹查询接收者,则该过程进行到步骤600,在步骤600中,重新初始化BRC并且在图6A 和6B中概述的步骤可以重新执行。
虽然图6A和6B示出了用于指纹查询接收者选择的方法,但是可以使用用于指纹查询接收者选择的其他方法而不脱离本发明的范围。例如,在本发明的一个实施例中,优化引擎(参见例如图2)还可以被配置为在为存储数据块分配的每个PSS中记录存储空间大小(即,数据块数据库的大小)。在该实施例中,随后可以通过按照PSS的所记录的存储空间大小对PSS进行排序来确定指纹查询接收者选择,其中具有用于存储数据块的最大存储空间大小(一个或多个)的PSS(一个或多个)倾向于维持具有正被搜索的指纹进而相关联数据块的更高概率。
图7示出了根据本发明的一个或多个实施例的示例***。结合图 7中所示的组件呈现的以下示例仅用于说明目的,并不意图限制本发明的范围。
转到图7,示例***(700)包括通过WAN(708)可操作地连接到云LAN(704)的客户端(702)。云LAN(704)随后包括四个 PSS(706A-706D)。转到该示例,考虑客户端向PSS(706A)提交备份请求的场景。备份请求包括指纹,并且用于询问PSS是否已经拥有该指纹,并且随后查询与该指纹相关联的数据块。一旦接收到备份请求,PSS就使用该指纹搜索其本地指纹数据库,并确定该指纹未存储在其中。基于该确定,PSS发出(即,生成并发送)指纹查询集合,其中每个指纹查询都包括该指纹。PSS基于在处理先前接收的备份请求集合期间应用的优化协议(参见例如图6A和6B),选择两个其他 PSS(706B,706C)作为指纹查询的接收者。
此后,PSS(706A)从两个所选择的其他PSS(706B,706C)中的每一个接收查询响应。来自两个所选择的其他PSS之一(706B) 的查询响应指示该指纹未存储在其上,然而,来自两个所选择的其他 PSS中的另一个(706C)的查询响应指示该指纹确实存储在其上。基于后一查询响应的指示,PSS(706A)通过云LAN(704)从该另一个PSS(706C)获得与该指纹相关联的数据块(其存储在该另一个 PSS(706C)上)。在接收到数据块时,PSS(706A)更新其本地数据块数据库以包括包含数据块和新存储ID的新数据库条目。然后, PSS(706A)更新其本地指纹数据库以包括包含指纹和新存储ID的另一个新数据库条目。最后,PSS(706A)通过WAN(708)向客户端(702)发出备份响应,通知客户端(702)该指纹(在备份请求中指定)以及与该指纹相关的数据块已经存储在PSS(706A)上。客户端(702)可以随后将备份响应解释为意味着客户端(702)不需要通过WAN(708)将该指纹的数据块上载到PSS(706A)。
可以在计算***上实现本发明的实施例。可以使用移动、桌面、服务器、路由器、交换机、嵌入式设备或其他类型的硬件的任何组合。例如,如图8所示,计算***(800)可以包括一个或多个计算机处理器(802)、非持久存储装置(804)(例如,易失性存储器,诸如随机存取存储器(RAM)、高速缓冲存储器)、持久存储装置(806) (例如,硬盘、光盘驱动器,诸如光盘(CD)驱动器或数字通用盘 (DVD)驱动器、闪存等)、通信接口(812)(例如,蓝牙接口、红外接口、网络接口、光学接口等)以及许多其他元件和功能。
计算机处理器(802)可以是用于处理指令的集成电路。例如,计算机处理器可以是处理器的一个或多个内核或微核。计算***(800) 还可以包括一个或多个输入设备(810),诸如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔或任何其他类型的输入设备。
通信接口(812)可以包括集成电路,其用于将计算***(800) 连接到网络(未示出)(例如,局域网(LAN)、广域网(WAN),诸如互联网、移动网络或任何其他类型的网络)和/或另一个设备,诸如另一个计算设备。
此外,计算***(800)可以包括一个或多个输出设备(808),诸如屏幕(例如,液晶显示器(LCD)、等离子显示器、触摸屏、阴极射线管(CRT)监视器、投影仪或其他显示设备)、打印机、外部存储器或任何其他输出设备。输出设备中的一个或多个可以与输入设备相同或不同。输入和输出设备可以本地或远程连接到计算机处理器 (802)、非持久存储装置(804)和持久存储装置(806)。存在许多不同类型的计算***,并且上述输入和输出设备可以采用其他形式。
用于执行本发明的实施例的计算机可读程序代码形式的软件指令可以全部或部分地临时或持久地存储在诸如CD、DVD、存储设备、磁盘、磁带、闪存、物理存储器或任何其他计算机可读存储介质的非暂时性计算机可读介质上。具体地,软件指令可以对应于计算机可读程序代码,当其由处理器执行时,该计算机可读程序代码被配置为执行本发明的一个或多个实施例。
本发明的实施例提供了一种用于在云LAN上的存储***之间共享预先计算的指纹和数据块的方法和***。具体地,本发明的实施例调用驻留在云LAN上的数据重复删除存储***在它们自身之间传输与指纹相关联的数据块,作为对客户端通过WAN上载数据块的替代。通过云LAN的数据传输可能比通过WAN的数据传输有利,因为: (i)LAN倾向于支持更高的数据传输速率(例如,1000mbps),而 WAN倾向于支持更低的数据传输速率(例如,150mbps)-因此使用云LAN确保数据的存储需要耗时少得多的操作;(ii)通过局域网传输数据倾向于带来极小的(如果不是零)带宽相关成本,而通过广域网传输数据倾向于会产生相当更高的带宽相关成本(通常每月每千兆字节(GB)的数据)-因此使用云LAN减少了存储实施和使用成本。
虽然已经关于有限数量的实施例描述了本发明,但是受益于本公开的本领域技术人员将理解,可以设计出不脱离所公开的本发明的范围的其他实施例。因此,本发明的范围应仅由所附权利要求限制。

Claims (16)

1.一种实现数据块传输的方法,包括:
从客户端接收包括第一指纹的第一备份请求;
生成包括所述第一指纹的第一指纹查询;
将所述第一指纹查询发送到保护存储***PSS集合的第一PSS子集;和
响应于所述第一指纹查询并从所述第一PSS子集中的至少一个PSS获得与所述第一指纹相关联的第一数据块,
在发送所述第一指纹查询之前:
选择所述PSS集合的所述第一PSS子集,其中所述选择由在接收所述第一备份请求之前执行的优化协议确定;
其中执行所述优化协议包括:
从所述客户端接收备份请求集合,其中所述备份请求集合的基数满足预定义的请求计数标准;
基于所述备份请求集合,维持所述PSS集合中的每个PSS的指纹命中概率FHP以获得FHP集合;和
评估所述FHP集合中的每个FHP以选择所述第一PSS子集。
2.根据权利要求1所述的方法,其中评估所述FHP集合中的每个FHP以选择所述第一PSS子集,包括:
确定所述每个FHP满足预定义的命中概率标准;
基于所述确定,将与所述每个FHP相关联的每个PSS识别为指纹查询接收者;和
基于所述识别,将所述每个PSS包括到所述第一PSS子集中。
3.根据权利要求1所述的方法,还包括:
在生成所述第一指纹查询之前:
确定所述第一指纹没有存储在本地指纹数据库中,
其中,响应于所述确定,生成所述第一指纹查询。
4.根据权利要求1所述的方法,还包括:
在获得所述第一数据块后:
在本地数据块数据库中生成包括新存储ID和所述第一数据块的第一数据库条目;
在本地指纹数据库中生成包括所述第一指纹和所述新存储ID的第二数据库条目;和
向所述客户端发出备份响应,所述备份响应指示与所述第一指纹相对应的数据块已被存储。
5.根据权利要求1所述的方法,还包括:
在获得所述第一数据块后:
从所述客户端接收包括第二指纹的第二备份请求;
生成包括所述第二指纹的第二指纹查询;
将所述第二指纹查询发送到所述PSS集合的第二PSS子集;
从所述第二PSS子集接收查询响应集合;
基于所述查询响应集合,确定所述第二PSS子集中的PSS都不包含所述第二指纹;和
响应于所述确定,从所述客户端获得与所述第二指纹相关联的第二数据块。
6.根据权利要求1所述的方法,还包括:
在获得所述第一数据块后:
从所述客户端接收包括第二指纹的第二备份请求;
确定所述第二指纹存储在本地指纹数据库中;和
响应于所述确定并向所述客户端发出备份响应,所述备份响应指示与所述第二指纹相对应的数据块已被存储。
7.一种用于数据块传输的***,包括:
保护存储***PSS集合;和
通过广域网WAN可操作地连接到所述PSS集合的客户端,
其中所述PSS集合中的PSS被编程为:
从所述客户端接收包括指纹的备份请求;
生成包括所述指纹的指纹查询;
将所述指纹查询发送到所述PSS集合的PSS子集,其中所述PSS子集不包括所述PSS;和
响应于所述指纹查询并从所述PSS子集中的至少一个PSS获得与所述指纹相关联的数据块,
在发送所述指纹查询之前:
选择所述PSS集合的所述PSS子集,其中所述选择由在接收所述备份请求之前执行的优化协议确定;
其中执行所述优化协议包括:
从所述客户端接收备份请求集合,其中所述备份请求集合的基数满足预定义的请求计数标准;
基于所述备份请求集合,维持所述PSS集合中的每个PSS的指纹命中概率FHP以获得FHP集合;和
评估所述FHP集合中的每个FHP以选择所述PSS子集。
8.根据权利要求7所述的***,还包括云局域网LAN,其中所述云LAN至少包括所述PSS集合。
9.根据权利要求7所述的***,其中,所述PSS包括被编程为执行优化协议的优化引擎,其中所述优化协议选择所述PSS子集。
10.根据权利要求7所述的***,其中所述***被部署为数据重复删除***。
11.一种包括计算机可读程序代码的非暂时性计算机可读介质CRM,所述计算机可读程序代码在由计算机处理器执行时使所述计算机处理器能够:
从客户端接收包括第一指纹的第一备份请求;
生成包括所述第一指纹的第一指纹查询;
将所述第一指纹查询发送到保护存储***PSS集合的第一PSS子集;和
响应于所述第一指纹查询并从所述第一PSS子集中的至少一个PSS获得与所述第一指纹相关联的第一数据块,
在发送所述第一指纹查询之前:
选择所述PSS集合的第一PSS子集,其中所述选择由在接收所述第一备份请求之前执行的优化协议确定;
其中执行所述优化协议包括:
从所述客户端接收备份请求集合,其中所述备份请求集合的基数满足预定义的请求计数标准;
基于所述备份请求集合,维持所述PSS集合中的每个PSS的指纹命中概率FHP以获得FHP集合;和
评估所述FHP集合中的每个FHP以选择所述第一PSS子集。
12.根据权利要求11所述的非暂时性CRM,其中,为了评估所述FHP集合中的每个FHP,所述计算机可读程序代码在由所述计算机处理器执行时使所述计算机处理器能够:
确定所述每个FHP满足预定义的命中概率标准;
基于所述确定,将与所述每个FHP相关联的每个PSS识别为指纹查询接收者;和
基于所述识别,将所述每个PSS包括到所述第一PSS子集中。
13.根据权利要求11所述的非暂时性CRM,还包括附加的计算机可读程序代码,所述附加的计算机可读程序代码在由所述计算机处理器执行时使所述计算机处理器能够:
在生成所述第一指纹查询之前:
确定所述第一指纹没有存储在本地指纹数据库中,
其中,响应于所述确定,生成所述第一指纹查询。
14.根据权利要求11所述的非暂时性CRM,还包括附加的计算机可读程序代码,所述附加的计算机可读程序代码在由所述计算机处理器执行时使所述计算机处理器能够:
在获得所述第一数据块后:
在本地数据块数据库中生成包括新存储ID和所述第一数据块的第一数据库条目;
在本地指纹数据库中生成包括所述第一指纹和所述新存储ID的第二数据库条目;和
向所述客户端发出备份响应,所述备份响应指示与所述第一指纹相对应的数据块已被存储。
15.根据权利要求11所述的非暂时性CRM,还包括附加的计算机可读程序代码,所述附加的计算机可读程序代码在由所述计算机处理器执行时使所述计算机处理器能够:
在获得所述第一数据块后:
从所述客户端接收包括第二指纹的第二备份请求;
生成包括所述第二指纹的第二指纹查询;
将所述第二指纹查询发送到所述PSS集合的第二PSS子集;
从所述第二PSS子集接收查询响应集合;
基于所述查询响应集合,确定所述第二PSS子集中的PSS都不包含所述第二指纹;和
响应于所述确定,从所述客户端获得与所述第二指纹相关联的第二数据块。
16.根据权利要求11所述的非暂时性CRM,还包括附加的计算机可读程序代码,所述附加的计算机可读程序代码在由所述计算机处理器执行时使所述计算机处理器能够:
在获得所述第一数据块后:
从所述客户端接收包括第二指纹的第二备份请求;
确定所述第二指纹存储在本地指纹数据库中;和
响应于所述确定并向所述客户端发出备份响应,所述备份响应指示与所述第二指纹相对应的数据块已被存储。
CN201810842597.2A 2017-07-27 2018-07-27 在云局域网的存储***间共享指纹和数据块的方法和*** Active CN109309706B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/661,682 US11113153B2 (en) 2017-07-27 2017-07-27 Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US15/661,682 2017-07-27

Publications (2)

Publication Number Publication Date
CN109309706A CN109309706A (zh) 2019-02-05
CN109309706B true CN109309706B (zh) 2022-03-04

Family

ID=63207497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810842597.2A Active CN109309706B (zh) 2017-07-27 2018-07-27 在云局域网的存储***间共享指纹和数据块的方法和***

Country Status (3)

Country Link
US (1) US11113153B2 (zh)
EP (1) EP3435222B1 (zh)
CN (1) CN109309706B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200349016A1 (en) * 2019-04-30 2020-11-05 Clumio, Inc. Change-Based Restore from a Cloud-Based Data Protection Service
CN111177088A (zh) * 2019-12-29 2020-05-19 北京浪潮数据技术有限公司 一种数据重删方法、装置及电子设备和存储介质
US11232074B2 (en) * 2020-05-19 2022-01-25 EMC IP Holding Company LLC Systems and methods for searching deduplicated data
US11360681B2 (en) * 2020-05-27 2022-06-14 Xiaoliang Zhao Systems and methods for scalable shared memory among networked devices comprising IP addressable memory blocks
CN114244855B (zh) * 2020-09-08 2024-01-02 腾讯科技(深圳)有限公司 指纹文件的存储方法、装置、设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183323A (zh) * 2007-12-10 2008-05-21 华中科技大学 一种基于指纹的数据备份***
CN103914522A (zh) * 2014-03-20 2014-07-09 电子科技大学 一种应用于云存储重复数据删除的数据块合并方法
CN104010042A (zh) * 2014-06-10 2014-08-27 浪潮电子信息产业股份有限公司 一种云服务的重复数据删除的备份机制
CN104932841A (zh) * 2015-06-17 2015-09-23 南京邮电大学 一种云存储***中节约型重复数据删除方法
CN105487818A (zh) * 2015-11-27 2016-04-13 清华大学 针对云存储***中重复冗余数据的高效去重方法
WO2017113123A1 (zh) * 2015-12-29 2017-07-06 华为技术有限公司 重复数据删除方法及存储设备

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976134B1 (en) 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
IL147073A0 (en) 2001-12-10 2002-08-14 Monosphere Ltd Method for managing the storage resources attached to a data network
CA2384185A1 (en) 2002-04-29 2003-10-29 Ibm Canada Limited-Ibm Canada Limitee Resizable cache sensitive hash table
JP2005165486A (ja) 2003-12-01 2005-06-23 Sony Corp ファイル管理装置、ストレージ管理システム、ストレージ管理方法、プログラム及び記録媒体
US7284093B2 (en) 2004-01-16 2007-10-16 International Business Machines Corporation Self-tuning cache
US7117310B2 (en) 2004-02-18 2006-10-03 Lsi Logic Corporation Systems and methods for cache synchronization between redundant storage controllers
US7818515B1 (en) 2004-08-10 2010-10-19 Symantec Operating Corporation System and method for enforcing device grouping rules for storage virtualization
US8739020B2 (en) 2005-08-03 2014-05-27 Aol Inc. Enhanced favorites service for web browsers and web applications
US7536500B2 (en) 2006-09-29 2009-05-19 Intel Corporation Header blocks for flash memory writes
US7844581B2 (en) 2006-12-01 2010-11-30 Nec Laboratories America, Inc. Methods and systems for data management using multiple selection criteria
US8214517B2 (en) 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
JP2008217216A (ja) 2007-03-01 2008-09-18 Hitachi Ltd 負荷分散方法及び計算機システム
US7769971B2 (en) 2007-03-29 2010-08-03 Data Center Technologies Replication and restoration of single-instance storage pools
US8768895B2 (en) 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
US8190835B1 (en) 2007-12-31 2012-05-29 Emc Corporation Global de-duplication in shared architectures
WO2009087413A1 (en) 2008-01-08 2009-07-16 Taptu Ltd. Data storage
US8515909B2 (en) 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8204868B1 (en) 2008-06-30 2012-06-19 Symantec Operating Corporation Method and system for improving performance with single-instance-storage volumes by leveraging data locality
US8046551B1 (en) 2008-08-14 2011-10-25 Emc Corporation Techniques for processing I/O requests
US8316064B2 (en) 2008-08-25 2012-11-20 Emc Corporation Method and apparatus for managing data objects of a data storage system
US8626723B2 (en) 2008-10-14 2014-01-07 Vmware, Inc. Storage-network de-duplication
US8060715B2 (en) 2009-03-31 2011-11-15 Symantec Corporation Systems and methods for controlling initialization of a fingerprint cache for data deduplication
US20110055471A1 (en) 2009-08-28 2011-03-03 Jonathan Thatcher Apparatus, system, and method for improved data deduplication
JP5342014B2 (ja) 2009-08-31 2013-11-13 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
US8321648B2 (en) 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
US8121993B2 (en) * 2009-10-28 2012-02-21 Oracle America, Inc. Data sharing and recovery within a network of untrusted storage devices using data object fingerprinting
US8782323B2 (en) 2009-10-30 2014-07-15 International Business Machines Corporation Data storage management using a distributed cache scheme
US9514055B2 (en) 2009-12-31 2016-12-06 Seagate Technology Llc Distributed media cache for data storage systems
US8407193B2 (en) 2010-01-27 2013-03-26 International Business Machines Corporation Data deduplication for streaming sequential data storage applications
US8805967B2 (en) 2010-05-03 2014-08-12 Panzura, Inc. Providing disaster recovery for a distributed filesystem
US8935487B2 (en) 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8898114B1 (en) 2010-08-27 2014-11-25 Dell Software Inc. Multitier deduplication systems and methods
US20120089775A1 (en) * 2010-10-08 2012-04-12 Sandeep Ranade Method and apparatus for selecting references to use in data compression
US8396841B1 (en) 2010-11-30 2013-03-12 Symantec Corporation Method and system of multi-level and multi-mode cloud-based deduplication
US8898119B2 (en) 2010-12-15 2014-11-25 Netapp, Inc. Fingerprints datastore and stale fingerprint removal in de-duplication environments
US8904120B1 (en) 2010-12-15 2014-12-02 Netapp Inc. Segmented fingerprint datastore and scaling a fingerprint datastore in de-duplication environments
US9442671B1 (en) 2010-12-23 2016-09-13 Emc Corporation Distributed consumer cloud storage system
US9280550B1 (en) 2010-12-31 2016-03-08 Emc Corporation Efficient storage tiering
US8676834B2 (en) 2011-02-16 2014-03-18 International Business Machines Corporation Set-level comparisons in dynamically formed groups
US8341312B2 (en) 2011-04-29 2012-12-25 International Business Machines Corporation System, method and program product to manage transfer of data to resolve overload of a storage system
WO2013019869A2 (en) 2011-08-01 2013-02-07 Actifio, Inc. Data fingerpringting for copy accuracy assurance
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8732521B2 (en) 2011-08-31 2014-05-20 Oracle International Corporation Detection of logical corruption in persistent storage and automatic recovery therefrom
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8949208B1 (en) 2011-09-30 2015-02-03 Emc Corporation System and method for bulk data movement between storage tiers
US8943032B1 (en) 2011-09-30 2015-01-27 Emc Corporation System and method for data migration using hybrid modes
US8898120B1 (en) 2011-10-09 2014-11-25 Symantec Corporation Systems and methods for distributed data deduplication
US9047304B2 (en) 2011-11-28 2015-06-02 International Business Machines Corporation Optimization of fingerprint-based deduplication
CN103136114B (zh) 2011-11-30 2015-11-25 华为技术有限公司 存储方法及存储装置
US9672218B2 (en) 2012-02-02 2017-06-06 Hewlett Packard Enterprise Development Lp Systems and methods for data chunk deduplication
US8732403B1 (en) 2012-03-14 2014-05-20 Netapp, Inc. Deduplication of data blocks on storage devices
US10552385B2 (en) 2012-05-20 2020-02-04 Microsoft Technology Licensing, Llc System and methods for implementing a server-based hierarchical mass storage system
US8918390B1 (en) 2012-06-13 2014-12-23 Emc Corporation Preferential selection of candidates for delta compression
US9164688B2 (en) 2012-07-03 2015-10-20 International Business Machines Corporation Sub-block partitioning for hash-based deduplication
US9183200B1 (en) 2012-08-02 2015-11-10 Symantec Corporation Scale up deduplication engine via efficient partitioning
US9367480B2 (en) 2012-08-07 2016-06-14 Dell Products L.P. System and method for updating data in a cache
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US9495379B2 (en) 2012-10-08 2016-11-15 Veritas Technologies Llc Locality aware, two-level fingerprint caching
CN103020174B (zh) 2012-11-28 2016-01-06 华为技术有限公司 相似性分析方法、装置及***
ES2625690T3 (es) 2012-12-12 2017-07-20 Huawei Technologies Co., Ltd. Método y dispositivo de procesamiento de datos en un sistema de clúster
US9274954B1 (en) 2012-12-18 2016-03-01 Netapp, Inc. Caching data using multiple cache devices
US9317218B1 (en) 2013-02-08 2016-04-19 Emc Corporation Memory efficient sanitization of a deduplicated storage system using a perfect hash function
US9798731B2 (en) 2013-03-06 2017-10-24 Dell Products, Lp Delta compression of probabilistically clustered chunks of data
US9244623B1 (en) 2013-03-13 2016-01-26 Emc Corporation Parallel de-duplication of data chunks of a shared data object using a log-structured file system
US9471500B2 (en) 2013-04-12 2016-10-18 Nec Corporation Bucketized multi-index low-memory data structures
EP2997497B1 (en) 2013-05-16 2021-10-27 Hewlett Packard Enterprise Development LP Selecting a store for deduplicated data
US9424185B1 (en) 2013-06-04 2016-08-23 Emc Corporation Method and system for garbage collection of data storage systems
US9298724B1 (en) 2013-06-14 2016-03-29 Symantec Corporation Systems and methods for preserving deduplication efforts after backup-job failures
US9251160B1 (en) 2013-06-27 2016-02-02 Symantec Corporation Data transfer between dissimilar deduplication systems
US9386086B2 (en) 2013-09-11 2016-07-05 Cisco Technology Inc. Dynamic scaling for multi-tiered distributed systems using payoff optimization of application classes
US9336143B1 (en) 2013-09-26 2016-05-10 Emc Corporation Indexing a deduplicated cache system by integrating fingerprints of underlying deduplicated storage system
US9390116B1 (en) 2013-09-26 2016-07-12 Emc Corporation Insertion and eviction schemes for deduplicated cache system of a storage system
US9678973B2 (en) * 2013-10-15 2017-06-13 Hitachi Data Systems Corporation Multi-node hybrid deduplication
US9158633B2 (en) 2013-12-24 2015-10-13 International Business Machines Corporation File corruption recovery in concurrent data protection
US9390281B2 (en) * 2013-12-30 2016-07-12 Open Invention Network, Llc Protecting data in insecure cloud storage
US9361032B2 (en) 2014-05-14 2016-06-07 International Business Machines Corporation Management of server cache storage space
US10002048B2 (en) 2014-05-15 2018-06-19 International Business Machines Corporation Point-in-time snap copy management in a deduplication environment
US9250823B1 (en) 2014-05-20 2016-02-02 Emc Corporation Online replacement of physical storage in a virtual storage system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
WO2016054212A1 (en) 2014-10-01 2016-04-07 Cacheio Llc Efficient metadata in a storage system
EP3210350B1 (en) 2014-10-21 2020-05-20 Twilio, Inc. Method for providing a miro-services communication platform
US10372695B2 (en) 2014-12-27 2019-08-06 Intel Corporation Technologies for computing rolling hashes
US10175894B1 (en) 2014-12-30 2019-01-08 EMC IP Holding Company LLC Method for populating a cache index on a deduplicated storage system
US9952933B1 (en) 2014-12-31 2018-04-24 Veritas Technologies Llc Fingerprint change during data operations
JP6476932B2 (ja) 2015-02-02 2019-03-06 富士通株式会社 ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法
US9436392B1 (en) 2015-02-17 2016-09-06 Nimble Storage, Inc. Access-based eviction of blocks from solid state drive cache memory
US20160323367A1 (en) 2015-04-30 2016-11-03 Lifespeed, Inc. Massively-scalable, asynchronous backend cloud computing architecture
US9612749B2 (en) 2015-05-19 2017-04-04 Vmware, Inc. Opportunistic asynchronous deduplication using an in-memory cache
US10296219B2 (en) 2015-05-28 2019-05-21 Vmware, Inc. Data deduplication in a block-based storage system
US10104167B2 (en) 2015-09-28 2018-10-16 Verizon Patent And Licensing Inc. Networking functions in a micro-services architecture
US10261946B2 (en) 2016-01-12 2019-04-16 International Business Machines Corporation Rebalancing distributed metadata
US10078451B1 (en) 2016-01-22 2018-09-18 Red Hat, Inc. Deduplicating data based on boundary identification
US20170220334A1 (en) 2016-01-29 2017-08-03 General Electric Company Mobile management of industrial assets
US10140066B2 (en) 2016-02-01 2018-11-27 International Business Machines Corporation Smart partitioning of storage access paths in shared storage services
US10445292B1 (en) 2016-03-30 2019-10-15 Veritas Technologies Llc Sharing services between deduplication systems
US10453076B2 (en) 2016-06-02 2019-10-22 Facebook, Inc. Cold storage for legal hold data
US9973573B2 (en) 2016-06-08 2018-05-15 International Business Machines Corporation Concurrency reduction service
JP6854885B2 (ja) 2016-09-29 2021-04-07 ベリタス テクノロジーズ エルエルシー 重複排除ストレージ内のイメージを修復するためのシステム及び方法
US10735553B2 (en) 2016-11-23 2020-08-04 Level 3 Communications, Llc Micro-services in a telecommunications network
US10102150B1 (en) 2017-04-28 2018-10-16 EMC IP Holding Company LLC Adaptive smart data cache eviction
US11010300B2 (en) 2017-05-04 2021-05-18 Hewlett Packard Enterprise Development Lp Optimized record lookups

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183323A (zh) * 2007-12-10 2008-05-21 华中科技大学 一种基于指纹的数据备份***
CN103914522A (zh) * 2014-03-20 2014-07-09 电子科技大学 一种应用于云存储重复数据删除的数据块合并方法
CN104010042A (zh) * 2014-06-10 2014-08-27 浪潮电子信息产业股份有限公司 一种云服务的重复数据删除的备份机制
CN104932841A (zh) * 2015-06-17 2015-09-23 南京邮电大学 一种云存储***中节约型重复数据删除方法
CN105487818A (zh) * 2015-11-27 2016-04-13 清华大学 针对云存储***中重复冗余数据的高效去重方法
WO2017113123A1 (zh) * 2015-12-29 2017-07-06 华为技术有限公司 重复数据删除方法及存储设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《DBLK: Deduplication for primary block storage》;Yoshihiro Tsuchiya;《 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies (MSST)》;20110705;全文 *
《PeerStore: better performance by relaxing in peer-to-peer backup》;M. Landers;《Fourth International Conference on Peer-to-Peer Computing》;20040920;全文 *
《数据备份***中数据去重技术研究》;谭玉娟;《中国博士学位论文全文数据库-信息科技辑》;20120915;全文 *

Also Published As

Publication number Publication date
US11113153B2 (en) 2021-09-07
CN109309706A (zh) 2019-02-05
EP3435222A1 (en) 2019-01-30
US20190034289A1 (en) 2019-01-31
EP3435222B1 (en) 2020-12-16

Similar Documents

Publication Publication Date Title
CN109309706B (zh) 在云局域网的存储***间共享指纹和数据块的方法和***
US10983961B2 (en) De-duplicating distributed file system using cloud-based object store
US20230283559A1 (en) Network flow management for isolated virtual networks
CN107690800B (zh) 管理动态ip地址分配
US11775569B2 (en) Object-backed block-based distributed storage
US20150039645A1 (en) High-Performance Distributed Data Storage System with Implicit Content Routing and Data Deduplication
US9934273B1 (en) Metadata synchronization in flow management systems
KR101857511B1 (ko) 가상 머신 마이그레이션을 판정하는 방법 및 장치
US20150039849A1 (en) Multi-Layer Data Storage Virtualization Using a Consistent Data Reference Model
EP1589691B1 (en) Method, system and apparatus for managing computer identity
US20130107881A1 (en) Distributed Address Resolution Service for Virtualized Networks
US11003719B2 (en) Method and apparatus for accessing a storage disk
US11924093B2 (en) Efficient algorithm to eliminate redundant specific prefixes in forwarding information base using TRIE
US10097454B1 (en) Flexible packet rewriting framework
US20200065306A1 (en) Bloom filter partitioning
KR101912728B1 (ko) 데이터 처리 방법 및 장치
JP2007037141A (ja) 複数のdhcpサーバ環境内で共通のデータベースからのサービス要求を実行する方法及び装置
US11082338B1 (en) Distributed connection state tracking for large-volume network flows
US20170359223A1 (en) Container tracer
CN108241685B (zh) 数据查询的方法和查询客户端
US20100010961A1 (en) Distributed directories
WO2018007349A1 (en) Systems and methods for transmitting and receiving interest messages
US12008380B2 (en) Discovery controller-based nonvolatile memory express namespace resolution services
CN109257453B (zh) 在多租户保护存储部署中防止数据泄露企图的基于本地数据ip的网络安全的***和方法
JP7414149B2 (ja) コネクション数計測装置、方法、およびプログラム

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
GR01 Patent grant
GR01 Patent grant