将虚拟映射存入对象属性中的分布式基于对象的存储系统的制作方法

文档序号:6657086阅读:209来源:国知局
专利名称:将虚拟映射存入对象属性中的分布式基于对象的存储系统的制作方法
技术领域
本发明一般地涉及数据存储方法,尤其涉及基于对象的方法,其中文件对象的映射作为对象存储装置上至少一个组件属性被存储。
背景技术
随着对数据通信的电子装置依赖性的增加,提出了有效地和经济地存储大量数据的不同模型。数据存储机构不仅需要足够数量的物理磁盘空间来存储数据,而且需要各种级别的容错或冗余(取决于数据的关键程度)以在一个或更多磁盘故障事件中保持数据完整性。
在传统联网存储系统中,数据存储装置如硬盘与特定服务器或具有特定备份服务器的特定服务器相关联。因此,对于数据存储装置的访问只能通过与数据存储装置相关联的服务器。所以,需要访问数据存储装置的客户机处理器会在网络上访问相关服务器并且服务器会应用户请求访问数据存储装置。相反,在基于对象的存储系统中,各基于对象的存储装置在网络上可能通过路由器和/或网桥直接与客户机通信。基于对象的存储系统的例子在2002年3月29日提交的同时待审的共有的美国专利申请10/109998号、题目为“Data FileMigration from a Mirrored RAID to a Non-Mirrored XOR-Based RAIDWithout Rewriting the Data”中予以描述,通过引用将其全部结合到本申请中。
现有的基于对象的存储系统,如描述在同时待审的申请号10/109998中的系统,一般包括多个用于存储对象组件的基于对象的存储装置、元数据服务器和一个或更多访问对象存储装置上分布式的、基于对象的文件的客户机。在这样的系统中,客户机一般通过从可包括包含系统中各文件对象的映射的集中映射库的元数据服务器请求文件对象的映射(即文件对象组件驻留的对象的存储装置列表)来访问具有不同对象存储装置上的多个组件的文件对象。一旦映射从元数据服务器上取出并提供给客户机,客户机通过对映射中识别的各对象存储装置发出访问请求来取出请求的文件对象的组件。
在现有的基于对象的存储系统中,如前述的系统,元数据服务器的文件对象映射的集中存储和元数据服务器在客户机可能访问文件对象之前取出各文件对象的映射的要求,经常导致性能瓶颈。为了消除性能瓶颈并改善系统性能,需要提供从元数据服务器中分散文件对象映射存储的基于对象的存储系统。

发明内容
本发明涉及分布式基于对象的存储系统和方法,所述存储系统和方法包括用于存储对象组件的多个存储设备、耦合到对象存储装置中的每一个的元数据服务器和一个或多个访问对象存储装置上的分布式基于对象的文件的客户机。在本发明中,通过从客户机向对象存储装置发送对文件对象的文件访问请求来访问具有不同对象存储装置上的多个组件的文件对象。响应文件访问请求,定位包括所请求的文件对象的组件所在的对象存储装置的列表的映射。该映射作为至少一个组件对象属性存储在对象存储装置上并且在一实施例中,包括关于列表上的对象存储装置上的所请求的文件对象的组件的组织的信息。该映射被发送到通过发出对列表上的对象存储装置的每一个的访问请求来取出所请求的文件对象的组件的客户机。
在一实施例中,响应文件访问请求被定位的映射绝不被存储在元数据服务器上。或者,映射可从对象存储装置上取出,传递到元数据服务器,然后提交给客户机。
在一实施例中,映射的一个或更多冗余副本被存储在不同的对象存储装置上。在该实施例中,各副本作为至少一个组件对象属性存储在不同对象存储装置之一上。
通过将映射作为至少一个组件对象存储在对象存储装置上,本发明获得至少两个相对于现有技术的优点(1)元数据服务器的丢失不导致映射的丢失;以及(2)对象所有权可在不移动数据或元数据的条件下被传送。具体地说,标识被认为拥有组件对象的实体的组件对象属性可在不复制或以其他方式移动与组件对象相关联的数据的条件下被更新。


