CN104395904B - 高效的数据对象存储和检索 - Google Patents

高效的数据对象存储和检索 Download PDF

Info

Publication number
CN104395904B
CN104395904B CN201380034676.6A CN201380034676A CN104395904B CN 104395904 B CN104395904 B CN 104395904B CN 201380034676 A CN201380034676 A CN 201380034676A CN 104395904 B CN104395904 B CN 104395904B
Authority
CN
China
Prior art keywords
index
data
data object
storage
scope
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
CN201380034676.6A
Other languages
English (en)
Other versions
CN104395904A (zh
Inventor
加思·R·古德森
绍铭隆
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.)
NetApp Inc
Original Assignee
NetApp Inc
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 NetApp Inc filed Critical NetApp Inc
Publication of CN104395904A publication Critical patent/CN104395904A/zh
Application granted granted Critical
Publication of CN104395904B publication Critical patent/CN104395904B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • 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/13File access structures, e.g. distributed indices
    • 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/18File system types
    • G06F16/182Distributed file systems
    • 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
    • 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/0626Reducing size or complexity of storage systems
    • 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据存储***包括处理器、***存储器,以及逻辑区段。在一个或多个物理存储设备中的存储块被分配到每个逻辑区段。处理器维护数据对象的逻辑区段,以及卷包括一个或多个的逻辑区段。处理器存储数据对象,其由逻辑区段中的对象标识符唯一标识。处理器还维护第一索引,其存储在***存储器中以及映射对象标识符的范围到第二索引。第二索引也存储在逻辑区段中以及指出与对象标识符的范围相关的数据对象的存储位置。

Description

