面向对象的数据存储装置的制作方法

文档序号:6415779阅读:310来源:国知局
专利名称:面向对象的数据存储装置的制作方法
技术领域
本发明涉及数据存储装置。更具体地说,本发明涉及诸如磁盘驱动器、磁带驱动器或光盘驱动器之类的其中将数据作为对象加以组织和存取的数据存储装置。
背景技术
在计算机产业中有两类常规的计算机模式型是众所周知的。第一种是主机(mainframe)计算模式,第二种是集群(clustered)计算模式。
在主机计算模式中,最终用户的通常过程是,先购买一初始系统,而在需要追加处理能力时,再替换一个更大的系统。在这一周期的不同点上会产生损伤性的不连续。例如,如果用户成长到不满意初始系统的体系结构,则用户可能需从一种操作系统转换至另一种操作系统,甚至当购买第二套升级的主机系统时,要从一个供应商专有体系结构转换到另一个供应商专有体系结构。为实施升级,这种改变在费用与消耗雇员时间两方面均需巨大代价。所以在很多情况下,要避免这种转换。
此外,主机模型所承担的计算机设备的剩余价值较差。这样,当初始系统被升级的系统更换时,系统更换经常使以前投资基本上完全丧失。此外,较大的升级系统要比较小系统在销售量上低些。因此,每个新的升级系统在计算成本上通常比以前系统的要更高。
在集群计算模式中,用一群较小的、标准服务器来代替主机。这可提供比主机模式更多优点。因为集群可作为一个单个系统启动,因而进入集群模型的阈值较低。进而,这种较小系统常常大量销售,使计算机成本较低。而且,这种系统的标准不依赖于专有体系结构。这为现有设备提供了多种来源的可能性,从而允许用户续后购买时选择到最佳产品。
集群计算模式还具有其它优点。通过仅增加满足目前及近期需求的附加资源量,可更精确地控制升级成本。此外,用户可从广泛的供应商中进行选择,而不必担心转移或转换到一个新的体系结构。类似地,有一个正确的体系结构,可以不再需要转换到另一操作系统。
再有,集群计算模式也有其缺点和问题。例如,集群计算模式难于提供在承担与单个主机完成同等工作量前提下而具有共享数据能力的集群系统。例如,通常非常难于实现需要集群中每个服务器都处理相同数据事务的集群模式。这种应用的一些例子包括航空公司订票系统或金融机构的完整交易清单。
集群计算模式的第二个缺点仅涉及在管理存储和在主机环境中现存的数据上缺少广泛经验。这种经验已引伸至在标准的集群环境中还未提供使用的管理软件中。
本发明致力于解决这些和其它问题,并在已有技术基础上提供另一些优点。
发明概要数据存储系统包括存储媒体,其上存储有被配置成多个对象的数据,每个对象具有表示该对象特征的属性。控制部件可操作地耦合至存储媒体并配置成为提供一个界面给对象。该界面展示存取对象所调用的方法。
附图简述