被包括以提供对本发明进一步理解并且被结合进来并构成本说明书的一部分的附图与用于解释本发明原理的描述一起说明了本发明的实施例。其中图1说明了根据基于对象的安全磁盘(OBD)设计的典型的基于网络的文件存储系统;以及图2说明了根据本发明具有不同OBD上的多个组件的文件对象的映射的分散存储。
具体实施例方式
现在将详细参照本发明的优选实施例、附图中说明的例子。要理解,本申请中包括的本发明的附图和说明书说明和描述了与本发明特别相关的元件,同时为了清晰的目的,忽略了在典型数据存储系统或网络中可发现的其他元件。
图1显示了根据基于对象的安全磁盘(OBD)20设计的典型的基于网络的文件存储系统。文件存储系统100通过硬件和软件单元的组合来实现并且一般包括管理者软件(简言之,“管理者”)10、OBD 20、客户机30和元数据服务器40。要知道各管理者是运行在对应服务器如元数据服务器40上的应用程序代码或软件。客户机30可运行不同的操作系统,从而提供操作系统集成的文件系统接口。存储在服务器40上的元数据可包括文件和目录对象属性及目录对象内容;然而,在优选实施例中,属性和目录对象内容不被存储在元数据服务器40上。术语“元数据”一般不是指在底层数据本身,而是指描述数据的属性和信息。
图1显示了一些附接到网络50的OBD 10。OBD 10是在基于网络的系统100中存储数据文件的物理磁盘驱动器并可具有如下性质(1)它提供面向对象的接口(而不是面向扇区的接口);(2)它附接到网络(例如网络50)而不是数据总线或底板(即OBD 10可被认为一级网络公民);以及(3)它执行安全模块以防止对存储于其上的数据的未授权访问。
由OBD 10输出的基本抽象是可被定义为变化大小的排序的比特集的对象。与现有技术基于块的存储磁盘相反,OBD在正常运行期间根本不输出扇区接口。OBD上的对象可被创建、移除、写入、读出、添加等。OBD不产生任何关于具体磁盘几何可见的信息并利用可通过OBD与网络50的直接接口提供的高级别信息来在内部实现所有布局优化。在一实施例中,使用一个或多个OBD对象存储文件系统100中的各数据文件和各文件目录。由于数据文件的基于对象的存储,各文件对象一般可被读出、写入、打开、关闭、扩展、创建、删除、移动、排列、合并、连接、命名、重命名并包括访问限制。各OBD 10在网络上可能通过路由器和/或网桥直接与客户机30通信。OBD、客户机、管理者等可被认为网络50上的“节点”。在系统100中,除了各种节点应能与系统中的其他节点联系之外,不需要作关于网络拓扑的任何假设。网络50中的服务器(例如元数据服务器40)仅启用并促进客户机和OBD之间的数据传输,但服务器通常不执行这种传输。
理论上,各种系统“代理”(即管理者10、OBD 20和客户机30)是独立工作的网络实体。管理者10可提供与各个文件和目录有关的日常服务,并且管理者10可对所有文件和目录具体状态负责。管理者10在客户机方的实体(即文件或目录)上创建、删除并设置属性。管理者10也为性能和容错执行OBD的聚合。“聚合”对象是并行和/或以冗余配置方式使用OBD并产生更高数据可用性和/或更高I/O性能的对象。聚合是是为性能(并行访问)和/或容错(存储冗余数据)而将单个数据文件或文件目录分布到多个OBD对象的过程。与具体对象相关的聚合方案作为该对象的属性存储在OBD 20上。系统管理员(例如操作人员或软件)可为具体对象选择任何聚合方案。文件和目录可被聚合。在一实施例中,新文件或目录默认继承了它的直接父目录的聚合方案。对象布局中的改变可造成它的父目录的布局改变。管理者10可被允许为负载或容量均衡的目的进行布局改变。
管理者10也可允许客户机执行它们自己的I/O来聚合对象(这允许OBD和客户机之间的直接数据流动),以及必要时提供代理服务。如前所述,文件系统100中的各个文件和目录可由唯一OBD对象代表。管理者10也可准确确定各对象将如何被布局—即对象将被存储在哪个OBD上或哪些OBD上、对象是否会被镜像、剥离、奇偶保护等。管理者10也可提供用户借以表达对对象存储的最小需求(例如,“对象在任一OBD故障后仍可被访问”)的接口。
在管理者10可被用于其它文件系统配置或数据系统结构的意义上,各管理者10可为单独组件。在一实施例中,系统100的拓扑包括“文件系统布局”抽象和“存储系统布局”抽象。系统100中的文件和目录可被认为是文件系统层的一部分,而数据存储功能性(包括OBD 20)可被认为是存储系统层的一部分。在一个拓扑模型中,文件系统层可在存储系统层之上。
存储访问模块(SAM)(未显示)是可被编译到管理者和客户机的程序代码模块。SAM包括实现下面讨论的简单I/O、镜像和映射检索算法的I/O执行引擎。SAM为简单和聚合对象产生实现系统级I/O操作所必需的OBD级操作并对这些OBD级操作排序。
各管理者10维持全局参数、其它管理者正在运行或已出故障的概念并提供对其它管理者的上/下状态转换的支持。本系统的好处是描述需要的数据被存储在在哪个或哪些数据存储装置上(即OBD)的位置信息可位于网络中的多个OBD上。所以,客户机30只需要识别多个包含需要的数据的位置信息的OBD之一就能够访问该数据。数据可在不通过管理者的情况下从OBD直接返回到客户机。
图2说明了根据本发明具有存储在不同OBD 20上的多个组件(例如组件A、B、C和D)的典型文件对象200的映射210的分散存储。在例子中显示,基于对象的存储系统包括n个OBD(标为OBD1、OBD2...OBDn),典型文件对象200的组件A、B、C和D分别被存储在OBD1、OBD2、OBD3和OBD4上。映射210还包括典型文件对象200的组件所在的对象存储装置的列表220。映射210作为至少一个组件对象属性存储在对象存储装置(例如,OBD1、OBD3或两者)上并包括关于列表上的对象存储装置上的文件对象的组件的组织的信息。例如,列表200指出文件对象200的第一、第二、第三和第四组件(即组件A、B、C和D)分别被存储在OBD1、OBD2、OBD3和OBD4上。在实施例中显示,OBD1和OBD3包含映射210的冗余副本。
在本发明中,通过从客户机30向对象存储装置20(例如OBD1)发出对文件对象的文件访问请求来访问具有不同对象存储装置上的多个组件的典型文件对象200。响应文件访问请求,映射210(作为至少一个组件对象属性存储在目标存储装置上)在对象存储装置上被定位并被发送到通过向映射中列出的各对象存储装置发出访问请求来获取所请求的文件对象组件的请求客户机30。
在优选实施例中,元数据服务器40不包括映射的集中库。映射210可从OBD 20中被取出并直接传送到客户机30。或者,从OBD 20取出映射210时,映射210可被发送到元数据服务器40并直接传送到客户机30。
虽然元数据服务器40不保持映射210的集中库,但在本发明一实施例中,元数据服务器40可选地包括标识对应给定文件对象的映射210可能位于的OBD的信息(或线索)。在该实施例中,试图访问给定文件对象的客户机30最初从元数据服务器40中取出对应线索。然后该客户机30发送请求给用该线索标识的OBD来获取映射210。在客户机30不能在用线索标识的OBD上定位请求的映射210的情况下(即线索是错误的),客户机30可将对映射的请求发送到一个或更多其他OBD直至映射被定位。一旦定位到映射,为纠正错误的线索,客户机30可选地发送标识其中发现映射的OBD的信息到元数据服务器40。
此外,映射线索的副本可作为不具有被存储的映射的组件对象的属性被存储在除其中存储映射210的OBD之外的一个或更多OBD上。这使客户机能够在不首先访问管理者的情况下访问映射210,并消除客户机初始请求没有发送到其中存储映射210的OBD之一的事件中额外OBD调用的必要。客户机也可从元数据服务器中获取映射线索,或可直接从OBD获取可能作为目录或其它索引对象的一部分的该线索。
最后,本领域技术人员会理解到在不背离其中宽的发明概念的条件下,上述实施例可进行改变。所以,要理解到本发明不限于公开的具体实施例,而是要覆盖由附加的权利要求书限定的本发明的精神和范围内的所有更改。
权利要求
1.在分布式基于对象的存储系统中,所述存储系统包括多个用于存储对象组件的对象存储装置、耦合到所述对象存储装置的每一个的元数据服务器、和一个或多个访问所述对象存储装置上的分布式基于对象的文件的客户机,一种用于访问具有不同对象存储装置上的多个组件的文件对象的方法,包括从客户机向对象存储装置发出对文件对象的文件访问请求;响应所述文件访问请求,定位包括所请求的文件对象的组件所在的对象存储装置的列表的映射,其中所述映射作为至少一个组件对象属性存储在对象存储装置上;将所述映射发送到客户机;以及为取出所请求的文件对象的组件,从所述客户机向所述列表上的对象存储装置的每一个发出访问请求。
2.如权利要求1所述的方法,其中,所述映射包括关于所述列表上的对象存储装置上的所请求的文件对象的组件的组织的信息。
3.如权利要求1所述的方法,其中,所述映射绝不被存储在所述元数据服务器上。
4.如权利要求1所述的方法,其中,所述映射从对象存储装置被取出,传递到所述元数据服务器,然后提交给所述客户机。
5.如权利要求1所述的方法,其中,所述映射的一个或多个冗余副本被存储在不同的对象存储装置上,各副本作为至少一个组件对象属性存储在不同对象存储装置之一上。
6.在分布式基于对象的存储系统中,所述存储系统包括多个用于存储对象组件的对象存储装置、耦合到所述对象存储装置的每一个的元数据服务器、和一个或多个访问所述对象存储装置上的分布式基于对象的文件的客户机,一种用于访问具有不同对象存储装置上的多个组件的文件对象的系统,包括向对象存储装置发出对文件对象的文件访问请求的客户机;其中,响应所述文件访问请求,所述对象存储装置定位包括所请求的文件对象的组件所在的对象存储装置的列表的映射并将所述映射发送到所述客户机,其中所述映射作为至少一个组件对象属性存储在对象存储装置上;以及为取出所请求的文件对象的组件,从所述客户机向所述列表上的对象存储装置的每一个发出访问请求。
全文摘要
分布式基于对象的存储系统和方法,包括多个用于存储对象组件的对象存储装置、耦合到对象存储装置的每一个的元数据服务器和一个或多个访问对象存储装置上分布式基于对象的文件的客户机。具有不同对象存储装置上的多个组件的文件对象通过从客户机向文件对象的对象存储装置发出文件访问请求被访问。为响应该文件访问请求,定位包括所请求的文件对象的组件所在的对象存储装置的列表的映射。映射作为至少一个组件对象属性存储在对象存储装置上。映射被发送到通过向列表上的各对象存储装置发送访问请求来获取所请求的文件对象的组件的客户机。
文档编号G06F17/30GK101040282SQ200580034789
公开日2007年9月19日 申请日期2005年8月4日 优先权日2004年8月13日
发明者M·J·昂安格斯特, S·A·莫耶 申请人:潘纳萨斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1