高效的数据对象存储和检索制造技术

技术编号:11100689 阅读:139 留言:0更新日期:2015-03-04 12:29
一种数据存储系统包括处理器、系统存储器,以及逻辑区段。在一个或多个物理存储设备中的存储块被分配到每个逻辑区段。处理器维护数据对象的逻辑区段,以及卷包括一个或多个的逻辑区段。处理器存储数据对象,其由逻辑区段中的对象标识符唯一标识。处理器还维护第一索引,其存储在系统存储器中以及映射对象标识符的范围到第二索引。第二索引也存储在逻辑区段中以及指出与对象标识符的范围相关的数据对象的存储位置。

【技术实现步骤摘要】
【国外来华专利技术】高效的数据对象存储和检索相关申请的交叉引用本申请要求2012年4月27日提交的美国专利申请号13/458,323的优先权,其全部内容通过引用方式被合并于此。
本专利技术的至少一个实施例涉及数据存储系统,并且更具体地,涉及一种用于高效地在数据存储系统中存储数据对象的技术。
技术介绍
网络存储是一种常用的方式来备份数据,以及使各种客户端可访问大量数据。在网络存储环境中,存储服务器通过呈现或输出一个或多个的数据的逻辑区段到客户端,将数据提供给客户端系统。存储服务器还接收来自客户端系统的数据以供存储。有各种形式的网络存储,包括网络附加存储(NAS)以及存储区域网络(SAN)。在NAS环境,存储服务器为来自客户端的文件级请求提供服务。在SAN环境,存储服务器服务为块级请求提供服务。一些存储服务器能够为文件级请求和块级请求均提供服务。 该技术的市场正经历影响现有的网络存储技术的几个趋势。首先,使用网络存储系统存储的数据量继续增加。第二,以随机方式检索数据对象的应用的数量也在增加。应用,如照片档案,为大量时常随机访问的数据对象提供存储。在一些情况下,这些数据对象也很少修改。常规的文件系统布局在这些情况下存储和检索数据对象已被证明是低效的。在许多常规的文件系统布局中使用的分层名称空间和索引节点结构需要三次或更多的磁盘输入/输出(I/o)操作,以存储或检索数据对象。通常需要一次1/0,以检索将数据对象的名称转换成索引节点的必要信息。第二次I/o对检索索引节点结构是必要的。通常需要至少第三次1/0,以检索数据对象。这些常规的布局也典型地包括存储可能在这些应用中并不需要的元数据属性。 此外,高度适应不同的应用和性能配置对网络存储系统正在变得更加重要。常规的网络存储系统通常每个均使用单一的数据布局,其可能满足一些用途,但对市场需要的许多不同的配置通常不是最理想的。因此,网络存储系统的设计者必须进行有关系统的各种潜在的用途应该如何驱动设计的各种设计选择。这些选择将确定该系统的性能特性。一旦设计已经实施并产品化,改变得到的系统操作特性,即使不是不可能的,也非常困难。 概述 下面介绍的是用于在网络存储系统中存储对象的文件系统布局,以及相关的方法和装置。用于实施该文件系统布局的各种装置和方法在随后的讨论中被统称为“这里介绍的系统”或简称为“系统”。系统以灵活的数据布局提供了高效的数据对象存储和检索,该灵活的数据布局可被修改以满足不同的使用情况的各种需要。在其它特性中,系统将数据对象存储在区段中,并使用非分层结构管理它们。系统通过减少存储或检索在大容量存储设备中的数据对象需要的输入/输出操作(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是可用于实现这里介绍的技术的存储服务器的框图。 具体实施例 在本说明书中提及的“一实施例”,“一个实施例”,或类似的,意味着正在被描述的特定特征、结构或特性被包括在本专利技术的至少一个实施例中。本说明书中这样的短语的出现不必然都指代相同的实施例。 这里介绍的系统提供一种用于在网络存储系统中存储对象的文件系统布局。在可进行修改以满足不同的使用情况的需要的灵活的数据布局中,系统提供了高效的数据对象存储和检索。系统部分地通过在逻辑区段中存储数据对象,以及以使用两个索引用于定位数据对象,以及减少存储数据对象需要的存储空间量的非分层文件结构来管理数据对象的位置实本文档来自技高网...
高效的数据对象存储和检索

【技术保护点】
一种方法包括:在数据存储系统中,为多个数据对象维护逻辑区段,其中所述数据对象存储在所述数据存储系统的多个逻辑区段的一个或多个中以及所述数据对象由对象标识符唯一标识;以及维护第一和第二索引用于定位所述数据对象,其中:所述第一索引映射所述对象标识符的第一范围到所述第二索引;以及所述第二索引指出与所述对象标识符的所述第一范围相关的所述数据对象的存储位置。

【技术特征摘要】
【国外来华专利技术】2012.04.27 US 13/458,3231.一种方法包括: 在数据存储系统中,为多个数据对象维护逻辑区段,其中所述数据对象存储在所述数据存储系统的多个逻辑区段的一个或多个中以及所述数据对象由对象标识符唯一标识;以及 维护第一和第二索引用于定位所述数据对象,其中: 所述第一索引映射所述对象标识符的第一范围到所述第二索引;以及 所述第二索引指出与所述对象标识符的所述第一范围相关的所述数据对象的存储位置。2.根据I所述的方法,其中所述第一索引存储在所述数据存储系统的固态存储器中,以及所述第二索引存储在所述多个逻辑区段的一个区段中。3.根据I所述的方法,其中所述多个逻辑区段中的每个包括一个或多个片的至少一部分,每个片被定义为一个或多个物理存储设备中的一组存储块。4.根据I所述的方法,其中: 所述第一索引映射所述对象标识符的第二范围到第三索引;以及所述第三索引指出与所述对象标识符的所述第二范围相关的每个所述数据对象的存储位置。5.根据4所述的方法,其中所述第二索引和所述第三索引存储在不同的逻辑区段。6.根据I所述的方法,其中所述第一索引通过提供以下项来映射所述对象标识符的所述第一范围到所述第二索引: 存储了所述第二索引的区段的标识符;以及 存储了所述第二索引的所述区段中的偏移量。7.根据6所述的方法,其中指出所述数据对象的所述存储位置包括提供: 存储了所述第一范围的每个所述数据对象的区段的识别符; 存储了所述第一范围的每个所述数据对象的每个所述区段中的偏移量;以及 所述第一范围的每个所述数据对象的长度。8.根据I所述的方法,其中在所述第二索引中指出的所述数据对象的所述存储位置是基于所述相关的对象标识符按顺序布置的。9.根据4所述的方法进一步包括: 接收所述数据对象的客户请求; 从所述第一范围和所述第二范围中,选择与所述请求的数据对象相关的范围; 如果所述选择的范围是所述第一范围,那么从所述第二索引确定所述请求的数据对象的存储位置,或如果所述选择的范围是所述第二范围,那么从所述第三索引确定所述请求的数据对象的所述存储位置;以及 从所述确定的存储位置检索所述请求的数据对象。10.根据I所述的方法进一步包括: 接收来自客户的新的数据对象,以待存储在所述数据存储系统中; 在多个逻辑区段的一个中分配存储空间; 写入所述新的数据对象到所述分配的存储空间;以及 基于所述分配的存储空间的位置,更新所述第一索引和所述第二索引。11.根据10所述的方法,其中所述新的数据对象作为多个块接收自所述客户,以及直到接收到所有所述块才分配所述存储空间。12.—种数据存储系统,包括: 系统存储器; 多个逻辑区段,其中一个或多个物理存储设备中的一个或多个存储块被分配到所述多个逻辑区段中的每个;以及处理器,其被配置用于: 维护卷作为多个数据对象的逻辑区段,其中所述卷包括一个或多个逻辑区段; 在一个或多个所述多个逻辑区段存储数据对象,其中所述数据对象由对象标识符唯一标识; 维护第一索引,其中所述第一索引存储在所述系统存储器中, 并映射所述对象标识符的第一范围到第二索引;以及 维护所述第二索引,其中所述第二索引存储在所述逻辑区段的一个逻辑区段中,并指出与所述对象标识符的所述第一范围相关的所述数据对象的存储位置。13.根据12所述的数据存储系统,其中: 所述第一索引映射所述对象标识符的第二范围到第三索引;以及所述第三索引指出与所述对象标识符的所述第二范围相关的每个所述数据对象的存储位置。14.根据13所述的数据存储系统,其中所述第二索引和所述第三索引存储在不同的逻辑区段中。15.根据12所述的数据存储系统,其中所述第一索引通过提供以下项映射所述对象标识符的所述第一范围到所述第二索引: 存储了所述第二索引的区段的标识符;以及 存储了所述第二索引的所述区段中的偏移量。16.根据15所述的数据存储系统,其中指出所述数据对象的所述存储位置包括提供: 存储了所述第一范围的每个所述数据对象的区段的识别符; 存储了所述第一范围的每个所述数据对象的每个所述区段中的偏移量;以及 所述第一范围的每个所述数据对象的长度。17.根据12所述的数据存储系统,其中在所述第二索引中指出的所述数据对象的所述存储位置是基于所述相关的对象标识符按顺序布置的。18.根据13所述的数据存储系统,其中为响应客户对数据对象...

【专利技术属性】
技术研发人员:加思·R·古德森绍铭隆
申请(专利权)人:网络装置公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1