高效的数据对象存储和检索
相关申请的交叉引用
本申请要求2012年4月27日提交的美国专利申请号13/458,323的优先权,其全部内容通过引用方式被合并于此。
技术领域
本发明的至少一个实施例涉及数据存储***,并且更具体地,涉及一种用于高效地在数据存储***中存储数据对象的技术。
背景技术
网络存储是一种常用的方式来备份数据,以及使各种客户端可访问大量数据。在网络存储环境中,存储服务器通过呈现或输出一个或多个的数据的逻辑区段到客户端,将数据提供给客户端***。存储服务器还接收来自客户端***的数据以供存储。有各种形式的网络存储,包括网络附加存储(NAS)以及存储区域网络(SAN)。在NAS环境,存储服务器为来自客户端的文件级请求提供服务。在SAN环境,存储服务器服务为块级请求提供服务。一些存储服务器能够为文件级请求和块级请求均提供服务。
该技术的市场正经历影响现有的网络存储技术的几个趋势。首先,使用网络存储***存储的数据量继续增加。第二,以随机方式检索数据对象的应用的数量也在增加。应用,如照片档案,为大量时常随机访问的数据对象提供存储。在一些情况下,这些数据对象也很少修改。常规的文件***布局在这些情况下存储和检索数据对象已被证明是低效的。在许多常规的文件***布局中使用的分层名称空间和索引节点结构需要三次或更多的磁盘输入/输出(I/O)操作,以存储或检索数据对象。通常需要一次I/O,以检索将数据对象的名称转换成索引节点的必要信息。第二次I/O对检索索引节点结构是必要的。通常需要至少第三次I/O,以检索数据对象。这些常规的布局也典型地包括存储可能在这些应用中并不需要的元数据属性。
此外,高度适应不同的应用和性能配置对网络存储***正在变得更加重要。常规的网络存储***通常每个均使用单一的数据布局,其可能满足一些用途,但对市场需要的许多不同的配置通常不是最理想的。因此,网络存储***的设计者必须进行有关***的各种潜在的用途应该如何驱动设计的各种设计选择。这些选择将确定该***的性能特性。一旦设计已经实施并产品化,改变得到的***操作特性,即使不是不可能的,也非常困难。
概述
下面介绍的是用于在网络存储***中存储对象的文件***布局,以及相关的方法和装置。用于实施该文件***布局的各种装置和方法在随后的讨论中被统称为“这里介绍的***”或简称为“***”。***以灵活的数据布局提供了高效的数据对象存储和检索,该灵活的数据布局可被修改以满足不同的使用情况的各种需要。在其它特性中,***将数据对象存储在区段中,并使用非分层结构管理它们。***通过减少存储或检索在大容量存储设备中的数据对象需要的输入/输出操作(I/O)次数以及相对于某些常规***减少存储数据对象需要的存储空间量,来提升效率。I/O是需要信息处理装置,诸如处理器,与另一个设备之间的通信的操作。在数据存储***中,I/O通常指存储服务器和存储设备之间的通信。然而,其它类型的I/O是可能的。虽然与***相关的益处可能在许多应用中实现,但该***特别适合涉及数据对象的频繁的随机访问的应用。在每个数据对象需要减少的元数据量的应用中,其特别有用。
***部分基于与从其它类型的可能内置于存储服务器的存储器检索数据相比,I/O相对费时和低效的认识。由于与在旋转存储介质上随机访问数据对象相关的固有延时,磁盘I/O特别费时。虽然固态存储器具有更快的响应时间,但每兆字节通常较昂贵。因此在数据存储***中,固态存储器相比基于磁盘的存储空间的可用性相对有限,且必须有选择地使用。这里介绍的***实现了一种文件***的布局,其中数据对象的位置可使用两个索引进行管理。索引是标识一个或多个信息段的存储位置的列表。两个索引中的第一索引足够小以待被维护在存储服务器的***存储器中。在此实现中,使用这两个索引检索数据对象还需要三个步骤:一个访问第一索引,一个访问第二索引,以及一个检索数据对象。然而,由于第一索引存储在可在不进行I/O的情况下被执行的存储器的位置中,所以检索数据对象只需要两次I/O。减少磁盘I/O次数提高了存储***的整体性能。减少数据对象的元数据到数据的比率也使高速缓存更有效,因为更多的数据可存储在存储器中。
此外,第二索引具有使它或它的部分可在***存储器中被高速存储的密度。如果访问数据对象需要的第二索引的一部分在***存储器中可用,那么访问数据对象所必要的I/O的次数可被进一步减少。当随后访问的数据对象呈现局部性时,性能优势甚至可从被高速缓存的第二索引的一部分获得。
***使用用于数据的逻辑结构,包括“逻辑区段”(也简称为“区段”),“区域”和“片”。区段是***的基本存储管理单位。区域包含数据的一个或多个逻辑区段。片是一个或多个物理存储设备的物理块的集合,以及是分配到个体区域的物理存储单位。区段被分配到一个或多个片的至少一部分,其组成了包括逻辑区段的区域。***还可维护多个“卷”作为在区域层之上的卷层中的数据的逻辑容器。每个卷可包括来自一个或多个区域的一个或多个逻辑区段。每个卷可被定制以提供某些性能特性。
***非常适合用于诸如涉及许多频繁随机访问的数据对象的照片存储的应用。***还非常适合需要与数据对象一起待存储的更少附加的元数据的应用,以及其中的数据对象未被频繁修改的应用。
在一个实施例中,***包括处理器、***存储器以及逻辑区段。在一个或多个物理存储设备中的存储块被分配到每个逻辑区段。处理器维护卷作为数据对象的逻辑容器,以及卷包括一个或多个逻辑区段。处理器在逻辑区段中存储了由对象标识符唯一标识的数据对象。处理器还维护存储在***存储器中的第一索引,以及映射一系列的对象标识符到第二索引。第二索引也存储在逻辑区段中,以及指出与对象标识符的范围相关的数据对象的存储位置。
该技术的其它方面从附图并从下面的具体实施例来看将是明显的。
附图说明
本发明的一个或多个实施例将通过使用附图进行描述与说明,其中:
图1示出了本发明可被实现的网络存储环境;
图2示出了依照这里介绍的技术的数据存储***中的各个层;
图3示出了依照这里介绍的技术,使用两个索引以用于维护卷作为数据对象的逻辑容器的的方法。
图4示出了实现这里介绍的技术的数据存储***;
图5示出了依照这里介绍的技术,操作数据存储***的方法;
图6示出了依照这里介绍的技术,使用存储在多个逻辑区段中的索引,以用于维护卷作为数据对象的逻辑容器的方法;
图7示出了使用用于维护包含片段数据对象的卷的索引的方法;
图8示出了依照这里介绍的技术,操作数据存储***的方法;以及
图9是可用于实现这里介绍的技术的存储服务器的框图。
具体实施例
在本说明书中提及的“一实施例”,“一个实施例”,或类似的,意味着正在被描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。本说明书中这样的短语的出现不必然都指代相同的实施例。
这里介绍的***提供一种用于在网络存储***中存储对象的文件***布局。在可进行修改以满足不同的使用情况的需要的灵活的数据布局中,***提供了高效的数据对象存储和检索。***部分地通过在逻辑区段中存储数据对象,以及以使用两个索引用于定位数据对象,以及减少存储数据对象需要的存储空间量的非分层文件结构来管理数据对象的位置实现此目的。
***通过减少访问数据对象需要的磁盘的I/O的次数,***提升常规文件布局***的效率,以及通过减少与每个对象相关的元数据量,减少存储数据对象需要的存储空间量。***提供了扁平的名称空间文件布局,其是非分层性质,而不是负担伴随着典型的与分层文件布局***相关的路径、路径名称和目录的元数据开销。在一个实施例中,这些好处通过使用两个简单的索引管理文件布局完成。这两个索引的结构是,在很多情况下,它们中的一个足够小以待存储在低延时***存储器(例如,RAM)中。在这种方式中,可通过少至两次磁盘的I/O访问数据对象。常规情况下,分层文件***布局通常需要三次或更多的磁盘I/O,以访问一个数据对象。***实现了连同使用逻辑区段的卷的二个索引结构以用于存储数据对象。
图1示出操作环境100,其中在这里介绍的技术的一些实施例可被用于操作环境100中。操作环境100包括存储服务器***130,客户端180A和180B,以及网络190。
存储服务器***130包括存储服务器140、硬盘驱动器(HDD)150A、HDD 150B、固态驱动器(SSD)160A,以及SSD160B。存储服务器***130还可以包括不同种类的其它装置或存储部件,它们用于管理、控制,或提供访问数据或数据存储资源。存储服务器140是计算装置,其包括实现一个或多个文件***的存储操作***。存储服务器140可以是服务器级计算机,其提供有关诸如HDD 150A、HDD 150B、SSD160A和SSD160B的可写、持久性存储介质的信息的组织的存储服务。
典型的存储服务器***可包括相比图1中更多的HDD和/或SSD。应当理解的是,使用其它类型持久性存储设备代替、或与HDD和SSD组合,也可实现存储服务器***130。这些其它类型的持久存储设备可包括,例如,闪存、NVRAM,微机电(MEMS)存储设备,或它们的组合。存储服务器***130还可以包括其它装置,包括存储控制器,用于访问和管理持久性存储设备。存储服务器***130被示为单模块***,但可包括分布在不同地理位置中的***或装置。存储服务器***130还可包括附加的存储服务器,其使用与存储服务器140相同或不同的存储操作***进行操作。
根据本文描述的技术,存储服务器140管理卷作为数据对象的逻辑容器,该些逻辑容器存储在一个或多个逻辑区段中。每个逻辑区段包括由HDD150A、HDD 150B、SSD 160A和SSD 160B的一个或多个提供的存储空间。存储服务器140维护第一和第二索引用于定位数据对象。第一索引映射一系列的对象标识符到第二索引,以及第二索引指出与对象标识符的范围相关的数据对象的存储位置。为了改进***的性能,第一索引被存储在固态存储器或其它类型的存储器中,其提供比常规HDD更好的读取性能。在一些情况下,固态存储器位于存储服务器140中。固态存储器在一些实现中也可通过SSD160A或160B被提供。
图2示出了其依照这里介绍的技术使用示例中的数据存储的各种层,以及那些层之间的关系。数据存储包括多个不同的数据层,其中包括:片层230,其位于独立磁盘冗余阵列(RAID)层240之上,区域层220,其位于片层230之上,以及卷层210,其位于区域层220之上。在一个实施例中,这些层通过存储服务器140实现。
RAID层240包括由HDD组成的RAID奇偶校验组。RAID层240还可选择性地包括所示的SSD。***将RAID奇偶校验组划分成存储块的二维阵列。存储块的二维阵列被分配到片层230上的各个片。***还定义了区域层220上的多个区域。来自片层230的一个或多个片被分配到区域层220中的每个区域。如图所示,每个区域可用片来支持一个或多个逻辑区段(例如,E1,E2等)。因此,每个逻辑区段被分配到一个或多个被分配到包括逻辑区段的区域的片的至少一部分。每个片也可具有被分配到该区域的不同区段的部分。
***维护一个或多个卷或文件***,如卷层210中数据的逻辑容器。卷层210中的每个卷包括来自区域层220中的一个或多个区域的一个或多个逻辑区段。区域层220向卷层210的卷以及客户端和***的用户隐藏各个区域中逻辑区段的布局。任何给定的区域可包括由两个或更多个不同类型的物理存储设备,例如闪存、SSD、HDD,或其它存储设备的片构建的区段。区域可通过从片层230选择具有各种特性的片,在逻辑上被配置用于满足各种不同规格或性能需求。区域也可根据那些规范或性能需要的改变,被逻辑地重新配置。
组成卷的区段可从被配置用于具有不同特性的区域的池中被择或分配。卷可被配置为特定类型或种类,以及可与一系列的服务水平目标(SLO)相关联。一个卷类型可能实现常规的网络文件***(NFS)类型的文件服务,而另一个可能提供对LUN的访问,以及另一个可能实现用于内容资源库的使用的对象存储。
在一些情况下,一个区域可分配区段作为来自片层的连续存储。连续空间的分配改善区域的读取性能。对于一些应用,大区段(即,千兆字节)的分配提高了存储空间的效率。因为元数据跟踪每个区段和它的内容是必要的,而一小数量的区段导致了区域需要追踪它的区段的元数据总量的减少,所以效率被提升。
图3示出了依照这里介绍的技术使用两个索引以维护卷作为数据对象的逻辑容器的方法。在这个示例中,两个索引的第一个是范围索引310。两个索引的第二个是对象标识符(OID)索引320。范围索引310和OID索引320被存储***管理器用于定位存储在分配到卷的区段中的数据的对象。OID索引320也被存储在该卷的一个区段中。该卷可能有许多区段,但只有卷的一个区段被包括在图示中。
每一个存储在该卷中的数据对象被分配一个唯一的OID。当数据对象初始被存储到卷或当卷刚被创建时,OID被分配。在一个实现中,OID是数值。范围索引310包含OID范围的条目。范围索引310包含OID的两个范围的条目。第一范围涉及OID在1到N范围中的卷中的数据对象。范围索引310的第二范围涉及OID在N+1到2N范围中的卷中的数据对象,其中N可以是任意数字。为清楚起见,仅有两个范围被示于图3中,但用于额外的范围的更多的条目是可能的。该条目可涉及不同大小的范围,并且不限于一个大小为N或具有相同的大小。值得注意的是,范围索引310不包含每个数据对象的单独条目。范围索引310中的第一条目是适用于OID在1到N范围中的一组对象。
范围索引310包括每个OID的范围相关的OID索引位置。OID索引位置指出,指向,或者涉及OID的相关范围的OID索引条目的位置。范围索引310中的OID索引位置并非表示与范围中的OID相关的对象的绝对位置。
在图3的示例中,OID索引位置条目包括区段的识别以及所识别的区段中的偏移量。正是在这一识别的位置,其中与OID范围相关的第二索引条目开始。应当理解,一系列的OID的OID索引位置条目可使用指定该系列的OID的OID索引条目的其它方法。例如,OID区段1到N,而不是指向“区段1,偏移量0”,范围索引310可指向绝对的存储位置,特定的存储器地址,或者不在卷中的存储位置。
被标识为OID 1的卷中的数据对象可被定位和检索如下。由于数据对象的OID落在范围索引310(1到N)的第一条目的范围中,这个OID的OID索引位置是“区段1,偏移量0”。然后,***从与区段1的偏移量0相关的第一存储位置读取。如先前所描述,“区段1”不是指特定的物理位置,而指的是由先前所述的卷/区域/片***所定义的逻辑位置。OID索引320中指定的存储位置“区段1,偏移量0”包含指定与每个在1到N的范围的OID相关的每个数据对象的存储位置的条目。在这种情况下,请求的数据对象是范围中的第一部分,所以存储位置将被包括在区段1,偏移量0的第一条目中。第一条目指出数据对象OID 1被存储在“区段4,偏移量0”。数据对象可通过访问和读取在区段4,偏移量0(未在图中示出)的存储位置被检索。
为了比较,卷中的被识别为OID 3的数据对象可被定位和检索如下。由于OID落在范围索引310中的第一条目的范围中,这个OID的OID索引位置是“区段1,偏移0”。然后,该***从与区段1的偏移量0相关的存储位置读取。应该指出的是,直到这一点,该过程与上述关于OID 1并无不同。这是因为OID 1和OID 3都落在1到N(假设N≥3)的范围中,以及范围索引310不包含特定于单个OID的信息。OID索引320中指定的存储位置“区段1,偏移量0”包含指定在1到N的范围中的每个OID的存储位置的条目。在这种情况下,请求的数据对象是范围中的第三个,所以数据对象的存储位置将在区段1,偏移量0起始的第三条目中被找到。第三条目指出数据对象OID 3被存储在“区段6,偏移量212”中。数据对象可通过访问和读取在区段6,偏移量212(未在图中示出)的存储位置被检索。在一些示例中,一个或更多的索引条目还可包括指出存储在指定位置的数据的长度的信息。
在与上述相似的方法中,落入N+I到2N的范围中的对象被定位以及检索。例如,OID为N+2的数据对象与范围索引310中的第二条目相关,因为它在N+I到2N的范围中。该系列的OID的OID索引位置是“区段1,偏移量1000”。从区段1,偏移量1000起始的第二条目,被访问以确定数据对象OID N+2的存储位置。在这种情况下,数据对象的存储位置是区段Y,偏移量20。
相比包含卷的每一单个OID的条目的索引或表格,范围索引310相对较小,因为每个条目涉及一系列的OID。因为它小,所以范围索引310可在固态存储器或***的不需要I/O访问的其它存储器中被维护,而不是存储在区段或其它基于磁盘的存储位置。这意味着,可在不执行磁盘I/O的情况下,执行上述两个步骤索引查找过程中的第一步骤。因此可在仅有两次磁盘I/O操作的情况下,检索数据对象。***第一次磁盘I/O发生在***使用从范围索引310检索的信息访问OID索引320。使用来自OID索引320的信息,***执行第二次磁盘I/O,以从指定位置检索数据对象。
常规文件***的索引节点和索引节点结构通常过大,无法存储在***的固态存储器中。因为固态存储器相比基于磁盘的设备具有相当低的延时,特别是用于随机访问时,以更少的磁盘I/O执行存储操作可提供显著的性能优势。当图1和2的SSD有时被配置用于执行类似于由HDD执行的功能时,它们提供的相比常规的基于磁盘的存储设备的性能改进是使得在SSD中一个或多个索引的存储可提供的本文所述的类型的性能改进。虽然访问SSD中的数据是一次I/O,但这次I/O通常可比执行HDD的I/O更快。因此,如果第一索引存储在SSD中,那么与本文提供的发明的相关的益处仍可实现。虽然这个配置要求三次I/O以访问数据对象,第一次是SSD的I/O,其不具有与基于磁盘的装置相关的固有延时。
以上示例中的偏移量是指区段中的特定的存储位置。在一些情况下,偏移量是指固定大小的存储空间块。例如,每个偏移量可以是4K字节的存储空间块。在这个示例中,区段6,偏移量212可能指存储在从区段6(偏移量212×4K=848K)起始的848KB的地址。偏移量可以是其它大小,包括可变大小。在可变大小的偏移量的情况下,其它指标或信息指出偏移量的起始和结束可能是必要的。
包含在范围索引310和OID索引320中的信息可以许多不同的方式被格式化或编码。如图3所示的格式出于说明的目的被提供。范围索引310和OID索引320中的信息可被格式化或编码的所有的可能方式的描述超出了本说明书的范围。本发明不限于如图3提供的格式或任何其它特定的格式。
范围索引310还可包括涉及每一个OID的范围的其它信息。在一个示例中,OID范围可按SLO或按区域类型划分,以及这个信息也可存储在范围索引310中。OID范围也可为多租户被划分,其中不同的用户或用户组的使用指示在范围索引310中。相似地,OID索引320中的条目也可包括与每个数据对象相关的元数据。然而,本发明的进一步的目的是减少与每个数据对象相关的元数据量,以降低元数据比数据比率,并进一步提高存储效率。例如,基本属性,例如大小,可存储在OID索引320中,而其它的属性如所有者,创建时间,访问时间等,存储在别处(例如,在数据对象本身中,或在与数据对象相关的其它数据对象中)。
图4示出了数据存储***400,其中这里介绍的技术可被实现。数据存储***包括:处理器410、接口480、***存储器420,以及卷450。处理器410可以是任何类型的计算机、微处理器、中央处理单元(CPU)或可编程逻辑,包括它们的组合。接口480允许处理器410与其它装置、***、客户端、网络或它们的组合进行通信。接口480被示为单个接口,但可包括多个与不同的装置或***的接口。
***存储器420可以是任何类型用于计算目的的固态存储器,包括随机访问存储器(RAM)、非易失性存储器RAM(NVRAM)、动态RAM(DRAM)或闪存,包括它们的组合。***存储器420包括操作***422和第一索引424。第一索引420是范围索引310的一个示例。***存储器420还可包括在执行存储操作中使用的其它程序或应用。
卷450是由数据存储***存储400存储的数据对象的逻辑容器。卷450包括逻辑区段451-54。卷450也可包括其它逻辑区段或通过其它方式分配的存储空间。多个数据对象存储在卷450中。出于说明的目的,这些数据对象被统称为数据对象458。包括数据对象458的单个数据对象的每一个存储在一个或多个区段451-53中。每个区段451-54包括一个或多个片,其中每个片被定义为一个或多个物理存储设备中的一组存储块,诸如HDD。在一些示例中,数据存储***400可包括附加的卷。
区段451包括第二索引455。第二索引455是OID索引320的示例。区段452包括第三索引456。第三索引456可以是与第二索引455类似的另一个OID索引的示例,或也可以是用于随后的示例描述的目的的索引。
图5示出了实现这里介绍的技术的操作数据存储***的方法500。方法500结合数据存储***400的操作进行描述,但也可与其它类型的数据存储***或数据存储***400的其它配置一起使用。
方法500包括维护卷450作为数据存储***400中数据对象458的逻辑容器。数据对象458存储在一个或多个逻辑区段451-453中。每个数据对象458由OID唯一标识(步骤510)。方法500包括维护第一索引424和第二索引455用于定位数据对象458的单个数据对象。第一索引424映射OID的范围到第二索引455(步骤520)。第二索引455指出与OID的范围相关的数据对象458的单个数据对象的存储位置(步骤530)。
在数据存储***400的一个变化中,卷450被定义为附加。这意味着,数据对象458,以及存储在卷450中的任何其它数据对象,可被附加,但可能不被修改。修改需要创建新的数据对象。这种配置适合于数据对象通常写入一次,频繁地被随机访问,很少或没有修改它们的请求的应用(即,社交媒体平台中的照片存储)。这种附加的实现允许范围和OID索引更加高效地管理,以及提供更高效的可用储存空间的整体利用。这种实现更有效,因为覆盖支持需要对现有的范围的修改的支持(例如,映射被覆盖的数据对象的区段可能需要被分成两个段)。如果数据对象被连续地写入,这将导致元数据比需要的更多。换言之,附加从元数据的角度考虑比覆盖更高效,因为它需要添加新的映射,而不是修改旧的映射。
本文的示例主要描述了范围索引被存储在***存储器或固态存储器,以便提高***的性能的实现。然而,为可靠性的目的考虑,范围索引的备份副本通常也可以存储在基于磁盘的存储中,可能包括一个或多个区段中的存储。范围索引需要被存储在非易失性存储中,以在***关闭,失效或意外事件后便于***恢复。因此,一个或多个范围索引的工作副本可被存储在***或固态存储器中,而主要实例被存储在一个或多个区段中。当改变范围索引必要时,可在***或固态存储器中复制那些改变,那些改变被定期刷新到基于磁盘的拷贝。范围索引也可被存储在NVRAM中,以避免在断电或***故障的情况下范围索引的损失,或损失范围索引的最近的改变。
在上述的示例中描述的文件***布局提供了***存储器和基于磁盘的存储空间中(即,在两个索引中)节省空间的元数据结构。例如,在使用4KB磁盘页面的***中,每页可包含128个OID索引条目(假定32字节的条目)。可替换地,每个4KB的磁盘页面可能包含202个范围索引条目(假设20字节的条目)。在这个示例中,***仅需要大约163MB以存储范围索引以及大约32GB以存储10亿数据对象的条目的OID索引。OID需要如此少量的磁盘空间,使它可被存储在***存储器中。本文所描述的技术并不限于上述示例讨论的特定条目或磁盘页大小。当其它条目尺寸被利用时,类似的结果将被实现。
图6示出了依照这里介绍的技术,使用存储在多个区段中的索引用于维护卷作为对数据对象的逻辑容器的方法。图6的范围索引包含两个条目。OID在1到N范围中的数据对象的一个条目和OID在N+1到2N范围中的数据对象的第二条目。OID的第一范围的OID索引位置是“区段2,偏移量0”。OID的第二范围的OID索引位置是“区段4,偏移量0”。因此,当***检索OID在1到N范围中的数据对象时,它被引导到区段2中的OID索引A,以寻找数据对象的位置。当***检索OID在N+1到2N范围中的数据对象时,它被引导到区段4中的OID索引B。范围索引被维护在***存储器、固态存储器,或其它具有低延时访问的存储器中,以在不执行磁盘I/O的情况下,允许数据对象检索过程的第一步骤被执行。
OID索引A包括单个存储位置项,开始偏移量为0,对每一个与第一范围相关的数据对象。与OID 1相关的数据对象位于区段7,偏移0。与在图3的例子相反,相关的数据对象相比OID索引位于不同的区段。同时,与在相同的范围的其它的OID相关的数据对象可以位于其它区段。例如,与OID N相关的数据对象被定位在区段X中(未在图中示出)。OID索引A中的每个条目还包括相关的数据对象的长度。长度以块或***使用的其它测量单位示出。
OID在N+1到2N范围中的范围索引条目表示这个范围的OID索引被定为在区段3中。OID索引A、OID索引B包含指出相关的数据对象的存储位置的范围的每个OID的各个条目。被存储在两个不同的区段中的OID索引可指出被存储在相同的区段中的对象的存储位置。例如,与OID 1和OID2N相关的OID索引条目在两个不同的OID索引中,它们被存储在两个不同的区段中,即使数据对象1和对象数据2N都存储在区段7中。OID索引B的OID索引条目不包括长度指标。在这种情况下,基于数据对象本身中可获取的信息,***可确定数据对象的长度。OID索引A和OID索引B分别起始于区段2和3的偏移量0。尽管因为***管理原因,可优选将OID索引放置在偏移0中,但也可将它们放置在区段中的任意偏移量中。
图7示出了使用索引用于维护包含片段式数据对象的卷的方法。除了在先前示例中描述的OID索引信息,OID索引A中的每个条目还包含指出“更多”或“最后”的标志。“更多”标志指出相关的数据对象被分段(即,它具有存储在不同位置的两个或更多的部分)。这可能是因为这个数据对象在其初始、未分段存储之后的某一时间被附加或覆盖,或者因为它在其初始存储的某一时间被分段,以利用可用的有界限的存储空间块(即,空穴)。“更多”和“最后”被描述性地用于说明的目的,以及对是否有与特定OID索引条目相关的附加的OID索引条目的管理可以多种方式实现。
OID索引A表示OID 1存储在起始于区段7的偏移量0。存储在这个位置的部分具有5的长度。OID索引条目的“更多”标志表示有与OID 1相关的附加的OID索引A。第二条目被包括在OID索引A中,并表示OID 1的第二部分被存储在区段12的偏移量5中,并具有4的长度。这个条目包括“最后”标志,其表示它是OID 1的最后的OID索引。因此,没有必要搜索OID 1的额外的OID索引条目。当检索数据对象OID 1时,***必须检索区段7中的部分和区段12中的部分。一个数据对象可被分成两个以上的部分。一个数据对象的多个部分也可被存储在相同的区段中。
有利的是,一个或多个对象的多个OID索引条目的存在不影响范围索引。范围索引仅为数据对象的范围指出OID索引的起始位置。因此,当一个数据对象被附加,OID索引中附加的条目不需要改变或扩大范围索引。保持范围索引尽可能紧凑允许其在如之前所讨论的***存储器中被维护。
然而,当***正在写新的数据对象时,范围索引可能需要被更新,以适应新的对象。图8示出了用于写入新的数据对象的一种操作数据存储***的方法800。***从客户端接收待存储在数据存储***中的新的数据对象(步骤810)。***为新的数据对象分配多个的逻辑区段中的一个的存储空间(步骤820)。在一些情况下,尽管不是优选,新的数据对象可以与图7有关的讨论的片段式方式被存储。对象标识符被分配到新的数据对象,以及将其写入分配的存储空间(步骤830)。
根据新的OID,范围索引可能需要被更新(步骤840)。如果新的OID不在范围索引中现有条目的范围中,新的条目可被创建。例如,关于图7,如果新的数据对象具有2N+1的OID,那么在范围索引中没有为它的现有条目。因此,新的条目必须在范围索引中被创建以覆盖包括2N+1的OID范围。在新的数据对象的OID在范围索引中的现有范围之中的情况下,新的条目可能不需要被创建。例如,如果新的数据对象具有2N-1的OID,那么它已经由范围索引内的的现有的第二条目处理了。
最后,OID索引中的条目被更新以反映新的数据对象的存储位置(步骤850)。更新涉及添加一个或多个新的条目到一个或多个OID索引以反映新的数据对象的位置,或新的数据对象的片段的位置。
***可使用延时写分配执行写入新的数据对象的处理。延时写分配是区段中的新的数据对象的存储空间未被分配和/或被写入,直到所有与数据对象相关的块已被接收,并准备好被写入的处理。分配/写入的处理也可被延时,直到与数据对象相关的所有元数据或信息也已被接收。数据对象的存储空间需求在分配或写入处理执行前是已知的。延时写分配提高了数据的布局,因为它提高了***为新的数据对象分配连续的存储空间的能力。连续的存储空间提高了数据对象的读取性能。在许多情况下,***为更好的读取性能并降低相关的元数据量,优选地在单一区段中连续地存储数据对象。然而,因为区段是在逻辑上被定义,两个不同的区段中的存储空间实际上可能是物理上的连续的存储空间。
***可利用存储接收的新创建的数据对象的块或片段的写缓存以便于延时写分配,直到其完成或者经过指定的期间。写缓存可在非易失性存储器中被实现,使得来自客户端的对新的数据对象写入请求可在新的数据对象被放置到写缓存后,但在已被写入到一个或多个分配的区段前向客户端确认。这样做不仅可使基于磁盘的装置的访问延时从客户端的响应时间中消除,而且还使***能够以更灵活的方式在不影响客户端的响应时间的情况下优先化磁盘操作。这里描述的延时写分配和写缓存处理不仅适用于创建新的数据对象,而且当附加现有数据对象时,也可以被使用。
图9是可被用于实现存储***的组件的存储服务器900的框图。例如,图9的***可以被用于实现客户端***、计算机、网络设备或存储服务器。图1的存储服务器140是存储服务器900的一个示例,但其它配置和操作是可能的。在说明性的实施例中,存储服务器900包括一个或多个处理器910、存储器920、网络适配器940,以及存储适配器950,所有通过互连960互连。
存储器920包括处理器910可寻址的存储位置以及用于存储与这里介绍的技术相关的软件的程序代码和数据结构的适配器940和950。处理器910以及适配器940和950可依次包括被配置用于执行软件代码和操作数据结构的处理元件和/或逻辑电路。这对本领域技术人员将是显而易见的,包括各种机器可读存储介质的其它处理和存储器实现,可被使用用于存储和执行涉及这里介绍的技术的程序指令。
网络适配器940包括多个端口通过点对点链路、广域网、通过公共网络实现的虚拟专用网,或共享的局域网将存储服务器900与一个或多个其它***相连。网络适配器940可包括连接存储服务器900到网络,如网络190需要的机械部件和电子电路。一个或多个***可通过根据预定义的协议,如TCP/IP交换数据包或数据帧在网络190上与其它***进行通信。
存储适配器950与运行在处理器910上的操作***相连,以访问附接的存储设备上的信息。信息可被存储在任何类型的可写存储介质的附接的阵列上,诸如HDD、磁带、光盘、闪存、SSD、RAM、MEMS和/或任何其它类似的适于存储信息的介质。存储适配器950包括多个端口,其具有通过I/O互联布置与磁盘或其它存储设备相连的I/O接口电路。
本发明的实施例包括各种步骤和操作,这已在上文描述。多种这些步骤和操作可由硬件元件来执行,或者可以以机器可执行的指令被体现,其可被用于使以指令编程的通用或专用处理器以执行步骤。可替换地,这些步骤可以通过硬件、软件和/或固件的组合来执行。
本发明的实施例可被提供作为计算机程序产品,其可以包括机器可读介质,其上存储有可被用于对计算机或其它电子设备编程以执行一些或全部本文描述的操作的非临时性的指令。机器可读介质可包括,但不限于光盘、光盘只读存储器(CD-ROM)、磁光盘、软盘、ROM、RAM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁卡或光卡、闪存,或其它类型的适于存储电子指令的机器可读介质。此外,本发明的实施例也可被下载作为计算机程序产品,其中程序可通过经由通信链路体现在载波或其它传播介质中的数据信号方式从远程计算机被传送到请求的计算机。
短语“在一些实施例中”、“根据一些实施例”、“在示出的实施例中”、“在其它实施例中”、“在一些示例中”,以及类似物通常表示以下短语之后的特定的特征、结构或特性被包括在本发明的至少一个实施例中,并且可被包括在本发明的一个以上实施例中。此外,这些短语并不必然涉及相同的实施例或不同的实施例。
尽管本发明的一个或多个实施例的详细描述已在上文给出,各种替代、修改和等同物在不脱离本发明的精神的情况下,对本领域的技术人员将是明显的。例如,尽管上文描述的实施例涉及具体的特征,但本发明的范围还包括具有不同的特征的组合的实施例,以及不包括所有的描述的特征的实施例。因此,本发明的范围旨在涵盖在本权利要求书的范围之内的所有这样的替代、修改,以及变化,以及所有的等同物。因此,以上描述不应被视为对由本发明的权利要求限定的范围的限制。