图1是根据本发明一个方面的网络附加的存储系统的方框图。
图2是根据本发明一个方面的对象模型的说明图。
图3-1是第一种配置的方框图,其中一个请求者存取存储装置中的一个对象。
图3-2是第二种配置的方框图,其中一个请求者存储存储装置中的一个对象。
图4是根据本发明一个方面的磁盘驱动器的透视图。
图5是说明请求者访问对象的功能方框图。
图6是根据本发明一个方面的部分存储媒体分区的说明图。
图7-1和7-2是说明根据本发明的一个方面请求者存取对象的流程图。
图8是说明根据本发明一个方面创建对象的流程图。
图9是说明根据本发明一个方面打开和更新对象的流程图。
图10是说明根据本发明一个方面写入对象的流程图。
图11是说明根据本发明一个方面打开对象仅用于只读的流程图。
图12是说明根据本发明一个方面读出对象的流程图。
图13是说明根据本发明一个方面关闭对象的流程图。
图14是说明根据本发明一个方面消除对象的流程图。
图15是说明根据本发明一个方面创建分区的流程图。
图16是说明根据本发明一个方面消除分区的流程图。
图17是说明根据本发明一个方面导出对象的流程图。
图18是说明根据本发明一个方面获得对象属性的流程图。
图19是说明根据本发明一个方面设置或修改对象属性的流程图。
图20是说明根据本发明一个方面读出锁定属性的流程图。
图21是说明根据本发明一个方面设置锁定属性的流程图。
图22是说明根据本发明一个方面重新设置锁定属性的流程图。
图23是说明根据本发明一个方面获取装置关联的流程图。
图24是说明根据本发明一个方面设置装置关联的流程图。
较佳实施例的详细说明图1是根据本发明一个方面的数据存储系统100的方框图。系统100包括面向对象的数据存储装置110和112,文件服务器14,请求者116、118和120,及互连122。系统100表示一种附加存储配置的网络,它可以由来自许多不同供应商的设备和软件构成,对用户来说如同一个单个大计算机系统。
面向对象的存储装置110-112是执行系统100的数据存储功能的存储部件。存储装置110-112最好包括磁盘驱动器、独立冗余阵列(RAID)子系统、磁带驱动器、磁带库、光盘驱动器、光盘机(juke boxes)或任何其它可共享的存储装置。存储装置110和112还向请求者116、118和120提供输入/输出(I/O)通道附件以便访问装置110和112。
请求者116、118和120是类似服务器或客户机之类的部件,它们能共享存储在110和112装置的信息。请求者116-120最好也配置成直接存取存储装置110和112中的信息。
文件服务器114执行管理和安全功能,诸如请求验证和资源定位等。在较小系统中,最好不使用专用文件服务器。而是,请求者116-120之一承担文件服务器114本该执行的监督系统100操作的职责。此外,在不需要或不希望由文件服务器114提供的安全和功能时,或者更需请求者116-120群与存储装置110和112直接交谈时,可从系统100中去掉文件服务器114。
在一个较佳实施例中,互连122是物理基础结构,通过它,使附带有存储系统100的网络中的所有部件能彼此相互通信。
操作上,当系统100启动时,所有装置最好相互或相对于一个共同参照点(例如文件服务器114或互连122)标识自身。例如,在基于光纤通道的系统100中,面向对象的存储装置110和112及请求者116-120登记在系统的组织结构(fabric)上。在这样实施后,希望确定操作配置的系统110的任何任何部件可使用结构服务来识别所有其它部件。从文件服务器114,请求者116-120得知请求者116-120可以存取的存储装置110和112的存在,同样,存储装置110和112得知确定系统100中的其它装置的位置信息以及用于调用诸如备份的管理服务所必须使用的地址。类似地,在一个较佳实施例中,文件服务器114从结构服务得知存储装置110和112的存在。
根据特定系统100的安全实践,请求者116-120或其中任一个可能被拒绝存取系统100的某些部件。从对每个请求者都适用的一组存储装置110和112,则请求者可识别文件、数据库和它可用的空闲空间。
同时,系统100中的各部件最好能识别与文件服务器114关联的任一特定考虑。例如,一旦任一存储装置将层次服务(level service)属性通知文件服务器114,则系统100中的所有其它部件即可从文件服务器114得知这些属性。例如,特定请求者116-120可能希望通知它附加存储装置的导入,接着并启动之。例如当请求者向文件服务器114登录时,即可提供这种属性。这样,每当有新存储装置加入系统100时,文件服务器114自动告知该特定请求器116-120。通常,文件服务器114还可会向请求者传送其它重要特性,例如存储装置是否RAID 5、镜象等。
根据本发明的一个方面,存储在存储装置110和112中的信息是以图2中清楚说明的系统加以存储。存储装置110和112中的每一个最好是面向对象的装置,在它的操作模式中,数据是作为对象124-126,而不是作为一定序列的扇区来组织和存取的。面向对象的装置110和112用一个对象文件系统来管理对象124-126,该系统包括对特定装置上的每个分区,有一个对象的单层清单。这也可看作为平面文件系统。存储在每个装置110和112的存储媒体上的对象124-126最好是以面向对象装置模式操作的装置110或112上的容量分配的最小可视单元。在这种存储装置上的一个对象包括与唯一标识符关联的一组有序扇区。数据用标识符参照,在对象中有一偏移量。按存储装置110或112,将对象分配并置于存储媒体。操作系统管理由对象组成的文件和元数据,而不像已有体系结构那样管理扇区数据。
通过界面128存取对象124-126,其中对象展示多个可被请求者116-120调用的方法,以存取和操作对象124-126中的属性和数据。这样,如图2所示,请求130从请求者116-120发布。在较佳实施例中,请求者116-120是计算机系统,或是某群网络系统中的一员,提交请求130作用在包含对象124-126在存储装置上。请求者116-120既可是客户,又可以是服务器。在任何情况下,由请求者116-120之一发出的请求130调用界面128中的一个方法,从而操纵一个或多个对象124-126,如本申请中后文将详细说明的。
图3-1和3-2是可用于存取存储装置110-112中所存对象的二种不同配置的方框图。为简单起见,在图3-1和3-2中仅说明单个请求者116和单个面向对象的存储装置110。当请求者116希望打开一个对象(例如对象124-126)时,请求者116可直接存取存储装置110,或者为存取存储装置110上的一个对象它可能需要文件服务器114的请求许可和位置。信息文件服务器114控制对存储装置110的存取的扩展主要是系统100特定执行的安全要求功能。
在图3-1所示的方框图中,假定系统100是安全的。即不要求保护在请求者116和存储装置110之间进行命令信息和数据的传送。在这种实施方案中,仍有一个提供管理功能的文件服务器114,但不需它监督请求者与存储装置110的交互作用。
在这种实施方案中,请求者116处于直接对存储装置110存取和创建对象。这样,请求者116可以打开、读、写和关闭对象,就象它们原本就附属于请求者116一样。对该操作下文将作详细叙述。但为清楚起见,这里先作一概述。为了读存储装置110中的对象,请求者116最好首先从一个或多个对象读出,所述对象揭示存储装置110的逻辑卷或分区以及如何开始检索其上存储的对象。请求者116然后打开并读出一个对象,它可能是根目录。从该对象,且基于根目录的内容一直向前寻找其它对象。请求者116重复上述过程直至找到所要的数据。数据由对象标识符(对象ID)参照,并在对象内有一偏移。
在图3-2所示的第二个实施例中,要求安全性。所以文件服务器114插入在请求者116和存储装置110之间的I/O链中,直至期望保护级所必需的程度。在一个较佳实施例中,请求者116必须首先执行一系列I/O操作得到文件服务器114的请求许可。文件服务器114(它可能为了附加安全而向请求者116隐瞒存储位置信息)然后通过返回足够信息以允许请求者116直接与存储装置110通信而认可来自请求者116的请求。由于当存储装置110在文件服务器114上登录时,它最好被告知安全参数,因而存储装置110最好不允许I/O请求,除非它被适当地构成并包括含有来自文件服务器114的有效许可的编码数据。
然后,处理过程以与图3-1所叙述过的相似方式进行。但是,与每个命令关联的有效负载可能很不相同。例如,在要求完全性的情况下(如图3-2所示),在请求者116和存储装置110之间传送的命令和数据均可能加密。此外,最好将许可信息追加成请求者116向存储装置110提供的命令参数。
由于在一个较佳实施例中,存储装置110和112可包括硬盘驱动器,因而简单讨论硬盘驱动器是必要的。图4是可用作存储装置110的硬盘驱动器的透视图。在磁盘驱动器110中,多个盘片132围绕机壳136中的电机部件134的轴套叠;每个盘片132有许多同心圆的记录磁道,如138所示。每个磁道138再分成多个分区(参照图6细述)。通过参考某个磁道138内的特定分区,数据可存储在磁盘132上或从中检索到。传动臂装置140可旋转地安装在机壳136的一个角上,传动臂装置140带有多个头万向架构件142,每个构件带有具有读/写头即传感器(未图示)的滑块,用于从磁盘132读出信息或把信息写入磁盘132。
音圈电机144精确地前后旋转传动臂构件140,使滑块142上的传感器磁盘132的表面沿箭头146所指的弧形移动。图4还以方框图形式表示磁盘驱动控制器148,用于以公知的方式控制磁盘驱动器110的某些操作。但是,根据本发明,磁盘驱动器控制器148也用于实施至磁盘132上存储的对象124-126的界面128。
图5是磁盘驱动器110应用于图1所示系统100时一部分磁盘驱动器的方框图。在图5中,磁盘驱动器控制器148包括实施界面128的控制部件150。对象124-126存储在构成磁盘132的存储媒体上。请求部件152被请求者116-120执行并调用界面128中方法构成公式化请求,一旦调用某一方法,控制部件150便执行某种任务,以设定方式操作被标定对象。控制部件150返回一个事件,它可包括与任何识别对象关联的数据或属性。该事件也可以根据请求者116-120特定的调用方法来返回。
为了使面向对象的装置110-112能提供与面向块的装置连用的操作系统相同功能,装置110-112中的存储空间必须管理至相似程度。这样,在一个较佳实施例中,在存储装置110-112的对象124-126上面设置组织层,所述对象存储在存储装置上。在一个较佳实施例中,面向对象的装置110-112把磁盘空间分配成一个或多个独占区域,称为分区。参照图6详细说明分区。在一个分区中,请求者116-120可创建对象。在一个较佳实施例中,分区中的结构是一个简单的、平面的组织。在该组织上,任何操作系统都可映射其自身的结构。
图6表明存储媒体(例如一个磁盘132)上的部分存储空间。该存储空间包括许多对象,诸如装置控制对象154、装置关联对象156、以及标为分区0(还用158表示),分区1(还用160表示),分区N(还用162表示)的多个分区。每个分区还包括多个对象,例如分区控制对象164、分区对象表166和多个数据对象168(用数据对象0-数据对象N来表示)。
与每个对象关联的是一组属性。根据本发明的一个方面,提供存取控制属性。用Set Attribute方法进行设置,(后文将详述)并提供一种手段,借助于它可存取被控制的特写对象。通过改变存取控制属性的版本号,可拒绝或给某些请求者116-120,存取该特定对象。
分集群对象(clustering object)是一种属性,它表示在存储系统中特定对象是否应希望位于另一对象附近。再生属性(cloning attribute)表示特定对象是否通过复制存储系统中另一对象而创建。一组大小属性(size attribute)定义特定对象的大小特征。例如,这组大小属性包括表示可写入对象的最大偏移信息,分配给对象的块数,对象中存储数据的块数及对象中每块的字节数。
一组时间属性表示对象何时创建,对象中数据最后一次被修改的时间,对象中属性最后一次被修改的时间。对象最好还包括一组属性,它确定文件系统中任何数据最后一次被修改的时间和任何属性被最后一次被修改的时间。为了表示其它参数、特征或任何给定对象的特点,也可提供其它属性。
每个对象还与一个对象标识符相关联,它由特定的存储装置110-112选定。并作为对创建对象命令的响应返回给请求者116-120。该标识符最好是不带符号的,定长整数。在一个较佳实施例中,标识符的长度缺省为由特定存储装置110-112规定的大小,即可设置成一装置属性。进而,在一个较佳实施例中,为熟知对象、特定应用和希望实行的其它特殊功能保留预定的标识符子集(IDs)。
图6说明,存储媒体典型地包括许多熟知的对象,它们总是有特定的对象ID。在某些情况下,这些熟知的对象存在于每个装置或每个分区中。
例如,一个熟知对象是装置控制对象154,它最好包含由多个装置110-112所维护的属性,并且与装置本身或装置中的所有对象都有关。由(Set_Attribute)方法维护的属性,将在后面的应用中详述。在一个较佳实施例中,每个装置110-112都存一个装置控制对象154。
表1说明一组较佳装置控制对象(DCO)属性
在一个较佳实施例中,DCO属性包括时钟(简单地是一个单调计数器),主密钥包含加密密钥或装置上控制所有其它密钥的其它主密钥的,和控制分区密钥且可用于锁定分区的装置密钥。属性还包括能识别预定保护级且与安全政策关联的保护级密钥,确定装置上分区数的分区数和确定被存取特定装置上所有对象关联特性的对象属性。
为了胜任管理跨接于多个存储装置110-112的对象,每个存储装置110-112最好包括装置关联对象156,它定义例如各装置110-112之间相关性,什么地方存储装置110和112是一对镜象装置或是一个阵列组的成员,关联对象156会识别这种关系。表2说明关联对象156的较佳属性。
表2
这些属性中最好是包括一关联标识符,它是每个给定关联装置组的唯一标识符。属性中还最好的是包括装置之间确定关联种类(例如镜象对、RAID5等)的关联类型。属性中再最好的是,包括一张成员表,它简单标明上述确定关联的成员是110-122。
存储装置110-112上每个分区158,160和162最好包括含单个分区特性的分区控制对象164。对象164最好不仅描述分区,也描述任何与该分区中所有对象相关的对象属性。装置110-112中的每个对其上定义的每个分区最好包含一个分区控制对象164。图6说明存储在每一分区中的分区控制对象,但并不一定是这种情况。分区控制对象可以存储在平面文件系统中,而不是存储在上述分区中。
表3表示许多常包含在分区控制对象168中的属性。
表3
>这类属性中可取的是包含了一个能定义整个分区加密密钥且可用于设置当前工作密钥的主密钥。属性中还可取的是还包括用于加密和解密命令和数据信息的当前工作密钥和以前工作密钥。分区控制对象164还好在包括与指定分区中所有对象关联的对象属性。
图6还说明,每个分区最好包含分区对象表166,它是在存储体上创建分区时,由控制部件150建立的对象。分区对象表166最好对每个分区具有相同的标识符,指定在存储媒体上导航对象文件系统的出发点。表4说明与每个分区对象表关联的属性表。
表4
如表4所表示,该对象最好包含一张分区中所有对象的对象标识符表(即,对象ID)及分配给每个对象的用户空间量。请求者使用对象标识符打开、读、写和关闭该对象。此外,用户最好为每个对象ID分配用户空间便于设定分区对象表中的用户数据属性。在分区对象表166后,每个分区最好包含多个数据对象168。每个数据对象168最好包含表1表出的一个或多个属性组的包含附加属性,由数据存储系统的具体实施来定。
面向对象的存储装置110-112最好能支持请求者116-120提供数据或存储数据的请求。而且,存储装置110-112最好承担其对它部件已完成的功能很可能是在操作系统或已有体系结构中完成的。空间管理及对与装置110-112中对象关联的属性维护最好中装置110-112自身完成。这些功能最好通过调用界面128支持的方法来实现,该界面128是通过每个存储装置110-112中的控制部150来实现。下文详细讨论可以调用的多个方法。但是,为了便于更好地理解这些方法,用7-1和7-2提供流程图,说明根据本发明的一个方面,导航面向对象的文件系统。相信在下文详细讨论每个方法前,先讨论图7-1和7-2将便于理解本发明。
从框170延伸至204,图7-1和7-2和下面说明如何在110-112中的一个存储的指定分区中查找一个对象。首先,请求者116获得装置控制对象154的装置属性。这由框172表示。调用Get_DCO_Attributes方法使控制部件150返回存储在装置控制对象154中的属性。这由框174表示。然后根据从装置控制对象154返回的属性,请求者116选择某个给定的分区。这由框176表示。
请求者116一旦选定分区,请求者116立即调用Get_DCO_Attributes方法,如框173所示。它使控制部件150从存储在存储媒体110上的装置关联对象156获取属性。然后,控制部件150向请求者116返回关联属性,如框175所示。根据装置关联属性和控制属性,请求者116选定要询问的分区。如框176所示。
接着,请求者116调用Get_PCO_Attributes方法,它使控制部件158获得属性,找到与请求者116要询问的指定分区关联的分区控制对象164中的属性。控制部件150获得并返回分区控制对象属性。如框178和180所示。如果选定分区中的对象不是请求者感兴趣的对象,如框182和176所示,请求者可选择另外分区。
然而,假定请求者116已经找到感兴趣的分区,则请求者对选定的分区调用Get_POL_Attributes,如框184所示。该方法使控制部件150从选定分区相关联的分区对象表166获得属性。然后把这些属性提供给请求者116,如框186所示。
接着,请求者116调用Open_Read_Only_POL方法。如框188所示。如下文将详细讨论的,控制部件150获得存储在与选定分区关联的分区对象表166中的数据,但因为提供的数据是只读的,不能被修改或扩充,所以控制部件不能修改该对象的属性。如框190所示。
请求者然后调用Read_POL方法,它使控制部件150得到选定分区的对象表,提供给请求者116回顾。如框194所示。在选定分区中选择所要对象后,请求者116调用Close_POL方法,它使控制部件150关闭分区对象表。如框196所示。
找到所要对象或所有对象的ID后,请求者116接着调用Open_xxx_Objectx方法。其中xxx表明请求者根据所要的特定数据操作而调用的特殊打开方法。用Objectx表明请求者从分区对象表中选定要操作或存取对象的ID。符号xxx例如可表示(Open_Update)操作或或Open_Read_only操作。这些在下文还要讨论且这些步骤如框198所示。
接着,请求者对控制部件150返回的对象执行希望的操作。下文将详细讨论可用于操作对象的各种方法。如框200所示。
最后,请求者一旦所要对象完成所期望的操作或存取,请求者116立即调用下文将详述的Close_Objectx方法,该操作作将关闭请求者116存取过的对象。
图8-24是说明为对存储在面向对象的存储装置中的对象,实现所要的功能和所要的操作,请求者所能调用的各种示范方法的流程图。
图8是具体说明Open_Create_Objectx方法的流程图。当请求者116调用该方法,如框208所示,控制部件150创建一新的对象ID并将它输入与被创建对象所在分区关联的分区对象表中。如框210所示。然后控制部件150通过分配与对象相关联的块等,修改对象属性以表明对象创建时间和设置表1中所列的、与对象关联的其它属性,从而创建新的对象。如框212所示。接着,控制部件150返回请求状态,连同刚创建的新对象的ID。如框214所示。
除简单创建一个对象外,请求者116可指定许多任选项。例如,在一个较佳实施例中,请求者116可指定对象是否受口令保护、对象是否加密、一定的质量服务阈值(例如,对象是否备份),锁定特性(例如,对象是否用一个对象锁或其它锁,如分区锁或装置锁来锁定)、存取控制版本、镜象或其它备份支持(它会使所有更新被镜象成另一对象或以另一指定方式备份),以表明将在以指定最小大小为单位来分配空间并设置冲突特性(例如写入UNIX系统)。
为了调用该方法,请求者116向控制部件150提供的特定信息包括系统安全所需的许可信息,要创建对象的装置分区及上述任何选项。作为响应,在一个示范实施例中,控制部件150返回装置上可用的容量、请求状态及新对象的ID。
还应注意,可调用该方法的特定例子包括与对象关联的所有数据。在这种情况下,可调用一个方法来创建对象、写入对象及关闭对象。
图9是说明Open_Update_Objectx方法的流程图。如框220所示,请求者116调用此方法时,允许请求者116读和写特定对象。还可扩展该对象的长度。当调用此方法时,控制部件150对指定对象中设置一个属性以表明该对象正在使用中。请求者116提供许可信息、含对象的分区ID、要存取对象的标识符、要进行的操作类型(如更新或写等)上述任何选项。作为响应,控制部件150返回请求状态和指定对象的长度及请求者116还可用的剩余容量。
图10是说明Write_Objectx方法的流程图。当请求者116如框242所示调用此方法时,控制部件150在指定对象中的一定位置上写一定块数。
写方法也能引起调用其它方法。例如,若被存取装置110-112支持奇偶校验,则写操作会自动调用异或方法,它对被写数据执行异或操作,然后,将且奇偶数据被写入一个或多个预定的奇偶校验装置中。
为了调用此方法,请求者116提供许可信息、一个对象标识符、一个分区ID、对象中被写的起始块位置、对象中能写的块数、任选信息、数据被写。一旦调用此方法,控制部件150用提供的具体数据修改指定的对象。如框244所示。然后,控制部件150修改指定对象的必要属性,如对象长度、与该对象关联的时间记号等。如框246所示。然后控制部件150修改其它对象的必要属性,诸如分区对象表中涉及的地方。如框248所示。然后,控制部件150向相应请求者返回请求状态。如框250所示。
图11是说明Open_Read_Only_Objectx方法的流程图。调用此方法时,控制部件150允许请求者116仅为读目的存取指定对象。这样,当调用此对象时,如框230所示,请求者提供许可信息、一分区ID、一对象ID和任选信息。然后控制部件150对指定对象设置一个属性表明对象正在使用中。如框232所示。接着控制部件150在此对象设置只读属性,表明请求者不能对此对象写。如框234所示。最后,控制部件150返回请求状态和指定对象的长度。如框236所示。
图12是说明Read_Objectx方法的流程图。当请求者116希望装置110从特定对象返回数据时,请求者116调用此方法。请求者提供许可、信息对象ID、分区ID、要读块的起始位置、要读的块数和其它所要的任选信息作为响应,控制部件150返回请求状态、要返回的数据长度及响应于此方法而返回的实际数据。如框256和258所示。
图13是说明Close_Objectx方法流程图。当请求者116如框264所示调用该方法时,请求者提供许可信息、对象ID和任何所要的任选信息。作为响应,控制部件150如框266所示,修正指定对象中的数据。此外,作为写对象的结果而引起对象会有些改变,如果,以前对存储媒体没写成,则这时还可写。控制部件150如框268所示,更新对象X的属性。例如若对象是新创建的对象,则其属性用创建时间及其它要求的属性信息加以更新。此外,被修改的属性表明对象中数据被最后一次修改的时间,若数据长度被改变,控制部件150设置一属性,表明请求者不再使用该对象。
控制部件150还能任选地更新与对象关联并反映在对象属性中的驻留高速缓存信息。如框270所示。例如,若特定请求者116将请求配置成要通知存储装置110,关闭对象的数据仍要高速缓存或不再高速缓存,以便存储装置110的操作系统为对象快速度连续关闭和再次开启应用,保留高速缓存信息。但同时,存储装置110能为系统100中哪些因另一请求者在平均时间内存取同一对象而造成相干冲突事件中必须通知到的部件保留磁道。最后,控制部件150返回请求状态,如框272所示。
图14是说明Remove_Objectx方法的流程图。当调用该方法时,如框278所示控制部件150采取必要步骤从存储媒体删除该对象。如框280所示。然后控制部件150修改正被删除对象所在分区关联的分区对象表,以及反映指定对象ID又可被用了。如框282所示。最后控制部件150返回请求状态,如框284所示。为了调用此方法,请求者116要提供许可信息、分区ID、对象ID和任何所要的任选信息。最后控制部件150返回请求状态,如框284所示。
图15是说明Create_Partitionx方法的流程图,该方法可由请求者调用,如框290所示。为了在存储装置110上创建一分区。应注意,当Greate_Partitionx方法把驱动器分成一个或多个区域时,不必计及存储媒体上的所有空间。此外分区也可跨域磁盘上不同区域。
在一个实施例中,用该方法创建瓷砖排列的分区,它代表装置上存储空间的真实划分创建分区。用这种排列按服务级划分空间,如数据阵列。这种分区不能改变大小但可删除和重建。
根据本发明的另一方面,把分区用作逻辑分区,便于逻辑上组织对象,而不是按服务级来管理空间。在这第二个实施例中,分区可动态地改变大小。
为了调用该方法,请求者提供许可信息、任何所要的选项、分区ID和为识别被分配给具体标定部分的空间而制定的初始空间分配。作为响应,控制部件150将存储媒体上的空间分配给指定分区,如框292所示。然后,控制部件150建立分区控制对象和分区对象表如框294和296所示。如上所述,不能删除分区对象表。它可用作导航分区中对象的起始点。最后,控制部件150返回请求状态和说明已进行划分的分区图。如框298所示。
图16是说明Remove_Partitionx方法的流程图。为了调用该方法,请求者116提供许可信息、任选信息和标识被删除分区的分区ID。如框304所示。作为响应,控制部件150将先前与分区关联的空间去分配,如框306所示。接着,控制部件150删去与被删除分区关联的分区对象表中的所有对象,删除分区对象表并删除分区控制对象。如框308、310和312所示。最后,控制部件150返回请求状态和显示划分变化的分区图。如框314所示。
根据本发明的一个方面,数据管理政策要通知每个存储装置110-112,以便存储装置在相互独立地动作时执行该管理政策。这提供的重要优点在于,不仅较少人的干预且可进行更可预测的和及时的管理控制。
例如,存储装置110-112上数据可按需地在每周进行备份。常规系统典型地在周末空闲期间备份,使系统可利用率不至于在一周业务期间中断。但是,在系统容量不断增大的同时,可利用率的窗口已逐渐缩小。这样,为备份可能达兆兆字节的数据,很难找出有如此长的系统中断时间。
因此,根据本发明的一个方面,基于被赋予决定属性对该对象动作,面向对象的存储装置110-112能在对象到达其要备份的正确状态的任何时候通知备份功能。而且,全部文件的备份可分布在较长期间,在此期间其余文件仍在更新,而不影响数据完整性。
面向对象的存储装置110-112所能调用的属性的其它例子包括加密、压缩、版本和奇偶冗余。在每个例子中,仅需通知存储装置110-112与指定对象或对象组有关的政策。接着装置本身可执行该功能或通知提供该服务的代理。
例如,存储装置110-112本身能完成压缩和加密。从而仅需通知装置的是对一个对象要求压缩或加密这一事实。对于由代理执行的管理功能,不仅必须要把管理功能政策通知存储装置,而且要告知可何识别执行该功能的代理,至使存储装置在代理执行该功能时,被访问。
根据本发明的一个方面,在对象间建立关联,便于识别俱有相同属性或有相关的对象。例如,假设一个数据库包含6个文件或对象,一个也不能备份,除非所有的文件或对象都关闭或直到一个与其它全无关系的对象已经关闭。可能要用文件服务器114来管理对象间的这类相互关系。此外,本发明在阵列奇偶设置时,还建立内部装置相关。通过建立这样的组,其中,一个装置或对象弄清楚,则群中其余装置或对象也具有相同实质的特性,所以组管理会更有效。
图17-24是说明通过调用存储装置上对象所展示的方法而实现的管理功能的流程图。调用这些方法使控制部件150和/或相关的控制部件采取步骤以完成与调用方法关联的管理功能。
图17是说明Export_Objectx方法的流程图。如框320所示,请求者116通过提供许可信息、任选信息、对象ID、目标装置ID和目标分区ID,而调用该方法。该导出方法使存储装置110-112根据表示成给定对象关联的属性的规则动作。例如,它可用于启动备份或支持给其它装置的对象定版本。
当调用Export_Objectx时,控制部件150从存储媒体获得指定对象如框322所示,然后,控制部件150然后对请求者116指定的目标装置调用Open_Greate方法。如框324所示。然后,控制部件150对提供指定对象的数据和属性的目标装置调用写方法。如框326所示。最后,控制部件150对目标装置调用Close方法,以便在完成对目标装置写以后,关闭目标装置上的对象。如框328所示。最后,控制部件150向请求者返回请求状态连同已被写入目标装置的对象的新对象ID。如框330所示。
由控制部件150实施的界面128也支持允许请求者为先回顾获得对象属性并设置对象属性的方法。图18和19是分别说明相应Get_Objectx_Attributes及Get_Objectx_Attributes方法的流程图。
一旦调用图18所示方法,如框336所示,使控制部件150获得指定对象的属性。在一个说明性实施例中,请求者提供许可信息、对象ID、或对象ID表、和任选信息。然后,控制部件150获得与该对象ID或对象ID表关联的属性并向请求者连同请求状态一起返回这些属性。如框338所示。
图19说明Get_Objectx_Attributes方法。如框344所示,可通过请求者向控制部件150提供许可、信息对象ID和任选信息来加以调用。然后,控制部件150用请求者提供的信息修改指定对象的属性,并返回请求状态及被修改的,指定对象的属性。如框346和348所示。
根据本发明的另一方面,可以锁定对象,使它们只能在对对象加锁的服务器解锁后才能被存取。在一个说明实施例中,对象可按对象级、分区级或装置级加锁。加锁机构为内部服务器提供存取方案。在一个较佳实施例中,用这种锁调度并行更新及在维护期间禁止存取。图20、21和22是说明可作为Get_Attribute和Set_Attribute方法例子的加锁方法的流程图。但是,对这些方法的具体例子还提供附加细节,使之可用于在请求者的集群之间共享数据。
图20是说明Read_Lock_Attributes方法的流程图。通过请求者116向控制部件150提供许可信息、对象、分区或装置ID、加锁参数及所要的任选信息,调用此方法如框354所示。作为响应,控制部件150确定指定对象是否设置有锁。然后,控制部件150为拥有锁的请求者返回请求状态。如框356所示。
图21是说明Set_Lock_Attributes方法的流程图。通过提供许可信息、对象、分区或装置标识符信息、加锁参数和任选信息,请求者可加以调用,如框362所示。当调用该方法时,控制部件150检查与标识对象关联的锁。如框364所示。然后,控制部件试用请求者的标识完成加锁或解锁操作。如框366所示。若请求操作的请求者是锁的主人,则执行该操作。否则不执行该操作。不管哪种情况,控制部件150返回请求状态及拥有锁的服务器的ID。如框368所示。
图22是说明Reset_Lock_Attribute方法的流程图。当拥有锁的服务器不再有该功能时用该功能重置锁。通过提供许可信息、对象、分区或装置标识符信息、锁参数及所要的任选信息而加以调用此方法。如框374所示。作为响应,控制部件150对指定对象、分区或装置加锁,如框376所示。并返回请求状态及拥有锁服务器的标识符。如框378所示。
图23和24是说明Get和Set_Device_Association方法的流程图。这些方法定义或询问装置110-112间的关系。这种关系的一个说明性实施包括将存储装置110-112之一认作该组装置的第一装置或主装置而其余装置为该组的从属组员。该组的第1装置或主装置负责将装置属性的变化传播另外成员。若属性设置不是从该组第一装置或主装置提供的,则其它成员应拒绝这些属性设置。为使存储装置110-112执行这些功能,它们具有自检查的能力。这使这些装置可检查自身以确定是否是更大装置组的一个成员。
图23中说明Get_Device_Associations方法。通过提供许可信息和任选信息而调用的方法,如框384所示。作为响应,控制部件150返回请求状态及该装置成为组员所请求的关系。如框386所示。图24是Set_Device_Associations方法的流程图。通过提供许可信息、任选信息、成员表及定义关联的属性来调用此方法,如框392所示。作为响应,控制部件150修改存储媒体上所含的装置关联对象156,如框394所示。修改的装置关联对象包含请求者提供的属性及表示对象最后被修改的时间记号等。控制部件150返回请求状态,如框396所示。
上述的许可信息允许文件服务器114用门来控制对存储器的存取,通过控制哪个请求者116-120,文件服务器114给出必要的凭证,以得到存储装置110-112的响应。文件服务器114还命令存储装置110-112他们必须是依附安装的安全政策,承受I/O请求。采用Set_Object_Attributes方法,以图解方式说明将从属于许可安全能力的密钥传达给存储装置110-112。如果对存储装置110-112装置一定的安全级,则存储装置可配置为安全性而检查每个I/O命令。但是,如上所述,某些应用不需采用安全性。进而,若一个特定的服务器集群具有一些位于另一设施上的装置,可以设想,与远处装置的通信定义较高的安全级,而对本地通信则不必如此。这允许对远处请求者或服务器来用安全性,但避免因对本地请求者或服务器用同样安全性而引起的性能损失。
进而,每个存储装置110-112最好包含可读单调递增时钟,用于给安全信息和对象打时间记号。在一个说明性实施例中,各装置的时钟与全系统时基同步。在另一个说明性实施例中,文件服务器114对提供逐个存储装置之间的偏差和值。
由此可见,本发明提供诸如磁盘驱动器之类的面向对象的存储装置它比常规存储装置有显著优点。面向对象的存储装置显著改进了集群体系结构。例如,通过以面向对象的方式存储数据,该数据可由存储装置自身管理。对象向存储装置为驻留数据提供充分知识,足以承担管理其自身空间的职责。而且,当装置具有关于逻辑实体的构成信息时,可更智能地控制数据共享。例如,如果两个系统共享存储在面向块的装置中的数据,则必须控制的并行存取活动所有元数据。与此相反,在面向对象的装置中,许多元数据活动对访问它的系统是不透明的。这样,系统仅需关心对用户数据的存取冲突。此外,装置本身完成空间管理,就可避免因两个系统试图在同一时间管理同一存储装置空间而产生的争论和混乱。
此外,抽象成对象更容易进行多机种计算。面向对象的存储装置提供一种至少操作系统可中断的组织的能力。
进而,使用面向对象的存储装置有许多理由增强集群系统的性能。例如,元数据决不需脱离装置本身,从而消除了一定数量的I/O操作。
此外,装置在任何时刻都知道哪些对象是打开的或关闭的,利用该信息可更有效高速缓存数据。因为装置知道正读取对象的格式,因而预取更有效。存储装置可更有效地确定顺序存取模式。装置中的高速缓存可一次为多个正存取它的系统保存元数据。此外,装置可参与服务决议的质量,诸如什么地方存放数据更合适。仅在装置有责任分配存储器时要这样做。与此相反,几乎没有一个操作系统能按盘磁驱动器的存储区域分配数据,所以,装置自身具备该能力也就是增强了装置性能。
本发明包括一种数据存储装置112,它包括存储媒体132,配置成多个对象124-126的数据存储在其上,每个对象具有表示该对象特征的属性。控制部件150可操作地耦合于存储媒体132,并配置成为对象124-126提供界面128。界面128展示存取对象124-126所调用的方法(方法0-方法N)。
在一个较佳实施例中,多个对象124-126包括装置控制对象154,它具有表示数据存储装置110特征的属性。在另一个实施例中,存储媒体被划分成多个分区158、160、162,这里每个分区包括多个对象124-126。多个对象包括多个对应于分区158、160、162的分区控制对象164,这里每个分区控制对象164包括表示相应分区特征的属性。分区控制对象164还可以包括属于相应分区中所有对象的特征。多个分区列表对象166与多个分区158、160、162关联以及包括表示识别存储在相关分区中对象的识别数据的属性。
界面128所展示的方法包括通过释放以前与指定对象相关的识别数据而使控制部件150从存储媒体132删除指定对象的删除方法。方法还包括创建分区方法,当被调用时它使得控制部件150把存储媒体132划分成多个分区。删除分区方法可以被调用并使得控制部件150从存储媒体132中删除一个指定分区。
在另一个说明的实施例中,多个对象包括一个装置关联对象156,它包括表示两个或多个数据存储装置之间关联性的属性。一种装置关联方法可以被调用并使得控制部件150存取关联属性。可以采用装置关联方法来使得控制部件150获得并返回关联属性或者存取关联属性。
在另一个所说明的实施例中,方法包括打开方法,当被请求者116调用时,被请求者116提供存取存储装置110上的对象。
打开创建方法,当被请求者116调用时,使得控制部件150在存储媒体132中创建一个新的具有请求者116所指定属性的对象。
在另一个说明的实施例中,提供一种打开更新方法,当被请求者116调用时,使得控制部件150以请求者116所指定的方式修改请求者所识别的对象。可以调用写入方法,使得控制部件150把数据写入指定对象,可以调用关闭方法,使得控制部件150关闭指定对象。
在另一个说明的实施例中,可以调用导出对象方法,使得控制部件150把指定对象复制到第二数据存储装置112。还提供一种得到对象属性方法和一种设置对象属性方法,可以调用它们,使得控制部件150获得和返回指定对象的属性或者设置指定对象的属性。还可以采用锁定方法使得控制部件150存取指定对象的锁定属性。
本发明也可以作为在磁盘驱动器上存储数据的方法来实施。该方法包括把信息作为对象存储在磁盘上和通过调用按照如上所述多种方法(或功能)存取信息的步骤。本发明也可以作用数据存储系统来实施,该数据存储系统包括一个或多个磁盘驱动器,它们按照如上所讨论的相对于数据存储装置而排列。本发明也可以作为存储指令的计算机可读媒体(例如控制部件150中的存储器,或者磁盘132之一,或者另一个计算机可读媒体)来实施,所述指令当由数据存储系统中的计算机执行时,使得计算机把数据作为多个对象124-126存储在磁盘上,所述对象具有表示该对象特征的属性。所述指令在被执行时也使得计算机通过调用至所述对象的界面所展示的功能通过所述界面存取磁盘132上的对象。
应该理解,虽然上文已叙述了本发明各个实施例的许多特征和优点并详述其结构和功能,但这种揭示仅是例示性的,在本发明的原理内,可详细地作出许多变换,尤其是在结构和配置方面,以使本发明包括所附权利要求中的术语的广义含义所表示的整个范围。例如,不脱离本发明的范围和精神,特定元件可取决于使用的特定界面方法而改变,而实质上仍保持相同功能。
权利要求书按照条约第19条的修改19.如权利要求1所述的数据存储装置,其特征在于所述方法包括锁定方法,当被调用时,使得所述控制部件访问指定对象的锁定属性,所述锁定属性是所述指定对象、指定分区和数据存储装置中的哪一个是当前可访问的表示。
20.一种在磁盘驱动器上存储数据的方法,其特征在于所述方法包括以下步骤(a)把数据作为多个对象存储在磁盘上,每个对象具有表示该对象特征的属性;以及(b)通过调用至该对象的界面所展示的功能,通过所述界面存取所述磁盘上的所述对象。
21.如权利要求20所述的方法,其特征在于所述存储步骤(a)包括步骤存储一个装置关联对象,它包括表示两个或多个磁盘驱动器之间关联性的关联属性。
22.如权利要求21所述的方法,其特征在于所述存取步骤(b)包括步骤调用得到关联属性功能,以获得和返回该关联属性;以及调用设置关联属性功能,以设置装置关联对象中的关联属性。
23.一种包括第一磁盘驱动器的数据存储系统,其特征在于所述第一磁盘驱动器包括数据磁头;数据存储磁盘,相对于所述数据磁盘可旋转地安装,其上存储有作为多个对象配置的数据,每个对象具有表示该对象特征的属性;以及磁盘驱动控制器执行控制部件,可操作地耦合至所述数据存储磁盘,配置成向所述对象提供界面所述界面展示存取所述对象所调用的方法。
24.一种计算机可读媒体,其上存储有指令,当数据存储系统中的计算机执行时,所述指令使得所述计算机执行以下步骤(a)把数据作为多个对象存储在数据存储磁头上,每个对象具有表示该对象特征的属性;以及(b)通过调用至所述对象的界面所展示的功能,通过所述界面存取所述数据存储磁盘上的所述对象。
权利要求
1.一种数据存储装置,其特征在于所述装置包括存储媒体,被配置成多个对象的数据存储在其上,每个对象具有表示该对象特征的属性;以及控制部件,可操作地耦合于所述存储媒体,被配置成向所述对象提供界面,所述界面展示访问所述对象所调用的方法。
2.如权利要求1所述的数据存储装置,其特征在于所述多个对象包括装置控制对象,包含表示数据存储装置特征的属性。
3.如权利要求2所述的数据存储装置,其特征在于所述装置控制对象包括表示所述存储媒体上多个对象中其它对象特征的属性。
4.如权利要求1所述的数据存储装置,其特征在于所述存储媒体被划分成多个分区,每个分区包含多个对象,这里,所述多个对象包括对应于多个分区的多个分区控制对象,每个分区控制对象包括表示相应分区特征的属性。
5.如权利要求4所述的数据存储装置,其特征在于每一个所述分区控制对象包括表示属于相应分区中所有对象的特征的属性。
6.如权利要求4所述的数据存储装置,其特征在于所述多个对象包括与所述多个分区关联的多个分区列表对象,每个分区列表对象包括表示识别存储在相关分区中对象的识别数据的属性。
7.如权利要求6所述的数据存储装置,其特征在于所述方法包括删除方法,当被调用时通过释放以前与指定对象相关的识别数据而使得控制部件从存储媒体删除一个指定对象。
8.如权利要求4所述的数据存储装置,其特征在于所述方法包括创建分区方法,当被调用时使得所述控制部件把存储媒体划分成多个分区。
9.如权利要求4所述的数据存储装置,其特征在于所述方法包括删除分区方法,当被调用时使得所述控制部件从存储媒体删除一个指定分区。
10.如权利要求1所述的数据存储装置,其特征在于所述多个对象中的一些对象具有把它们存储在多个存储装置上的部分,这里,所述多个对象包括装置关联对象,包括表示两个或多个数据存储装置当中关联性的关联属性。
11.如权利要求10所述的数据存储装置,其特征在于所述方法包括装置关联方法,当被调用时使得所述控制部件访问所述关联属性。
12.如权利要求1所述的数据存储装置,其特征在于所述方法包括打开创建方法,当被请求者调用时,使得所述控制部件在存储媒体上创建一个新的具有所述请求者所指定属性的对象。
13.如权利要求1所述的数据存储装置,其特征在于所述方法包括打开更新方法,当被请求者调用时,使得所述控制部件以请求者所指定的方式修改由请求者所指定的对象。
14.如权利要求1所述的数据存储装置,其特征在于所述方法包括打开读出方法,当被请求者调用时,使得所述控制部件打开被请求者识别的对象,仅供读出。
15.如权利要求1所述的数据存储装置,其特征在于所述存储装置可与请求者相耦合,这里,所述方法包括读出方法,当被请求者调用时,使得所述控制部件返回存储在请求者所指定的一个对象中的数据。
16.如权利要求15所述的数据存储装置,其特征在于所述方法包括写入方法,当被请求者调用时,使得所述控制部件把请求者所指定的数据写入到由请求者所指定的对象。
17.如权利要求15所述的数据存储装置,其特征在于所述方法包括关闭方法,当被请求者调用时,使得所述控制部件识别被请求者以前打开的指定对象,作为关闭。
18.如权利要求1所述的数据存储装置,其特征在于所述数据存储装置可与第二数据存储装置相耦合,这里,所述方法包括导出对象,当被调用时,使得所述控制部件把指定对象复制到第二数据存储装置。
19.如权利要求1所述的数据存储装置,其特征在于所述方法包括锁定方法,当被调用时,使得所述控制部件访问指定对象的锁定属性,所述锁定属性是所述指定对象、指定分区和数据存储装置中的哪一个是当前可访问的表示。
20.一种在磁盘驱动器上存储数据的方法,其特征在于所述方法包括以下步骤(a)把数据作为多个对象存储在磁盘上,每个对象具有表示该对象特征的属性;以及(b)通过调用至该对象的界面所展示的功能,通过所述界面存取所述磁盘上的所述对象。
21.如权利要求20所述的方法,其特征在于所述存储步骤(a)包括步骤存储一个装置关联对象,它包括表示两个或多个磁盘驱动器之间关联性的关联属性。
22.如权利要求21所述的方法,其特征在于所述存取步骤(b)包括步骤调用得到关联属性功能,以获得和返回该关联属性;以及调用设置关联属性功能,以设置装置关联对象中的关联属性。
23.一种包括第一磁盘驱动器的数据存储系统,其特征在于所述第一磁盘驱动器包括数据磁头;数据存储磁盘,相对于所述数据磁盘可旋转地安装,其上存储有作为多个对象配置的数据,每个对象具有表示该对象特征的属性;以及控制部件,可操作地耦合至所述数据存储磁盘,配置成向所述对象提供界面所述界面展示存取所述对象所调用的方法。
24.一种计算机可读媒体,其上存储有指令,当数据存储系统中的计算机执行时,所述指令使得所述计算机执行以下步骤(a)把数据作为多个对象存储在数据存储磁头上,每个对象具有表示该对象特征的属性;以及(b)通过调用至所述对象的界面所展示的功能,通过所述界面存取所述数据存储磁盘上的所述对象。
全文摘要
一种数据存储装置(110、112),包括其上存储了被配置成多个对象(124—126)的数据的存储媒体(132),每个对象具有表示所述对象的特征的属性。一个控制部件(150)可操作地耦合于存储媒体(132)并被配置成向所述对象(124—126)提供界面(128)。该界面(128)展示访问对象(124—126)所调用的方法(Φ-N)。
文档编号G06F3/06GK1266514SQ98808046
公开日2000年9月13日 申请日期1998年8月10日 优先权日1997年8月11日
发明者D·B·安德森 申请人:西加特技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1