CN110018786B - 用于预测数据存储特性的系统和方法 - Google Patents
用于预测数据存储特性的系统和方法 Download PDFInfo
- Publication number
- CN110018786B CN110018786B CN201910023229.XA CN201910023229A CN110018786B CN 110018786 B CN110018786 B CN 110018786B CN 201910023229 A CN201910023229 A CN 201910023229A CN 110018786 B CN110018786 B CN 110018786B
- Authority
- CN
- China
- Prior art keywords
- storage
- data
- storage devices
- storage device
- gateway
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例涉及用于管理数据的存储网关。用于管理数据的存储网关包括持久性存储器和处理器。处理器获得针对来自客户端的数据的数据存储请求,做出用于在多个存储装置的每个存储装置中存储数据的存储服务质量的预测,基于该预测来选择多个存储装置中的存储装置,并将数据存储在多个存储装置的所选择的存储装置中。
Description
技术领域
本公开涉及数据存储。
背景技术
计算设备生成、使用和存储数据。数据例如可以是与数据相关联的图像、文档、网页或元数据。数据可以存储在持久性存储装置上。可以从持久性存储装置中删除所存储的数据。
可以通过将来自计算设备的数据存储在第二计算设备上来存储它。第二计算设备可以在地理上与计算设备分离。
发明内容
在一个方面,根据本发明的一个或多个实施例的用于管理数据的存储网关包括持久性存储装置和处理器。处理器从客户端获得针对数据的数据存储请求,做出用于在多个存储装置的每个存储装置中存储该数据的存储服务质量的预测,基于该预测来选择多个存储装置中的存储装置,并将该数据存储在多个存储装置的所选择的存储装置中。
在一个方面,根据本发明的一个或多个实施例的操作用于管理数据的存储网关的方法包括:从客户端获得针对数据的数据存储请求,做出用于在多个存储装置的每个存储装置中存储该数据的存储服务质量的预测,基于该预测来选择多个存储装置中的存储装置,以及将该数据存储在多个存储装置的所选择的存储装置中。
在一个方面,根据本发明的一个或多个实施例的非暂时性计算机可读介质包括计算机可读程序代码,该计算机可读程序代码在由计算机处理器执行时使计算机处理器能够执行操作用于管理数据的存储网关的方法。该方法包括:从客户端获得针对数据的数据存储请求,做出用于在多个存储装置的每个存储装置中存储该数据的存储服务质量的预测,基于该预测来选择多个存储装置中的存储装置,以及将该数据存储在多个存储装置的所选择的存储装置中。
附图说明
将参考附图描述本发明的某些实施例。然而,附图仅通过示例的方式示出了本发明的某些方面或实施方式,并不意味着限制权利要求的范围。
图1A示出了根据本发明的一个或多个实施例的系统的图。
图1B示出了根据本发明的一个或多个实施例的示例存储网关的图。
图1C示出了根据本发明的一个或多个实施例的示例存储装置的图。
图2A示出了根据本发明的一个或多个实施例的示例指纹库的图。
图2B示出了根据本发明的一个或多个实施例的示例指纹样本的图。
图2C示出了根据本发明的一个或多个实施例的合成冲突率的示例的图。
图3示出了根据本发明的一个或多个实施例的系统关系的图。
图4A示出了根据本发明的一个或多个实施例的操作存储网关的方法的流程图。
图4B示出了根据本发明的一个或多个实施例的做出存储服务质量的预测的方法的流程图。
图4C示出了根据本发明的一个或多个实施例的选择用于存储客户端数据的存储装置的第一方法的流程图。
图4D示出了根据本发明的一个或多个实施例的选择用于存储客户端数据的存储装置的第二方法的流程图。
图4E示出了根据本发明的一个或多个实施例的选择用于存储客户端数据的存储装置的第三方法的流程图。
图5A示出了根据本发明的一个或多个实施例的获得冲突率的第一方法的流程图。
图5B示出了根据本发明的一个或多个实施例的获得冲突率的第一方法的流程图。
图5C示出了根据本发明的一个或多个实施例的获得冲突率的第一方法的流程图。
图6示出了根据本发明的一个或多个实施例的计算设备的图。
具体实施方式
下面将参照附图说明本发明的具体实施方式。在以下说明中,阐述了许多细节作为本发明的示例。本领域技术人员应理解,无需这些具体细节即可实践本发明的一种或多种实施方式,并且在不脱离本发明的范围的情况下可做出各种变化或修改。在本文中省略了本领域普通技术人员已知的某些细节,以避免使说明变得模糊。
在以下的附图说明中,在本发明的多种实施方式中参照某个附图说明的任何部件可以等同于参照任何其它附图说明的一个或多个以类似方式命名的部件。为了简洁起见,不会参照每个附图重复说明这些部件。因此,每个附图的部件的每种实施方式通过引用结合在此,并假定其可选地存在于具有一个或多个以类似方式命名的部件的每个其它附图中。此外,根据本发明的多种实施方式,对附图的部件的任何说明应理解为可选的实施方式,这种可选的实施方式可以是除了相对于任何其它附图中的以类似方式命名的相应部件说明的实施方式之外的实施方式,与这些实施方式结合实施,或者代替这些实施方式。
通常,本发明的实施方式涉及用于管理来自客户端的数据的系统、装置和方法。更具体地说,所述系统、装置和方法可通过将来自客户端的数据存储在远离客户端的存储装置中来管理数据。远程存储来自客户端的数据可降低单个自然灾害或其它状况破坏存储数据的客户端和存储在远离客户端的存储装置中的客户端数据的副本的可能性。所述系统可包括远离客户端的任何数量的存储装置,并且来自客户端的数据的一个或多个副本可存储在该存储装置中。
在本发明的一种或多种实施方式中,所述存储装置可以是经过重复数据删除处理的存储装置。如下文中所进一步详述,对数据进行重复数据删除处理使用计算资源。用于对数据进行重复数据删除处理的计算资源量取决于待存储在存储装置中的数据、在对数据进行重复数据删除处理时已存在于存储装置中的数据、以及其它因素。本发明的一种或多种实施方式可通过估算在多个不同存储装置中存储数据的计算资源成本并将来自客户端的数据存储在基于估算结果选择的存储装置中来减少重复数据删除处理的计算资源成本。本发明的一种或多种实施方式可在不将待存储数据发送至存储装置的情况下进行估算。
在本文中所用的计算资源指处理器计算周期、通信带宽、暂时存储输入-输出周期、持久性存储输入-输出周期、和/或暂时或持久性存储器的存储容量。例如可通过随机存取存储器实现暂时存储。用于持久性存储的存储器例如可由固态硬盘驱动器提供。处理器计算周期例如可由中央处理单元提供。通信带宽例如可由网络接口卡提供。
图1A示出了本发明的一种或多种实施方式的计算系统。该系统包括经由存储网关(110)将数据存储在存储装置(120)中的客户端(100)。存储网关(110)通过选择用于存储客户端数据的存储装置来管理客户端数据在存储装置(120)中的存储。存储网关(110)可基于在每个存储装置(120)中存储数据的估算重复数据删除率来选择用于存储客户端数据的存储装置。客户端(100)、存储网关(110)和存储装置(120)可以可操作地彼此连接。上述系统组件例如可通过网络、直接连接或任何其它类型的连接机制来连接。每个系统组件将在下文中说明。
在本发明的一种或多种实施方式中,客户端(100)被编程为经由存储网关(110)将数据存储在存储装置(120)中。通过将数据存储在存储装置(120)中,客户端(100)可存储数据的备份副本和/或降低客户端的存储利用率,例如将存储装置(120)用作远程存储装置。
在本发明的一种或多种实施方式中,客户端(100)经由存储网关(110)将相应客户端的全部或部分数据的副本存储在存储装置(120)中。换言之,存储网关(110)可用于备份客户端的数据。
在本发明的一种或多种实施方式中,客户端(100)经由存储网关(110)将数据存储在存储装置(120)中。换言之,客户端(100)不是将数据存储到本地存储装置中,而是可经由存储网关(110)将数据存储在存储装置(120)中,而不产生存储数据的本地副本。
虽然客户端(102、104)被示为指定给单个存储网关(110),但是在不脱离本发明的情况下,也可将多组客户端指定给任意数量的存储网关。另外,虽然存储网关(110)被示为可操作地连接/使用所有存储装置(120),但是在不脱离本发明的情况下,存储网关(110)也可以仅可操作地连接/使用存储装置(120)的一部分。例如,一个系统可包括两组客户端,每组可由单独的存储网关服务,并且每个存储网关可利用不同的存储装置来存储数据。此外,在本发明的一些实施方式中,不同的存储网关可利用在存储装置分组之间共享一个或多个存储装置的不同存储装置分组。
为了便于管理来自客户端的数据,存储网关(110)可将客户端数据存储在存储装置(120)中。在本发明的一种或多种实施方式中,存储装置(120)是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的功能的计算机指令,例如计算机代码。在不脱离本发明的情况下,存储装置(120)可以是其它类型的计算设备。
在本发明的一种或多种实施方式中,存储装置(120)是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一种或多种实施方式中,存储装置(120)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,存储装置(120)的功能可由多个不同的计算设备执行。
在本发明的一种或多种实施方式中,存储装置(120)存储客户端数据和/或提供先前存储的客户端数据。存储装置(120)可响应于来自存储网关(110)的请求存储或提供客户端数据。存储装置(120)可响应于这些请求进行适当的动作来满足来自存储网关(110)的上述存储/访问请求。
在本发明的一种或多种实施方式中,存储装置(120)为了数据安全目的存储先前存储的客户端数据的副本。例如,可在第二存储装置中复制存储在第一存储装置中的客户端数据的副本。另外,不同的存储装置可能具有影响存储装置提供的存储服务质量的不同性能特性和/或连接特性。例如,可使用具有不同带宽限制的不同连接将不同存储装置连接至客户端。在另一个示例中,不同的存储装置可存储不同类型的数据,并针对客户端数据进行不同程度的重复数据删除处理。因此,不同的存储装置可为存储的客户端数据提供不同质量的存储服务,这取决于多种因素。欲了解存储装置(120)的更多细节,请参考图1C。
虽然存储装置(121、122)均被示为可操作地连接至单个存储网关(110),但是在不脱离本发明的情况下,存储装置也可以可操作地连接至任意数量和/或任意组合的存储网关。换言之,存储装置(120)之中的每个存储装置(121、122)可为任意数量的存储网关提供存储服务。例如,在此考虑的系统可包括多个存储网关,每个存储网关向客户端组提供存储服务。这些组可以是不同的客户端组(例如每个组中具有独特成员的不同组)或部分地不同的客户端组(例如具有同时作为两个组的成员的一些客户端的不同客户端组)。
如上所述,客户端(100)可经由存储网关(110)在存储装置(120)中存储/访问数据。在本发明的一种或多种实施方式中,所述存储网关(110):(i)选择客户端数据的存储位置,(ii)在选定的位置存储客户端数据,以及(iii)响应于客户端的访问请求提供存储的客户端数据。在本发明的一种或多种实施方式中,在选择待存储客户端数据的存储装置时,存储网关(110)为用于存储客户端数据的多个存储装置产生重复数据删除率的估算值。这样做可使本发明的一种或多种实施方式的系统能够通过提高所选存储装置提供高重复数据删除率的可能性来降低存储客户端数据的计算资源成本。
在本发明的一种或多种实施方式中,所述存储网关(110)是计算设备。所述计算设备例如可以是移动电话、平板计算机、便携式计算机、台式计算机、服务器、分布式计算系统或云资源。计算设备可包括一个或多个处理器、存储器(例如随机存取存储器)和持久性存储装置(例如磁盘驱动器、固态驱动器等)。持久性存储装置可存储在由计算设备的处理器执行时使计算设备执行本申请中说明的功能和图4A-5C中所示的方法的计算机指令,例如计算机代码。在不脱离本发明的情况下,存储网关(110)可以是其它类型的计算设备。
在本发明的一种或多种实施方式中,所述存储网关(110)是分布式计算设备。在本文中所用的分布式计算设备指由利用一个或多个独立和/或不同的计算设备的计算资源的逻辑设备提供的功能。例如,在本发明的一种或多种实施方式中,存储网关(110)可以是包括分布在多个独立和/或不同的计算设备上的组件的分布式设备。在这种情况中,在不脱离本发明的情况下,存储网关(110)的功能可由多个不同的计算设备执行。
除了存储网关(110)的上述功能之外,存储网关(110)还可作为系统控制器来协调图1A中所示的系统的操作。例如,存储网关(110)可向存储装置发出数据存储/删除/访问命令。在另一个示例中,存储网关(110)可聚合系统数据,以便于产生重复数据删除率估算值。因此,存储网关(110)可作为客户端(100)的单个联系点,并协调图1A中所示的系统的操作,以向客户端(100)提供数据管理服务。欲了解存储网关(110)的更多细节,请参考图1B。
为了进一步解释本发明的实施方式,在图1B和1C中分别示出了一种示例性存储网关(130)和一种示例性存储装置(140)。
图1B示出了本发明的一种或多种实施方式的示例性存储网关(130)的示意图。为了提供参照图1A说明的存储网关的功能,示例性存储网关(130)可包括存储管理器(131)和持久性存储装置(133)。在本发明的一些实施方式中,示例性存储网关(130)还可包括指纹样本选择器(132)。存储管理器(131)可管理来自客户端的数据。持久性存储装置(133)可包括缓冲器(134),并存储由存储管理器(131)用来管理客户端数据的数据结构。缓冲器(134)可用于在存储装置中存储客户端数据之前将客户端数据临时存储在示例性存储网关(130)中。下面论述示例性存储网关(130)的每个组件。
在本发明的一种或多种实施方式中,为了管理客户端数据,存储管理器(131):(i)在/从存储装置中存储/获取数据,以满足来自客户端的数据存储/访问请求,(ii)维护和更新持久性存储装置(133)中的用于选择客户端数据存储位置的数据结构,以及(iii)使用持久性存储装置(133)中的数据结构或存储在其它位置的数据结构(如下文所进一步详述)产生重复数据删除率或在存储装置中存储数据的其它特性的估算值。为了提供一部分上述功能,存储管理器(131)可执行图4A-5C中所示的方法。在不脱离本发明的情况下,存储管理器(131)可使用更多、更少或不同的方法来管理客户端数据。
在本发明的一种或多种实施方式中,缓冲器(134)可保存存储在存储装置中的一部分客户端数据的副本。在满足客户端的请求时,存储管理器(131)可优先检索存储在缓冲器(134)中的客户端数据的副本,而不是检索存储在存储装置中的客户端数据的副本。
在本发明的一种或多种实施方式中,所述存储管理器(131)是以电路形式实现的。例如,存储管理器(131)可实现为现场可编程门阵列、应用集成电路、数字信号处理器或模拟电路。在不脱离本发明的情况下,存储管理器(131)可实现为其它类型的电路。
在本发明的一种或多种实施方式中,存储管理器(131)实现为存储在非暂时性计算机可读存储介质上的由处理器执行的计算机可读指令。该计算机可读指令可使处理器执行存储管理器(131)的上述功能。
在本发明的一种或多种实施方式中,所述指纹样本选择器(132):(i)获取存储在每个存储装置中的数据的指纹样本,以及(ii)将指纹样本存储在指纹样本库(135)中。在本文中所用的指纹样本指从各种数据片段导出的数据结构。如下文所述,指纹可用于识别与其它数据片段相似或相同的数据片段。上述指纹可用于对数据进行重复数据删除处理。欲了解重复数据删除处理的更多细节,请参考图1C的论述。
为了提供指纹样本选择器(132)的一部分上述功能,指纹样本选择器(132)可执行图5A-5C中所示的方法。在不脱离本发明的情况下,指纹样本选择器(132)可使用更多、更少的或不同的方法提供上述功能。
在本发明的一种或多种实施方式中,所述指纹样本选择器(132)是以电路的形式实现的。例如,指纹样本选择器(132)可实现为现场可编程门阵列、应用集成电路、数字信号处理器或模拟电路。在不脱离本发明的情况下,指纹样本选择器(132)可实现为其它类型的电路。
在本发明的一种或多种实施方式中,指纹样本选择器(132)实现为存储在非暂时性计算机可读存储介质上的由处理器执行的计算机可读指令。该计算机可读指令可使处理器执行指纹样本选择器(132)的上述功能。
虽然指纹样本选择器(132)被示为是示例性存储网关(130)的一个组件,但是在不脱离本发明的情况下,指纹样本选择器(132)也可以是图1A中所示系统的另一个设备的组件。例如,指纹样本选择器(132)可以是每个存储装置的组件。在这种情况下,指纹样本选择器(132)可将指纹样本发送至示例性存储网关(130),以存储在指纹样本库(135)中,从而填充指纹样本库(135)。
在本发明的一种或多种实施方式中,所述持久性存储装置(133)是物理设备。物理设备例如可以是固态硬盘驱动器、磁盘驱动器、磁带驱动器或其它非暂时性存储介质。在本发明的一些实施方式中,持久性存储装置(133)是利用一个或多个其它设备的物理计算资源来提供数据存储功能的逻辑设备。例如,持久性存储装置(133)可以是利用多个独立计算设备的磁盘驱动器的物理存储容量的逻辑存储装置。
在本发明的一种或多种实施方式中,持久性存储装置(133)存储缓冲器(134)和由存储管理器(131)用于选择客户端数据的存储位置的数据结构。所述数据结构可包括指纹样本库(135)和/或合成冲突率(136)。在不脱离本发明的情况下,持久性存储装置(133)可存储更多、不同或更少的数据。在执行图4A-5C中所示的方法时,示例性存储网关(130)可利用上述数据结构。
在本发明的一种或多种实施方式中,缓冲器(134)是存储在持久性存储装置(133)中的数据结构。该数据结构可包括存储在存储装置中的客户端数据的副本。在一些情况下,客户端数据可首先存储在缓冲器(134)中,而客户端数据的副本可随后存储在存储装置中。可删除缓冲器(134)中的一部分客户端数据,从而导致在缓冲器(134)中仅保存存储在存储装置中的客户端数据的一部分的副本。
在本发明的一种或多种实施方式中,指纹样本库(135)是保存存储在可能存储有客户端数据的每个存储装置中的数据的一组指纹的数据结构。如下文中参照图1C所述,在将数据存储在存储装置中之前,在客户端数据的重复数据删除过程中使用指纹。指纹样本库(135)可由指纹样本选择器(132)填充。欲了解指纹样本库(135)的更多细节,请参考图2A。
在本发明的一种或多种实施方式中,合成冲突率(136)标明客户端数据的指纹与已存储在存储装置中的数据的指纹之间的冲突率的估算值。存储管理器(131)可使用合成冲突率(136)来估算用于存储客户端数据的存储装置的重复数据删除率。合成冲突率(136)可由存储管理器(131)填充。欲了解指纹样本库(135)的更多细节,请参考图2C。
虽然指纹样本库(135)和/或合成冲突率(136)被示为存储在持久性存储装置(133)中,但在不脱离本发明的情况下,它们也可存储在其它位置。例如,上述数据结构可存储在可操作地连接至示例性存储网关(130)的其它计算设备上。另外,在不脱离本发明的情况下,所述持久性存储装置(133)或其它计算设备可仅存储指纹样本库(135)和合成冲突率(136)中的一个。例如,在本发明的一些实施方式中,在选择用于存储客户端数据的位置时,存储管理器(131)可仅利用上述数据结构之一。
如上所述,存储网关可使用存储装置向客户端提供存储服务。图1C示出了本发明的一种或多种实施方式的示例性存储装置(140)。示例性存储装置(140)可响应于来自存储网关的请求存储来自存储网关的数据(即,客户端数据(143)),或者将存储的客户端数据(143)提供给存储网关。
另外,如参照图1B所述,指纹样本选择器(141)可在示例性存储装置(140)中实现。在这种情况下,指纹样本选择器(141)可获取客户端数据(143)的指纹样本,并将该样本存储为指纹样本(144)。然后可将指纹样本(144)发送至存储网关或其它计算设备。
在本发明的一种或多种实施方式中,示例性存储装置(140)包括持久性存储装置(142)。持久性存储装置(142)可以是物理设备。物理设备例如可以是固态硬盘驱动器、磁盘驱动器、磁带驱动器或其它非暂时性存储介质。在本发明的一些实施方式中,持久性存储装置(142)可以是利用一个或多个其它设备的物理计算资源来提供数据存储功能的逻辑设备。例如,持久性存储装置(142)可以是利用多个独立计算设备的磁盘驱动器的物理存储容量的逻辑存储装置。
在本发明的一种或多种实施方式中,持久性存储装置(142)存储客户端数据(143)和/或客户端数据(143)的指纹的指纹样本(144)。客户端数据(143)可包括任何格式和/或格式组合的数据。例如,上述数据可包括文本文件、音像文件、数据库文件和/或非结构化数据。在不脱离本发明的情况下,所述数据可包括其它类型的数据。
在本发明的一种或多种实施方式中,客户端数据(143)在存储在持久性存储装置(142)中之前可经过重复数据删除处理。换言之,对于来自客户端的待存储在示例性存储装置(140)中的新数据,可在将其存储在持久性存储装置(142)中之前参照已存储在持久性存储装置(142)中的客户端数据(143)或其它数据进行重复数据删除处理。
在本文中所用的重复数据删除是指通过不存储相同文件或位模式的多个副本来尝试减少用于存储数据的所需存储空间量的过程。重复数据删除通过仅将待存储数据与存储在将存储该待存储数据的存储位置中的所有数据的一部分进行比较来平衡用于存储数据的物理设备的输入输出(I/O)限制与降低的存储空间需求的益处。
为了对数据进行重复数据删除处理,可将待存储数据细分为片段,即,数据片段。所述片段可与待存储数据的一部分对应。可产生标识待存储数据的每个片段的指纹。可将产生的指纹与和已存储在存储装置中的数据的一部分相关联的预先存在的指纹的一部分进行比较。与存储在存储装置中的数据部分的指纹不匹配的待存储数据的任何片段可存储在存储装置中;而其它片段不存储在存储装置中。可产生并存储用于产生现在存储的数据的文件模板(未示出),以便从存储装置检索现在存储的数据。该模板可包括使得存储在存储装置中的待存储数据的所有片段以及已存储在存储装置中的所有数据片段具有与将从存储装置检索的待存储数据的片段的指纹匹配的指纹的信息。
在本文中所用的指纹可以是几乎唯一地标识片段的比特序列。在此所用的“几乎唯一地”意味着包括不同数据的两个片段的每个指纹之间存在冲突的概率与其它不可避免的致命错误原因的概率相比可忽略不计。在本发明的一种或多种实施方式中,所述概率是10^-20以下。在本发明的一种或多种实施方式中,不可避免的致命错误可能是由自然力(例如龙卷风)引起的。换言之,标明不同数据的任何两个片段的指纹几乎总是不同的。
在本发明的一种或多种实施方式中,通过获取比特序列的哈希值来产生该比特序列的指纹,即,数据片段。例如可使用安全哈希算法(SHA)1来产生哈希值。在不脱离本发明的情况下,也可使用其它哈希算法。
上述重复数据删除过程利用计算资源,包括处理周期、存储I/O和/或网络通信带宽。由存储装置实现的特定类型的重复数据删除和存储在经过重复数据删除处理的存储装置中的数据类型影响由示例性存储装置(140)提供的存储服务质量。例如,如果参照差异很大的已存储数据对待存储数据进行重复数据删除处理,那么很可能会存储全部待存储数据。这种情况导致用于存储数据的计算资源的利用率很高。本发明的一种或多种实施方式可通过提高存储装置包括与待存储数据类似的数据的可能性来减少用于存储数据的计算资源。换言之,图1A的系统能够提高客户端数据的重复数据删除率,从而在网络环境中存储数据时提供一种改良的存储系统。
当选择用于存储客户端数据的位置时,系统可估算由各种客户端数据存储装置提供的重复数据删除率。可使用存储在系统内的数据结构来产生估算值。图2A-2C示出了可由图1A中所示的系统使用的数据结构的示例。
图2A示出了本发明的一种或多种实施方式的示例性指纹样本库(200)。在确定将存储客户端数据的位置(即,存储装置)时,图1A的系统可利用上述库。
示例性指纹样本库(200)可包括与各个存储装置相关联的条目(201、205)。每个条目(201、205)可包括标识与该条目相关联的存储装置的存储装置标识符(202)。
每个条目(201、205)还可包括来自于相应条目相关联的存储装置的指纹样本(203)。指纹样本(203)可包括存储在与相应条目相关联的存储装置中的数据的指纹(203A、203N)的任意数量的副本。在不脱离本发明的情况下,每个条目(201、205)可包括任意数量的指纹副本。
图2B示出了本发明的一种或多种实施方式的示例性指纹样本(210)。上述样本可由图1A的系统用于填充示例性指纹样本库(200)。如参照图1C所述,示例性指纹样本(210)可由存储装置产生,并且又被发送至图1A所示的存储示例性指纹样本库(200)的系统的存储网关或其它组件。
示例性指纹样本(210)可包括指纹样本(211)。指纹样本(211)可从存储在存储装置中的任何数据导出。指纹样本(211)可包括任意数量的指纹副本(211A、211N)。指纹(211A、211N)的副本可通过产生与存储在存储装置中的数据相关联的现有指纹的副本来获取。
图2C示出了本发明的一种或多种实施方式的合成冲突率(220)的一个示例。在确定将存储客户端数据的位置(即,存储装置)时,图1A的系统可利用上述的冲突率。
示例性合成冲突率(220)可包括与各个存储装置相关联的条目(221、225)。每个条目(221、225)可包括标识与该条目相关联的存储装置的存储装置标识符(222)。
每个条目(221、225)还可包括标明不同类型数据的冲突率的合成冲突率(223)。合成冲突率(223)可包括针对不同数据类型(223A、223N)的任何数量的冲突率。例如,可为数据库类型数据指定第一合成冲突率,可为文本文件指定第二合成冲突率,可为视频文件指定第四合成冲突率,等等。在不脱离本发明的情况下,可用任何粒度级别指定不同类型数据的冲突率。例如,可为不同类型的数据库、不同类型的数据库事务等指定合成冲突率。
虽然图2A-2C中所示的数据结构被示为条目列表,但是在不脱离本发明的前提下,该数据结构可按其它格式存储,可划分为多个数据结构,和/或该数据结构的一部分可分布在多个计算设备上。
为了进一步阐明图1A的系统的组件之间的关系,图3示出了一个关系图。从图中能够看出,任意数量的客户端(300、305)可由单个存储网关(310)服务,例如N对一关系。类似地,存储网关(310)可利用任意数量的存储装置(315、320),例如一对N关系。
如上所述,存储网关(110,图1A)可管理客户端数据。图4A-5C示出了本发明的一种或多种实施方式的可用于管理客户端数据的方法。
虽然图4A-5C中示出的每个方法作为独立的方法示出,但是在不脱离本发明的情况下,每个方法可顺序地或并行地执行(或者串行和并行执行的组合)。此外,本领域普通技术人员应理解,这些步骤中的一部分或全部可按不同顺序执行,可组合或省略,并且一部分或所有步骤可并行执行。
图4A示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图4A中所示的方法可用于管理客户端数据。图4A中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图4A的方法。
在步骤400中,从客户端获得针对数据的数据存储请求。在本文中所用的存储请求指存储数据的请求。该存储请求可指定将在存储装置中存储的来自客户端的数据。
在本发明的一种或多种实施方式中,数据存储请求是从由存储网关从客户端接收的消息中获得的。
在步骤402中,对用于在多个存储装置的每一个中存储数据的存储服务质量进行预测。在本文中所用的存储服务质量指将用作对客户端数据进行重复数据删除处理的参照数据的客户端数据的重复数据删除率。
在本发明的一种或多种实施方式中,预测的存储服务质量是基于以下各项获得的:(i)来自客户端的数据的特性和(ii)存储在相应的多个存储装置中的每一个中的数据。
在本发明的一种或多种实施方式中,使用相应的多个存储装置之中的每一个中的数据的指纹样本来获得每个存储装置的预测的存储服务质量。可通过获得客户端数据的样本的指纹来产生每个存储装置的客户端数据的冲突率。然后可确定样本客户端数据的指纹与相应存储装置之中的每一个中的数据的指纹样本的匹配率。这样,预测的存储服务质量可基于该匹配率,即,匹配率越高,预测的存储服务质量越好。
在本发明的一种或多种实施方式中,预测的存储服务质量是使用以下各项获得的:(i)来自客户端的数据的特性和(ii)不同类型数据的合成冲突率。在本发明的一种或多种实施方式中,数据的特性标明来自客户端的数据的类型。来自客户端的数据类型可与来自客户端的数据的类型的合成冲突率匹配。然后可通过形成每项匹配的合成冲突率的加权平均值和多项匹配的相对比例来产生综合合成冲突率。综合合成冲突率可用作预测的存储服务质量。
在本发明的一种或多种实施方式中,预测的存储服务质量是通过图4B中所示的方法获得的:在不脱离本发明的情况下,可使用其它方法进行预测。
在步骤404中,基于在步骤402中获得的预测的存储服务质量来选择多个存储装置之中的某个存储装置。
在本发明的一种或多种实施方式中,通过将步骤402的预测值从最高重复数据删除率到最低重复数据删除率来排序选择存储装置,并将表现出最高重复数据删除率的存储装置用作选定的存储装置。
在本发明的一种或多种实施方式中,通过图4C中所示的方法选择多个存储装置之中的某个存储装置。在本发明的一种或多种实施方式中,通过图4D中所示的方法选择多个存储装置之中的某个存储装置。在本发明的一种或多种实施方式中,通过图4E中所示的方法选择多个存储装置之中的某个存储装置。在不脱离本发明的情况下,可使用其它方法选择存储装置。
在步骤406中,将来自客户端的数据存储在从多个存储装置中选择的存储装置中。
在本发明的一种或多种实施方式中,通过从客户端向选定的存储装置发送全部或部分数据来存储来自客户端的数据。
该方法可在步骤408之后结束。
图4B示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图4B中所示的方法可用于预测存储服务质量。图4B中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图4B的方法。
在步骤410中,产生从客户端获取的数据的一部分数据片段的多个指纹。
在本发明的一种或多种实施方式中,该数据片段部分代表来自客户端的数据的样本。
在本发明的一种或多种实施方式中,按照图1C所示的方式产生指纹。
在步骤412中,获得所产生的多个指纹与存储在多个存储装置之中的每一个中的数据片段的各个部分的相应多个指纹的相应冲突率。
在本发明的一种或多种实施方式中,通过图5A中所示的方法获得每个存储装置的相应冲突率。在本发明的一种或多种实施方式中,通过图5B中所示的方法获得每个存储装置的相应冲突率。在本发明的一种或多种实施方式中,通过图5C中所示的方法获得每个存储装置的相应冲突率。在不脱离本发明的情况下,可通过其它方法获得每个存储装置的相应冲突率。
在步骤414中,基于所获得的存储装置的相应冲突率来产生每个存储装置的存储服务质量的预测值。
在本发明的一种或多种实施方式中,可通过将存储装置的相应冲突率从最高到最低排序来产生预测的存储服务质量。排名可用作每个存储装置的存储服务质量。换言之,冲突率较高表明存储服务质量较高。
该方法可在步骤414之后结束。
图4C示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图4C中所示的方法可用于选择存储客户端数据的存储装置。图4C中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图4C的方法。
在步骤420中,确定多个存储装置中的第一存储装置的第一重复数据删除率小于多个存储装置中的第二存储装置的第二重复数据删除率。
在步骤422中,响应于该确定操作排除多个存储装置中的第二存储装置,防止其作为选定的存储装置。
该方法可在步骤422之后结束。
在本发明的一种或多种实施方式中,重复图4C中所示的方法,直到仅剩下多个存储装置的一个存储装置。将剩下的存储装置用作选定的存储装置。
图4D示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图4D中所示的方法可用于选择存储客户端数据的存储装置。图4D中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图4D的方法。
在步骤430中,确定多个存储装置中的第一存储装置与存储网关之间的第一带宽小于多个存储装置中的第二存储装置与存储网关之间的第二带宽。
在步骤432中,响应于该确定操作排除多个存储装置中的第一存储装置,防止其作为选定的存储装置。
该方法可在步骤432之后结束。
在本发明的一种或多种实施方式中,重复图4D中所示的方法,直到仅剩下多个存储装置的一个存储装置。将剩下的存储装置用作选定的存储装置。
图4E示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图4E中所示的方法可用于选择存储客户端数据的存储装置。图4E中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图4E的方法。
在步骤440中,确定将数据存储在多个存储装置中的第一存储装置内的第一计算资源成本小于将数据存储在多个存储装置中的第二存储装置内的第二计算资源成本。
在步骤442中,响应于该确定操作排除多个存储装置中的第二存储装置,防止其作为选定的存储装置。
该方法可在步骤442之后结束。
在本发明的一种或多种实施方式中,重复图4E中所示的方法,直到仅剩下多个存储装置的一个存储装置。将剩下的存储装置用作选定的存储装置。
在本发明的一种或多种实施方式中,可分别执行图4C-4E中所示的方法,并且可基于在每种方法中选择的存储装置来选择存储装置。例如,可将通过图4C-4E中所示的方法选中次数最多的存储装置用作选定的存储装置。在其它情况下,可利用图4C-4E中所示的每个方法的选择结果的加权来确定总选择结果。例如,图4C中所示的方法可被赋予高权重,并且图4D和4E中所示的方法可被赋予中等权重。因此,除非图4D和4E中所示的方法都导致选择同一个存储装置,否则可将通过图4C中所示的方法选择的存储装置用作选定的存储装置。
图5A示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图5A中所示的方法可用于获得客户端数据的冲突率。图5A中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图5A的方法。
在步骤500中,获得来自多个存储装置中的各个存储装置的相应的多个指纹。在本文中所用的存储请求指存储数据的请求。
在步骤502中,将所述客户端数据部分的多个指纹与所获得的各个指纹中的每一个进行匹配。然后可从匹配结果确定每个存储装置的匹配率。该匹配率可用作为每个存储装置获得的冲突率。
该方法可在步骤502之后结束。
图5B示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图5B中所示的方法可用于获得客户端数据的冲突率。图5B中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图5B的方法。
在步骤510中,将客户端数据的多个指纹的副本发送至多个存储装置之中的每个相应存储装置。
在步骤512中,响应于发送客户端数据的多个指纹的副本的操作,从每个相应存储装置获得多个存储装置中的每个存储装置的冲突率。
在本发明的一种或多种实施方式中,从每个存储装置发送至存储网关的相应消息获得每个存储装置的冲突率。
该方法可在步骤512之后结束。
因此,如图5B所示,在本发明的一些实施方式中,冲突率可由存储装置产生,并且随后被发送至存储网关。
图5C示出了本发明的一种或多种实施方式的方法的流程图。根据本发明的一种或多种实施方式,图5C中所示的方法可用于获得客户端数据的冲突率。图5C中所示的方法例如可由存储网关(110,图1A)执行。在不脱离本发明的情况下,图1A中所示的系统的其它组件可执行图5C的方法。
在步骤520中,将多个指纹与多个存储装置中的每个相应存储装置的合成冲突率进行匹配。
在本发明的一种或多种实施方式中,通过确定与多个指纹相关联的数据片段的一个或多个数据类型来匹配多个指纹。换言之,确定与指纹相关联的数据片段的文件类型。然后将确定的数据类型与和每种数据类型相关联的合成冲突率进行匹配。
在步骤522中,将匹配的合成冲突率用作每个存储装置的相应冲突率。
该方法可在步骤522之后结束。
如上所述,可使用计算设备来实现本发明的实施方式。图1A的系统可利用任意数量的计算设备来提供在本申请中所述的功能。例如,可使用计算设备来实现图1A的系统的存储网关、存储装置或其它元件。图6示出了本发明的一种或多种实施方式的计算装置的示意图。计算设备(600)可包括一个或多个计算机处理器(602)、非持久性性存储装置(604)(例如易失性存储器,例如随机存取存储器(RAM)、高速缓冲存储器)、持久性存储装置(606)(例如硬盘、光驱(例如光盘(CD)驱动器)或数字通用盘(DVD)驱动器、闪存等)、通信接口(612)(例如蓝牙接口、红外线接口、网络接口、光接口等)、输入装置(610)、输出装置(608)、以及许多其它元件(未示出)和功能。这些组件中的每一个将在下文中说明。
在本发明的一种实施方式中,计算机处理器(602)可以是用于处理指令的集成电路。例如,计算机处理器可以是一个或多个核心、或者是处理器的微核心。计算机设备(600)还可包括一个或多个输入装置(610),例如触摸屏、键盘、鼠标、麦克风、触摸板、电子笔、或任何其它类型的输入装置。此外,通信接口(612)可包括用于将计算设备(600)连接至网络(未示出)(例如局域网(LAN)、广域网(WAN)(例如因特网)、移动网络或任何其它类型的网络)和/或另一个设备(例如另一个计算设备)的集成电路。
在本发明的一种实施方式中,计算设备(600)可包括一个或多个输出装置(608),例如屏幕(例如液晶显示屏(LCD)、等离子显示屏、触摸屏、阴极射线管(CRT)监视器、投影仪或其它显示装置)、打印机、外部存储器、或任何其它输出装置。一个或多个输出装置可与输入装置相同或不同。输入和输出装置可通过本地或远程方式连接至计算机处理器(602)、非持久性存储装置(604)和持久性存储装置(606)。存在许多不同类型的计算设备,并且上述输入和输出装置可以采取其它形式。
本发明的一种或多种实施方式可解决在包括用于存储经过重复数据删除处理的数据的多个存储装置的网络环境中管理数据的问题。由于重复数据删除过程,将数据存储在任何存储装置中可能对系统具有差异很大的影响,这取决于存储在每个存储装置中的数据。例如,将数据库存储在主要存储视频文件的存储装置中可能会导致数据的重复数据删除率很低,因为数据库的任何数据片段不太可能是视频文件的数据片段的副本。本发明的实施方式通过提高数据存储装置的高重复数据删除率的可能性来减少用于在网络环境中存储数据的计算资源。本发明实施方式的系统可通过预测在存储装置中存储客户端数据的重复数据删除率来提供该功能,而无需将客户端数据发送至存储装置。通过在不将客户端数据发送至存储装置的情况下进行预测,节省了网络带宽、处理器周期和磁盘输入-输出周期,从而提高了系统的存储性能。与此相反,在发送客户端数据进行存储之后才确定存储装置的重复数据删除率较差会消耗大量的网络带宽、处理器周期和磁盘输入-输出周期以将存储的客户端数据转移到另一个存储装置。
由于网络存储操作的技术环境,会遇到在网络环境中管理数据的上述问题。由于地理上分布的存储装置的增加,客户端数据常常存储在位置多变的存储装置中,并且存储装置提供的存储服务质量是变化的。本发明的实施方式可在存储数据时主动识别适当的存储装置,以提高选定的存储装置会提供客户端数据的高重复数据删除率的可能性。因此,本发明的实施方式通过提高重复数据删除率来降低存储数据的计算资源成本,从而改善了网络环境中的数据存储操作。
另外,本发明的实施方式可通过提高缓寸命中率来进一步提高提供给客户端的存储服务质量。如参照图1B所述,可使用云存储装置上的缓冲器而不是用存储装置来提供数据,只要该缓冲器包含所需数据。本发明的实施方式可导致存储类似数据的客户端的聚合以利用相同的存储网关,从而导致缓冲器包含由每个聚合客户端使用的数据的可能性提高。使用缓冲器而不是存储装置提供数据可使消耗的计算资源较少,从而提高系统的效率。
上述问题应理解为是本文所公开的本发明的实施方式所解决的问题的一些例子,并且本发明不限于解决相同/类似的问题。所公开的发明广泛适用于解决除本文所述的问题之外的一系列问题。
可使用由数据管理设备的一个或多个处理器执行的指令来实现本发明的一种或多种实施方式。此外,这样的指令可与存储在一个或多个非暂时性计算机可读介质上的计算机可读指令对应。
本发明的一种或多种实施方式可实现下列一种或多种能力:i)通过提高存储的客户端数据的重复数据删除率来提高提供给客户端的存储服务质量,ii)通过减少用于存储数据的计算资源的消耗来降低在网络环境中存储数据的成本,以及iii)通过提高存储的数据的重复数据删除率来增加网络的存储容量。
虽然本发明在上文中是参照有限数量的实施方式说明的,但是受益于本公开的本领域技术人员能理解,能够设计出不脱离本文中所公开的本发明的范围的其它实施方式。因此,本发明的范围仅由所附权利要求限定。
Claims (20)
1.一种用于管理数据的存储网关,包括:
持久性存储装置;和
处理器,其被编程为:
从客户端获得针对数据的数据存储请求;
执行比较,其中所述比较至少部分地基于比较所述数据的特性和与多个存储装置中的存储装置相关联的多个合成冲突率,其中所述多个合成冲突率中的每个合成冲突率对应于不同的数据类型并且能够被使用来估算用于存储客户端数据的存储装置的重复数据删除率;
基于所述比较生成综合合成冲突率,所述综合合成冲突率包括所述数据与所述多个合成冲突率中的每个合成冲突率的所述比较的加权平均值;
基于所述综合合成冲突率,做出用于将所述数据存储在所述多个存储装置中的每个存储装置中的存储服务质量的预测;
基于所述预测来选择所述多个存储装置中的所述存储装置;和
将所述数据存储在所述多个存储装置的所选择的存储装置中。
2.根据权利要求1所述的存储网关,其中所述多个合成冲突率中的合成冲突率系基于数据类型,其中所述数据类型不是基于所述数据的。
3.根据权利要求2所述的存储网关,其中所述预测还至少部分地基于与所述多个存储装置中的所述存储装置相关联的所述多个合成冲突率中的第二合成冲突率。
4.根据权利要求1所述的存储网关,其中所述存储服务质量的所述预测部分地指定所述多个存储装置的每个相应的存储装置对所述数据的重复数据删除率。
5.根据权利要求1所述的存储网关,其中所述存储服务质量的所述预测部分地指定当所述数据被存储在所述多个存储装置的每个相应的存储装置中时提供所述数据的时间。
6.根据权利要求1所述的存储网关,其中所述存储服务质量的所述预测部分地指定将所述数据存储在所述多个存储装置的每个相应的存储装置中的带宽成本。
7.根据权利要求1所述的存储网关,其中所述存储服务质量的所述预测部分地指定将所述数据存储在所述多个存储装置的每个相应的存储装置中的计算资源成本。
8.根据权利要求1所述的存储网关,其中所述存储服务质量的所述预测部分地指定当所述数据被存储在所述多个存储装置的每个相应的存储装置中时获得所述数据的计算资源成本。
9.根据权利要求1所述的存储网关,其中做出用于将所述数据存储在所述多个存储装置的每个存储装置中的所述存储服务质量的所述预测包括:
生成所述数据的数据片段的一部分的多个指纹;
获得所述多个指纹与存储在所述多个存储装置的相应的存储装置中的数据片段的相应部分的相应的多个指纹的相应的冲突率;和
部分地基于所获得的相应的冲突率来生成所述预测。
10.根据权利要求9所述的存储网关,其中所述相应的冲突率系基于所述多个存储装置中的每个存储装置。
11.根据权利要求9所述的存储网关,其中获得所述多个指纹与存储在所述多个存储装置的相应的存储装置中的数据片段的相应部分的相应的多个指纹的所述相应的冲突率包括:
从所述多个存储装置的所述相应的存储装置获得所述相应的多个指纹;和
将所述多个指纹与所述相应的多个指纹中的每一个匹配以确定所述相应的冲突率。
12.根据权利要求9所述的存储网关,其中获得所述多个指纹与存储在所述多个存储装置的相应的存储装置中的数据片段的相应部分的相应的多个指纹的所述相应的冲突率包括:
将所述多个指纹的副本发送到所述多个存储装置的所述相应的存储装置中的每一个;和
响应于发送所述副本,从所述多个存储装置的所述相应的存储装置中的每一个接收冲突率。
13.根据权利要求9所述的存储网关,其中获得所述多个指纹与存储在所述多个存储装置的相应的存储装置中的数据片段的相应部分的相应的多个指纹的所述相应的冲突率包括:
从所述持久性存储装置获得所述相应的多个指纹,
其中所述处理器还被编程为:
当在所述多个存储装置的所述相应的存储装置中存储所述相应的多个指纹时,将所述相应的多个指纹的副本存储在所述持久性存储装置中,
其中响应于来自客户端的请求,所述相应的多个指纹被存储在所述多个存储装置的所述相应的存储装置中。
14.根据权利要求1所述的存储网关,其中基于所述预测来选择所述多个存储装置中的所述存储装置包括:
做出所述多个存储装置中的第一存储装置的第一重复数据删除率小于所述多个存储装置中的第二存储装置的第二重复数据删除率的确定;和
消除所述多个存储装置中的所述第二存储装置作为所选择的存储装置。
15.根据权利要求1所述的存储网关,其中基于所述预测来选择所述多个存储装置中的存储装置包括:
做出所述多个存储装置中的第一存储装置与所述存储网关之间的第一带宽小于所述多个存储装置中的第二存储装置与所述存储网关之间的第二带宽的确定;和
消除所述多个存储装置中的所述第一存储装置作为所选择的存储装置。
16.根据权利要求1所述的存储网关,其中基于所述预测来选择所述多个存储装置中的存储装置包括:
做出将所述数据存储在所述多个存储装置中的第一存储装置中的第一计算成本小于将所述数据存储在所述多个存储装置中的第二存储装置中的第二计算成本的确定;和
消除所述多个存储装置中的所述第二存储装置作为所选择的存储装置。
17.一种操作用于管理数据的存储网关的方法,包括:
从客户端获得针对数据的数据存储请求;
执行比较,其中所述比较至少部分地基于比较所述数据的特性和与多个存储装置中的存储装置相关联的多个合成冲突率,其中所述多个合成冲突率中的每个合成冲突率对应于不同的数据类型并且能够被使用来估算用于存储客户端数据的存储装置的重复数据删除率;
基于所述比较生成综合合成冲突率,所述综合合成冲突率包括所述数据与所述多个合成冲突率中的每个合成冲突率的所述比较的加权平均值;
基于所述综合合成冲突率,做出用于将所述数据存储在所述多个存储装置中的每个存储装置中的存储服务质量的预测;
基于所述预测来选择所述多个存储装置中的存储装置;和
将所述数据存储在所述多个存储装置的所选择的存储装置中。
18.根据权利要求17所述的方法,其中所述多个合成冲突率中的合成冲突率系基于数据类型,其中所述数据类型不是基于所述数据的。
19.一种非暂时性计算机可读介质,包括计算机可读程序代码,所述计算机可读程序代码在由计算机处理器执行时使得所述计算机处理器能够执行操作用于管理数据的存储网关的方法,所述方法包括:
从客户端获得针对数据的数据存储请求;
执行比较,其中所述比较至少部分地基于比较所述数据的特性和与多个存储装置中的存储装置相关联的多个合成冲突率,其中所述多个合成冲突率中的每个合成冲突率对应于不同的数据类型并且能够被使用来估算用于存储客户端数据的存储装置的重复数据删除率;
基于所述比较生成综合合成冲突率,所述综合合成冲突率包括所述数据与所述多个合成冲突率中的每个合成冲突率的所述比较的加权平均值;
基于所述综合合成冲突率,做出用于将所述数据存储在所述多个存储装置中的每个存储装置中的存储服务质量的预测;
基于所述预测来选择所述多个存储装置中的存储装置;和
将所述数据存储在所述多个存储装置的所选择的存储装置中。
20.根据权利要求19所述的非暂时性计算机可读介质,其中所述多个合成冲突率中的合成冲突率系基于数据类型,其中所述数据类型不是基于所述数据的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/866,567 | 2018-01-10 | ||
US15/866,567 US10866750B2 (en) | 2018-01-10 | 2018-01-10 | System and method for predicting data storage characteristics |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110018786A CN110018786A (zh) | 2019-07-16 |
CN110018786B true CN110018786B (zh) | 2022-10-28 |
Family
ID=67140734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910023229.XA Active CN110018786B (zh) | 2018-01-10 | 2019-01-10 | 用于预测数据存储特性的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10866750B2 (zh) |
CN (1) | CN110018786B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111506425B (zh) * | 2020-04-14 | 2021-12-17 | 星辰天合(北京)数据科技有限公司 | 服务质量数据处理方法和装置 |
US11822817B2 (en) * | 2020-07-31 | 2023-11-21 | Seagate Technology Llc | Ordering reads to limit collisions in a non-volatile memory (NVM) |
US11693596B2 (en) * | 2020-08-13 | 2023-07-04 | Seagate Technology Llc | Pre-emptive storage strategies to reduce host command collisions |
US11580025B1 (en) * | 2021-09-30 | 2023-02-14 | Advanced Micro Devices, Inc. | Cache prefetching with dynamic interleaving configuration modification |
CN113849136B (zh) * | 2021-10-13 | 2023-03-31 | 上海威固信息技术股份有限公司 | 一种基于国产平台的自动化fc块存储处理方法和系统 |
US11861166B2 (en) * | 2022-04-18 | 2024-01-02 | Dell Products L.P. | System and method for network interface controller based data deduplication |
WO2024032898A1 (en) * | 2022-08-12 | 2024-02-15 | Huawei Technologies Co., Ltd. | Choosing a set of sequential storage media in deduplication storage systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554918B1 (en) * | 2011-06-08 | 2013-10-08 | Emc Corporation | Data migration with load balancing and optimization |
CN104537076A (zh) * | 2014-12-31 | 2015-04-22 | 北京奇艺世纪科技有限公司 | 一种文件读写方法及装置 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7389311B1 (en) | 1999-07-15 | 2008-06-17 | Commvault Systems, Inc. | Modular backup and retrieval system |
US8417678B2 (en) | 2002-07-30 | 2013-04-09 | Storediq, Inc. | System, method and apparatus for enterprise policy management |
US7174433B2 (en) * | 2003-04-03 | 2007-02-06 | Commvault Systems, Inc. | System and method for dynamically sharing media in a computer network |
US8412822B1 (en) | 2004-01-27 | 2013-04-02 | At&T Intellectual Property Ii, L.P. | Optimized job scheduling and execution in a distributed computing grid |
US7472238B1 (en) | 2004-11-05 | 2008-12-30 | Commvault Systems, Inc. | Systems and methods for recovering electronic information from a storage medium |
US9342364B2 (en) | 2008-04-09 | 2016-05-17 | International Business Machines Corporation | Workflow managed composite applications |
US9191437B2 (en) | 2009-12-09 | 2015-11-17 | International Business Machines Corporation | Optimizing data storage among a plurality of data storage repositories |
US8918439B2 (en) | 2010-06-17 | 2014-12-23 | International Business Machines Corporation | Data lifecycle management within a cloud computing environment |
WO2012000059A1 (en) | 2010-07-02 | 2012-01-05 | Metacdn Pty Ltd | Systems and methods for storing digital content |
US9037712B2 (en) | 2010-09-08 | 2015-05-19 | Citrix Systems, Inc. | Systems and methods for self-loading balancing access gateways |
WO2012147123A1 (en) | 2011-04-26 | 2012-11-01 | Hitachi, Ltd. | Storage apparatus and control method therefor |
WO2012176307A1 (ja) | 2011-06-23 | 2012-12-27 | 株式会社日立製作所 | ストレージ管理システム及びストレージ管理方法 |
US10089148B1 (en) | 2011-06-30 | 2018-10-02 | EMC IP Holding Company LLC | Method and apparatus for policy-based replication |
US9465697B2 (en) | 2011-09-21 | 2016-10-11 | Netapp, Inc. | Provision of backup functionalities in cloud computing systems |
WO2013093994A1 (ja) | 2011-12-19 | 2013-06-27 | 富士通株式会社 | ストレージシステム、データリバランシングプログラム及びデータリバランシング方法 |
US9740435B2 (en) | 2012-02-27 | 2017-08-22 | Fujifilm North America Corporation | Methods for managing content stored in cloud-based storages |
US8832234B1 (en) | 2012-03-29 | 2014-09-09 | Amazon Technologies, Inc. | Distributed data storage controller |
US9513823B2 (en) | 2012-04-30 | 2016-12-06 | Hewlett Packard Enterprise Development Lp | Data migration |
US9021203B2 (en) * | 2012-05-07 | 2015-04-28 | International Business Machines Corporation | Enhancing tiering storage performance |
US9098525B1 (en) | 2012-06-14 | 2015-08-04 | Emc Corporation | Concurrent access to data on shared storage through multiple access points |
US9460099B2 (en) | 2012-11-13 | 2016-10-04 | Amazon Technologies, Inc. | Dynamic selection of storage tiers |
US9953075B1 (en) | 2012-12-27 | 2018-04-24 | EMC IP Holding Company LLC | Data classification system for hybrid clouds |
US9451013B1 (en) | 2013-01-02 | 2016-09-20 | Amazon Technologies, Inc. | Providing instance availability information |
US9367351B1 (en) | 2013-03-14 | 2016-06-14 | Emc Corporation | Profiling input/output behavioral characteristics in distributed infrastructure |
US20140281301A1 (en) | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Elastic hierarchical data storage backend |
US9292226B2 (en) | 2013-06-24 | 2016-03-22 | Steven Andrew Moyer | Adaptive data management using volume types |
US9280678B2 (en) | 2013-12-02 | 2016-03-08 | Fortinet, Inc. | Secure cloud storage distribution and aggregation |
US10061628B2 (en) | 2014-03-13 | 2018-08-28 | Open Text Sa Ulc | System and method for data access and replication in a distributed environment utilizing data derived from data access within the distributed environment |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
US10324743B2 (en) | 2014-08-27 | 2019-06-18 | Red Hat Israel, Ltd. | Announcing virtual machine migration |
US9521089B2 (en) | 2014-08-30 | 2016-12-13 | International Business Machines Corporation | Multi-layer QoS management in a distributed computing environment |
US9417968B2 (en) | 2014-09-22 | 2016-08-16 | Commvault Systems, Inc. | Efficiently restoring execution of a backed up virtual machine based on coordination with virtual-machine-file-relocation operations |
US9977704B1 (en) | 2014-09-26 | 2018-05-22 | EMC IP Holding Company LLC | Automated backup and replication of virtual machine data centers |
US10078556B2 (en) | 2015-08-31 | 2018-09-18 | Paypal, Inc. | Data replication between databases with heterogenious data platforms |
US10659532B2 (en) | 2015-09-26 | 2020-05-19 | Intel Corporation | Technologies for reducing latency variation of stored data object requests |
US20170168729A1 (en) | 2015-12-11 | 2017-06-15 | Netapp, Inc. | Methods and systems for managing resources of a networked storage environment |
US10180912B1 (en) | 2015-12-17 | 2019-01-15 | Amazon Technologies, Inc. | Techniques and systems for data segregation in redundancy coded data storage systems |
US10313251B2 (en) | 2016-02-01 | 2019-06-04 | Netapp, Inc. | Methods and systems for managing quality of service in a networked storage environment |
US10282104B2 (en) | 2016-06-01 | 2019-05-07 | International Business Machines Corporation | Dynamic optimization of raid read operations |
EP3523719A1 (en) | 2016-10-05 | 2019-08-14 | Telefonaktiebolaget LM Ericsson (PUBL) | Controlling resource allocation in a data center |
US10929290B2 (en) | 2016-12-31 | 2021-02-23 | Intel Corporation | Mechanism for providing reconfigurable data tiers in a rack scale environment |
US10678579B2 (en) | 2017-03-17 | 2020-06-09 | Vmware, Inc. | Policy based cross-cloud migration |
-
2018
- 2018-01-10 US US15/866,567 patent/US10866750B2/en active Active
-
2019
- 2019-01-10 CN CN201910023229.XA patent/CN110018786B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8554918B1 (en) * | 2011-06-08 | 2013-10-08 | Emc Corporation | Data migration with load balancing and optimization |
CN104537076A (zh) * | 2014-12-31 | 2015-04-22 | 北京奇艺世纪科技有限公司 | 一种文件读写方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US10866750B2 (en) | 2020-12-15 |
US20190212934A1 (en) | 2019-07-11 |
CN110018786A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110018786B (zh) | 用于预测数据存储特性的系统和方法 | |
US11327799B2 (en) | Dynamic allocation of worker nodes for distributed replication | |
US20200159611A1 (en) | Tracking status and restarting distributed replication | |
US9317519B2 (en) | Storage system for eliminating duplicated data | |
US20190243547A1 (en) | Distributed object replication architecture | |
US20190245918A1 (en) | Distributed replication of an object | |
US10834189B1 (en) | System and method for managing workload in a pooled environment | |
CN111858151B (zh) | 用于在备份操作期间优先处理关键数据对象存储的方法和系统 | |
US10642528B1 (en) | System and method of backup grouping with improved computational efficiency | |
US11093350B2 (en) | Method and system for an optimized backup data transfer mechanism | |
CN111858152B (zh) | 用于对关键数据对象存储进行优先级排序的方法和系统 | |
US10831610B2 (en) | System and method for adaptive backup workflows in dynamic priority environment | |
US20200387412A1 (en) | Method To Manage Database | |
US11843682B1 (en) | Prepopulating an edge server cache | |
CN110022348B (zh) | 用于动态备份会话的系统和方法 | |
US20230297592A1 (en) | Custom stream partitioning services | |
US10542087B1 (en) | System and method for managing storage tier migration | |
US10671311B1 (en) | System and method for dynamic data migration | |
US10757188B1 (en) | System and method for efficient data access for restores | |
CN112804312A (zh) | 文件上传方法、设备以及计算机可读介质 | |
US20190034282A1 (en) | Offline repopulation of cache | |
US10509587B2 (en) | System and method for high priority backup | |
US10481813B1 (en) | Device and method for extending cache operational lifetime | |
US11625616B2 (en) | Locality-aware compressor-decompressor for keeping prediction models up-to-date in resource constrained networks | |
EP3629555B1 (en) | System and method for data storage in distributed system |
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 |