Claims (28)

1.一种方法,包括:
在数据存储***中,为多个数据对象维护逻辑区段,其中所述数据对象存储在所述数据存储***的多个逻辑区段的一个或多个中以及所述数据对象由对象标识符唯一标识;以及
维护第一和第二索引用于定位所述数据对象,其中:
所述第一索引映射所述对象标识符的第一范围到所述第二索引;以及
所述第二索引指出与所述对象标识符的所述第一范围相关的所述数据对象的存储位置;
其中所述第一索引将所述对象标识符的第二范围映射到第三索引;以及
其中所述第三索引指示与所述对象标识符的所述第二范围相关联的每个所述数据对象的存储位置。
2.根据权利要求1所述的方法,其中所述第一索引存储在所述数据存储***的固态存储器中,以及所述第二索引存储在所述多个逻辑区段的一个区段中。
3.根据权利要求1所述的方法,其中所述多个逻辑区段中的每个包括一个或多个片的至少一部分,每个片被定义为一个或多个物理存储设备中的一组存储块。
4.根据权利要求1所述的方法,其中所述第二索引和所述第三索引存储在不同的逻辑区段。
5.根据权利要求1所述的方法,其中所述第一索引通过提供以下项来映射所述对象标识符的所述第一范围到所述第二索引:
存储了所述第二索引的区段的标识符;以及
存储了所述第二索引的所述区段中的偏移量。
6.根据权利要求5所述的方法,其中指出所述数据对象的所述存储位置包括提供:
存储了所述第一范围的每个所述数据对象的区段的识别符;
存储了所述第一范围的每个所述数据对象的每个所述区段中的偏移量;以及
所述第一范围的每个所述数据对象的长度。
7.根据权利要求1所述的方法,其中在所述第二索引中指出的所述数据对象的所述存储位置是基于所述相关的对象标识符按顺序布置的。
8.根据权利要求1所述的方法进一步包括:
接收所述数据对象的客户请求;
从所述第一范围和所述第二范围中,选择与所述请求的数据对象相关的范围;
如果所述选择的范围是所述第一范围,那么从所述第二索引确定所述请求的数据对象的存储位置,或如果所述选择的范围是所述第二范围,那么从所述第三索引确定所述请求的数据对象的所述存储位置;以及
从所述确定的存储位置检索所述请求的数据对象。
9.根据权利要求1所述的方法进一步包括:
接收来自客户的新的数据对象,以待存储在所述数据存储***中;
在多个逻辑区段的一个中分配存储空间;
写入所述新的数据对象到所述分配的存储空间;以及
基于所述分配的存储空间的位置,更新所述第一索引和所述第二索引。
10.根据权利要求9所述的方法,其中所述新的数据对象作为多个块接收自所述客户,以及直到接收到所有所述块才分配所述存储空间。
11.一种数据存储***,包括:
***存储器;
多个逻辑区段,其中一个或多个物理存储设备中的一个或多个 存储块被分配到所述多个逻辑区段中的每个;以及
处理器,其被配置用于:
维护卷作为多个数据对象的逻辑区段,其中所述卷包括一个或多个逻辑区段;
在一个或多个所述多个逻辑区段存储数据对象,其中所述数据对象由对象标识符唯一标识;
维护第一索引,其中所述第一索引存储在所述***存储器中,
并映射所述对象标识符的第一范围到第二索引;以及
维护所述第二索引,其中所述第二索引存储在所述逻辑区段的一个逻辑区段中,并指出与所述对象标识符的所述第一范围相关的所述数据对象的存储位置;
其中所述第一索引将所述对象标识符的第二范围映射到第三索引;以及
其中所述第三索引指示与所述对象标识符的所述第二范围相关联的每个所述数据对象的存储位置。
12.根据权利要求11所述的数据存储***,其中所述第二索引和所述第三索引存储在不同的逻辑区段中。
13.根据权利要求11所述的数据存储***,其中所述第一索引通过提供以下项映射所述对象标识符的所述第一范围到所述第二索引:
存储了所述第二索引的区段的标识符;以及
存储了所述第二索引的所述区段中的偏移量。
14.根据权利要求13所述的数据存储***,其中指出所述数据对象的所述存储位置包括提供:
存储了所述第一范围的每个所述数据对象的区段的识别符;
存储了所述第一范围的每个所述数据对象的每个所述区段中的偏移量;以及
所述第一范围的每个所述数据对象的长度。
15.根据权利要求11所述的数据存储***,其中在所述第二索引 中指出的所述数据对象的所述存储位置是基于所述相关的对象标识符按顺序布置的。
16.根据权利要求11所述的数据存储***,其中为响应客户对数据对象的请求,所述处理器被进一步配置用于:
从所述第一范围和所述第二范围中,选择与所述请求的数据对象相关的范围;
如果所述选择的范围是所述第一范围,那么从所述第二索引确定所述请求的数据对象的存储位置,或如果所述选择的范围是所述第二范围,那么从所述第三索引确定所述请求的数据对象的所述存储位置。
17.根据权利要求11所述的数据存储***,其中所述处理器被进一步配置用于:
接收来自客户的新的数据对象,以待存储在所述数据存储***中;
为所述新的数据对象指定新的对象标识符;
在所述多个逻辑区段中的一个中分配存储空间;
写入所述新的数据对象到所述分配的存储空间;以及
更新所述第一索引和所述第二索引。
18.根据权利要求17所述的数据存储***,其中所述新的数据对象作为多个块接收自所述客户,以及直到接收到所有所述块才分配所述存储空间以及写入所述数据对象。
19.根据权利要求11所述的数据存储***,其中与所述数据对象中的一个相关的附加的元数据与所述数据对象一起存储。
20.一种非临时性计算机可读介质,包括指令,当由一个或多个处理器执行时,引导所述一个或多个处理器:
在数据存储***中,定义多个区域以包含数据对象,所述多个区域包括多个逻辑区段,其中分配到每个所述的逻辑区段是分配到包括所述逻辑区段的区域的一个或多个片的至少一部分,每个所述片定义为一个或多个物理存储设备中的一组储存块;
在所述数据存储***中,维护多个卷作为数据的逻辑区段,每个所述卷包括来自一个或多个所述区域的一个或多个所述逻辑区段,其中所述区域中的所述逻辑区段的布局对于所述多个卷不可见;以及
维护第一索引,其中与第一组所述数据对象相关的第一组唯一的对象标识符被映射到第二索引,与第二组所述数据对象相关的第二组唯一的对象标识符被映射到第三索引,其中:
所述第一索引存储在固态存储器中;
所述第二索引存储在一个所述逻辑区段中,以及指出所述第一组的所述数据对象的存储位置;以及
所述第三索引存储在另一个所述逻辑区段中,以及指出与所述第二组相关的所述数据对象的存储位置。
21.根据权利要求20所述的非临时性计算机可读介质,其中所述第一索引通过提供以下项映射所述第一组所述对象标识符到所述第二组:
存储了所述第二索引的区段的标识符;以及
存储了所述第二索引的所述区段中的偏移量。
22.根据权利要求21所述的非临时性计算机可读介质,其中指出所述数据对象的所述存储位置包括提供:
存储了所述第一组的每个所述数据对象的区段的识别符;
存储了所述第一组的每个所述数据对象的每个所述区段中的偏移量,其中;以及
所述数据对象的长度。
23.根据权利要求20所述的非临时性计算机可读介质,其中在所述第二索引和所述第三索引中指出的所述数据对象的所述存储位置是基于所述相关的对象标识符按顺序布置的。
24.根据权利要求20所述的非临时性计算机可读介质,其中所述指令进一步引导所述一个或多个处理器:
接收来自存储客户的数据对象的请求;
从所述第一组和所述第二组中,选择与所述请求的数据对象相关的一组;以及
如果所述选择的组是所述第一组,那么从所述第二索引确定所述请求的数据对象的存储位置,或如果所述选择的组是所述第二组,那么从所述第三索引确定所述请求的数据对象的所述存储位置。
25.根据权利要求20所述的非临时性计算机可读介质,其中所述指令进一步引导所述一个或多个处理器:
接收来自客户的新的数据对象,以待存储在所述数据存储***中,其中所述新的数据对象作为多个块被接收;
在所有所述块被接收后,在所述多个逻辑区段的一个中分配存储空间;
写入所述新的数据对象到所述分配的存储空间。
26.一种方法,包括:
在数据存储***中,使用多级索引用于跟踪存储在逻辑数据容器中的多个数据对象的位置,所述多级索引包括第一索引和映射到所述第一索引的第二索引;
在所述数据存储***中的固态存储器中维护作为整体的所述第一索引;
在独立于所述固态存储器的永久性大容量存储设备中维护所述第二索引;以及
通过不超过两个存储I/O操作,访问所述永久大容量存储中的逻辑区段以检索所述多个数据对象中的一个,其中所述访问包括使用包含在所述第一索引和所述第二索引中的信息,以标识所述多个数据对象中的所述的一个的存储位置;
其中所述第一索引将所述对象标识符的第二范围映射到第三索引;以及
其中所述第三索引指示与所述对象标识符的所述第二范围相关联的每个所述数据对象的存储位置。
27.根据权利要求26所述的方法,其中所述多个数据对象的每一个由对象标识符唯一标识,以及第一索引映射所述对象标识符的范围到所述第二索引。
28.根据权利要求27所述的方法,其中所述第二索引指出与所述范围相关的所述数据对象的存储位置。
CN201380034676.6A 2012-04-27 2013-04-16 高效的数据对象存储和检索 Active CN104395904B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/458,323 US8793466B2 (en) 2012-04-27 2012-04-27 Efficient data object storage and retrieval
US13/458,323 2012-04-27
PCT/US2013/036832 WO2013162954A1 (en) 2012-04-27 2013-04-16 Efficient data object storage and retrieval

Publications (2)

Publication Number Publication Date
CN104395904A CN104395904A (zh) 2015-03-04
CN104395904B true CN104395904B (zh) 2017-11-03

Family

ID=49478406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380034676.6A Active CN104395904B (zh) 2012-04-27 2013-04-16 高效的数据对象存储和检索

Country Status (5)

Country Link
US (1) US8793466B2 (zh)
EP (1) EP2847698A4 (zh)
JP (1) JP6664218B2 (zh)
CN (1) CN104395904B (zh)
WO (1) WO2013162954A1 (zh)

Families Citing this family (168)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443153B1 (en) * 2010-01-06 2013-05-14 Netapp, Inc. Dynamic balancing of performance with block sharing in a storage system
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8856440B2 (en) * 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US10635692B2 (en) 2012-10-30 2020-04-28 Ubiq Security, Inc. Systems and methods for tracking, reporting, submitting and completing information forms and reports
US8924425B1 (en) 2012-12-06 2014-12-30 Netapp, Inc. Migrating data from legacy storage systems to object storage systems
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US9436720B2 (en) 2013-01-10 2016-09-06 Pure Storage, Inc. Safety for volume operations
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US9223517B1 (en) * 2013-05-03 2015-12-29 Emc Corporation Scalable index store
US20150074116A1 (en) * 2013-09-10 2015-03-12 Cloudvolumes, Inc. Indexing attachable applications for computing systems
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US10812313B2 (en) * 2014-02-24 2020-10-20 Netapp, Inc. Federated namespace of heterogeneous storage system namespaces
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
KR102310246B1 (ko) * 2014-04-23 2021-10-08 삼성전자주식회사 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
JP6220323B2 (ja) 2014-09-05 2017-10-25 株式会社東芝 オブジェクト検索装置およびその検索方法
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US10579823B2 (en) 2014-09-23 2020-03-03 Ubiq Security, Inc. Systems and methods for secure high speed data generation and access
SG11201808317XA (en) 2014-09-23 2018-10-30 Fhoosh Inc Secure high speed data storage, access, recovery, and transmission
US9690823B2 (en) 2014-09-25 2017-06-27 Dropbox, Inc. Synchronizing copies of an extent in an append-only storage system
US9720607B2 (en) 2014-09-25 2017-08-01 Dropbox, Inc. Append-only storage system supporting open and closed extents
US10409769B1 (en) * 2014-09-29 2019-09-10 EMC IP Holding Company LLC Data archiving in data storage system environments
US9373353B2 (en) 2014-09-30 2016-06-21 International Business Machines Corporation Negative select access mechanism
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) * 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
WO2016100404A1 (en) * 2014-12-15 2016-06-23 FHOOSH, Inc. Systems and methods for diffracted data retrieval
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
CN104994135B (zh) * 2015-05-25 2018-09-21 华为技术有限公司 存储***中融合san及nas存储架构的方法及装置
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11334540B2 (en) * 2015-09-25 2022-05-17 Netapp, Inc. Namespace hierarchy preservation with multiple object storage objects
US10929419B2 (en) 2015-09-25 2021-02-23 Netapp, Inc. Object storage backed file system
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
CN105550345B (zh) * 2015-12-25 2019-03-26 百度在线网络技术(北京)有限公司 文件操作方法和装置
US10733161B1 (en) * 2015-12-30 2020-08-04 EMC IP Holding Company LLC Atomically managing data objects and assigned attributes
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US11249968B2 (en) * 2016-05-09 2022-02-15 Sap Se Large object containers with size criteria for storing mid-sized large objects
CA3026584C (en) * 2016-06-09 2023-10-10 Informatique Holistec Inc. Data storage system and method for performing same
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
JP6253752B1 (ja) * 2016-11-29 2017-12-27 株式会社東芝 階層化ストレージシステム
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
RU2017104408A (ru) * 2017-02-10 2018-08-14 СИГЕЙТ ТЕКНОЛОДЖИ ЭлЭлСи Составные топологии хранения данных для объектов данных
US10996857B1 (en) * 2017-02-28 2021-05-04 Veritas Technologies Llc Extent map performance
CN108572958B (zh) * 2017-03-07 2022-07-29 腾讯科技(深圳)有限公司 数据处理方法及装置
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11138247B2 (en) * 2017-04-07 2021-10-05 Druva, Inc. Systems and methods for a full text search engine implemented using object storage techniques
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US20180364937A1 (en) 2017-06-20 2018-12-20 Samsung Electronics Co., Ltd. System and method for managing memory device
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US11256667B2 (en) 2017-10-26 2022-02-22 Druva Inc. Deduplicated merged indexed object storage file system
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11349656B2 (en) 2018-03-08 2022-05-31 Ubiq Security, Inc. Systems and methods for secure storage and transmission of a data stream
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
CN111159438B (zh) * 2018-11-08 2022-06-03 杭州海康威视数字技术股份有限公司 一种数据的存储和检索方法、电子设备及存储介质
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US10922012B1 (en) 2019-09-03 2021-02-16 Dropbox, Inc. Fair data scrubbing in a data storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US10938961B1 (en) 2019-12-18 2021-03-02 Ndata, Inc. Systems and methods for data deduplication by generating similarity metrics using sketch computation
US11119995B2 (en) 2019-12-18 2021-09-14 Ndata, Inc. Systems and methods for sketch computation
CN111274259A (zh) * 2020-02-16 2020-06-12 西安奥卡云数据科技有限公司 一种分布式存储***中存储节点的数据更新方法
CN111309261A (zh) * 2020-02-16 2020-06-19 西安奥卡云数据科技有限公司 一种分布式存储***中单节点上数据物理位置映射方法
CN111398838B (zh) * 2020-03-19 2022-05-17 湖北亿纬动力有限公司 一种动力电池的状态数据记录方法、装置、***及介质
US11579771B2 (en) 2020-05-12 2023-02-14 Seagate Technology Llc Data storage layouts
US11960773B2 (en) 2020-07-31 2024-04-16 Hewlett Packard Enterprise Development Lp Modifying virtual persistent volumes based on analysis of performance metrics
US11755373B2 (en) * 2020-10-07 2023-09-12 Oracle International Corporation Computation and storage of object identity hash values
CN113342751B (zh) * 2021-07-30 2021-11-09 联想凌拓科技有限公司 元数据处理方法、装置、设备和可读存储介质
CN113885805A (zh) * 2021-10-19 2022-01-04 上海达梦数据库有限公司 一种区块分配方法、装置、设备及存储介质
CN114489494A (zh) * 2022-01-13 2022-05-13 深圳欣锐科技股份有限公司 一种外部存储器存储配置参数的存储方法及相关设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1726454A (zh) * 2002-10-17 2006-01-25 英特尔公司 分布式网络附接的存储***

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697846B1 (en) 1998-03-20 2004-02-24 Dataplow, Inc. Shared file system
US6804746B2 (en) 2001-03-01 2004-10-12 Sony Corporation Method and system for optimizing data storage and retrieval by an audio/video file system using hierarchical file allocation table
WO2004036408A2 (en) 2002-10-17 2004-04-29 Intel Corporation A distributed network attached storage system
JP2004206615A (ja) * 2002-12-26 2004-07-22 Matsushita Electric Ind Co Ltd 記憶装置
US8321667B2 (en) 2007-02-28 2012-11-27 Microsoft Corporation Security model for common multiplexed transactional logs
US7739312B2 (en) 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
US7827201B1 (en) 2007-04-27 2010-11-02 Network Appliance, Inc. Merging containers in a multi-container system
US8612668B2 (en) * 2008-11-24 2013-12-17 Juniper Networks, Inc. Storage optimization system based on object size
US8478799B2 (en) * 2009-06-26 2013-07-02 Simplivity Corporation Namespace file system accessing an object store
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8856440B2 (en) * 2011-09-12 2014-10-07 Microsoft Corporation Volatile memory representation of nonvolatile storage device set

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1726454A (zh) * 2002-10-17 2006-01-25 英特尔公司 分布式网络附接的存储***

Also Published As

Publication number Publication date
WO2013162954A1 (en) 2013-10-31
JP2015521310A (ja) 2015-07-27
EP2847698A1 (en) 2015-03-18
CN104395904A (zh) 2015-03-04
EP2847698A4 (en) 2016-03-02
US8793466B2 (en) 2014-07-29
JP6664218B2 (ja) 2020-03-13
US20130290648A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
CN104395904B (zh) 高效的数据对象存储和检索
US10936503B2 (en) Device access point mobility in a scale out storage system
CN103874980B (zh) 存储***中的映射
US10761758B2 (en) Data aware deduplication object storage (DADOS)
CN105786408B (zh) 闪存阵列中的逻辑扇区映射
CN106407040B (zh) 一种远程数据复制方法及***
CN103635900B (zh) 基于时间的数据分割
CN104246764B (zh) 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置
CN104025010B (zh) 存储***中的可变长度编码
US9047301B2 (en) Method for optimizing the memory usage and performance of data deduplication storage systems
CN103502926B (zh) 基于扩展区的存储架构
CN105027070B (zh) 卷操作的安全性
CN105378641B (zh) 在异构数据卷中配置多个层
US8635184B2 (en) System and method for providing long-term storage for data
US20160132396A1 (en) Extent metadata update logging and checkpointing
US9086820B2 (en) System and methods for managing storage space allocation
CN108021336A (zh) 用于无缝数据迁移的数据布局方案
CN106662981A (zh) 存储设备、程序和信息处理方法
CN106687910A (zh) 优化分段清除技术
US20170185645A1 (en) Database caching in a database system
CN102779180A (zh) 数据存储***的操作处理方法,数据存储***
US20070061540A1 (en) Data storage system using segmentable virtual volumes
CN108604165A (zh) 存储装置
CN102221982A (zh) 块级虚拟化存储设备上实现重复数据删除的方法及***
CN104054071A (zh) 访问存储设备的方法和存储设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: American California

Applicant after: NETAPP incorporated company

Address before: American California

Applicant before: Network Appliance Inc.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant