本发明涉及数据存储系统,并且更具体地,本发明涉及在分级存储管理(HSM)系统中的召回操作。
背景技术:
需要数量不断增加的计算机可读存储空间以跟上扩张的数据存储需求。增加数据存储容量要求改进的存储管理系统以备份和保护数据集,并且向次级存储迁移更不活跃的数据集以增加主存储空间。数据集可以由任何数据汇集或者数据分组组成。在某些系统中,数据集可以包括由系统用来管理数据的控制信息。术语数据集和文件一般地是等效的而有时被可互换地使用。分级存储管理(HSM)程序管理存储设备、比如带库以控制数据在主存储设施与次级存储设施之间的流动。
在分级存储管理系统中,根据数据的使用频率在不同类型的存储设备中存储数据。例如,系统可以包括用于存储具有不同使用模式和访问可能性的数据的多个存储介质类型。更频繁地使用的数据可以被存储在包括高性能快速访问存储设备(比如硬盘驱动)的直接访问存储存储设备(DASD)上。更不频繁地使用的数据可以被存档在更慢和更廉价的可拆卸存储介质、比如光盘、磁带盒上。
由分级存储管理系统中的主机系统发起的两个常见功能包括迁移和召回。迁移通常地包括从快速访问存储设备向更慢的访问存储设备(例如带盒移动数据)的移动。反言之,召回操作一般地包括在相反方向上的数据传送。例如,在带卷上存储的迁移的数据集在召回操作中被应用请求时,装配相应带卷,带驱动移动到与数据集 关联的数据记录的位置,并且所请求的数据记录被读取。
关于HSM系统中的召回操作,为了从相应带卷的装配点召回文件而花费的时间是重要的。用于对所请求的数据记录进行定位的时间可能受带介质的长度、重定位速率、请求的数据集在带介质上的物理定位等影响。附加地,带驱动可能不确定地了解目标数据文件在带介质上的实际物理定位,这可能导致比期望的流逝时间更长。
另外,从HSM系统中的较低存储层向较高存储层召回文件而流逝的时间可能由于与主机从带驱动读取数据的数据速率与带驱动从带介质读取数据关联的数据速率不同而受影响和/或比期望的更长。例如用于带驱动从带介质读取数据的数据速率一般地比用于主机从带驱动读取数据的主机的数据速率快得多。仅作为示例,考虑其中较高存储层(例如包括硬盘存储)的带宽是2500MB/秒而在主机系统上运行的应用使用2000MB/秒的情况。用于召回操作的总带宽是2500MB/秒-2000MB/秒=500MB/秒。如果有10个带驱动,则在较高存储层(硬盘驱动)与每个带驱动之间的数据速率仅为500MB/秒/10=50MB/秒,这可以比具有例如250MB/秒的数据速率的带驱动显著地更慢。
因而,具有一种可以减少在运用分级存储的系统中在召回操作期间访问数据时的低效率的系统、方法和/或计算机程序产品将是有益的。
技术实现要素:
根据一个实施例,一种方法包括接收列表,该列表包括:在带介质上记录的多个用户数据段,其中根据预定次序在列表中布置用户数据段,以及与每个用户数据段关联的信息,其中该信息包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。这一方法也包括根据信息和列表中的次序对带介质上的用户数据段中的每个用户数据段进行定位,根据列表中的次序从带介质读取用户 数据段中的每个用户数据段,并且根据列表中的次序向缓冲器写入用户数据段中的每个用户数据段。
根据另一实施例,一种方法包括:确定用于取回在带介质上记录的多个用户数据段的次序,生成列表,该列表包括:多个用户数据段,其中在列表中根据该次序布置多个用户数据段,以及与多个用户数据段关联的信息,其中该信息包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。这一方法也包括传输列表。
根据更多另一实施例,一种带驱动包括驱动缓冲器、处理器以及与处理器集成和/或可由处理器执行的逻辑,该逻辑被配置为使处理器:接收列表,该列表包括:在带介质上记录的多个用户数据段,其中在列表中根据预定次序布置用户数据段,以及与每个用户数据段关联的信息,其中该信息包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。与处理器集成和/或可由处理器执行的该逻辑还被配置为使处理器根据列表中的次序对带介质上的用户数据段中的每个用户数据段进行定位,根据列表中的次序从带介质读取用户数据段中的每个用户数据段,并且根据列表中的次序向缓冲器写入用户数据段中的每个用户数据段。
本发明的其它方面和实施例将从结合附图通过示例的方式举例说明的本发明的原理的以下具体描述中变得清楚。
附图说明
图1图示根据一个实施例的网络架构。
图2示出根据一个实施例的可以与图1的服务器和/或客户端关联的有代表性的硬件环境。
图3图示根据一个实施例的分层数据存储系统。
图4A是根据一个实施例的简化的带驱动系统的示意图。
图4B是根据一个实施例的带盒的示意图。
图5是根据一个实施例的方法的流程图。
图6A图示用于对来自带介质的一个或者多个用户数据段进行定位的典型命令的广义图。
图6B图示根据一个实施例的用于对在带介质上记录的用户数据段进行定位和/或访问和/或读取的增强型定位命令的表示。
图7A图示根据一个实施例的用于对在带介质上记录的用户数据段进行定位和/或访问和/或读取的序列访问次序命令的表示。
图7B图示根据一个实施例的图7A中所示序列访问次序命令的参数列表字段的内容的表示。
图7C图示根据一个实施例的图7B中所示参数列表的用户数据段描述符字段的内容的表示。
图8图示根据一个实施例的用于用户数据段的样本布局的推荐的访问次序的广义图。
图9图示根据一个实施例的方法的流程图。
图10图示根据一个实施例的方法的流程图。
具体实施方式
以下描述是为了举例说明本发明的主要原理而做出的并且不是为了限制这里要求保护的发明概念。另外,这里描述的具体特征可以在各种可能组合和布置中的每个组合和布置中与其它描述的特征组合使用。
除非这里另外具体地定义,将向所有术语给出它们最广义的可能解释、包括从说明书暗示的含义以及本领域技术人员理解的和/或在字典、词典等中定义的含义。
也必须注意,如在说明书和所附权利要求中使用的那样,单数形式“一个/一种”和“该”除非另外指定则包括复数引用。还将理解术语“包括”在本说明书中使用时指定存在陈述的特征、整件、步骤、操作、单元和/或部件、但是未排除存在或者添加一个或者多个其它特征、整件、步骤、操作、单元、部件和/或其组合。
在这里描述的各种方式中,可以定义用户数据段(UDS)为在带介质上记录的连续逻辑对象(例如数据记录)的分组。
以下描述公开用于减少用于在召回操作期间从存储介质访问数据的流逝时间的系统、方法和计算机程序产品的若干主要和优选实施例。
根据一个主要实施例,一种方法包括:接收列表,该列表包括:在带介质上记录的多个用户数据段,其中根据预定次序在列表中布置用户数据段,以及与每个用户数据段关联的信息,其中该信息包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。这一方法也包括根据信息和列表中的次序对带介质上的用户数据段中的每个用户数据段进行定位,根据列表中的次序从带介质读取用户数据段中的每个用户数据段,并且根据列表中的次序向缓冲器写入用户数据段中的每个用户数据段。
根据另一主要实施例,一种方法包括:确定用于取回在带介质上记录的多个用户数据段的次序,生成列表,该列表包括:多个用户数据段,其中根据该次序在列表中布置多个用户数据段,以及与多个用户数据段关联的信息,其中该信息包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。这一方法也包括传输列表。
根据更多另一主要实施例,一种带驱动包括驱动缓冲器、处理器以及与处理器集成和/或可由处理器执行的逻辑,该逻辑被配置为使处理器:接收列表,该列表包括:在带介质上记录的多个用户数据段,其中根据预定次序在列表中布置用户数据段,以及与每个用户数据段关联的信息,其中该信息包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。与处理器集成和/或可由处理器执行的该逻辑还被配置为使处理器根据列表中的次序对带介质上的用户数据段中的每个用户数据段进行定位,根据列表中的次序从带介质读取用户数据段中的每个用户数据段,并且根据列表中的次 序向缓冲器写入用户数据段中的每个用户数据段。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。例如,一种方式可以包括处理器和集成到处理器和/或可由处理器执行的逻辑,该逻辑被配置为执行各种操作。此外,本发明的各个方面还可以采用在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含嵌入于其上的计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置、器件或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的计算机代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、射频(RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JavaTM、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明示例实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或 其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的次序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的次序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
图1图示根据一个实施例的架构100。如图1中所示,提供包括第一远程网络104和第二远程网络106的多个远程网络102。网关101可以被耦合在远程网络102与邻近网络108之间。在本架构100的上下文中,网络104、106可以各自采用任何形式、包括但不限于LAN、诸如因特网的WAN、公共交换电话网络(PSTN)、内部电话网络等。
在使用中,网关101用作从远程网络102到邻近网络108的进入点。这样,网关101可以充当路由器和交换机,该路由器能够指引到达网关101的给定的数据分组,该交换机为给定的分组提供进入和离开网关101的实际路径。
还包括耦合到邻近网络108、并且经由网关101可从远程网络102访问的至少一个数据服务器114。应当注意数据服务器114可以包括任何类型的计算设备/组件。多个用户设备116耦合到每个数据服务器114。这样的用户设备116可以包括桌面型计算机、膝上型计 算机、手持计算机、打印机或者任何其它类型的逻辑。应当注意,在一个实施例中,用户设备111也可以直接地耦合到网络中的任何网络。
外设120或者系列外设120、例如传真机、打印机、联网和/或本地存储单元或者系统等可以耦合到网络104、106、108中的一个或者多个网络。应当注意数据库和/或附加部件可以与耦合到网络104、106、108的任何类型的网元利用或者集成到该任何类型的网元中。在本说明书的上下文中,网元可以是指网络的任何部件。
根据一些方式,这里描述的方法和系统可以用和/或依赖虚拟系统和/或模仿一个或者多个其它系统、比如模仿IBM z/OS环境的UNIX系统、虚拟地主控MICROSOFT WINDOWS环境的UNIX系统、模仿IBM z/OS环境的MICROSOFT WINDOWS系统等实施和/或被实施在这些虚拟系统和/或模仿一个或者多个其它系统上。可以在一些实施例中通过使用VMWARE软件增强这一虚拟化和/或模仿。
在更多方式中,一个或者多个网络104、106、108可以代表常称为“云”的系统群集。在云计算中,在按需关系中向云中的任何系统提供共享的资源、比如处理能力、外设、软件、数据、服务器等、由此允许跨许多计算系统对服务的访问和分布。云计算通常包括在云中操作的系统之间的因特网连接,但是也可以使用连接系统的其它技术。
图2示出根据一个实施例的与图1的用户设备116和/或服务器114关联的有代表性的硬件环境。这样的图图示了工作站的典型硬件配置,工作站具有经由系统总线212互连的中央处理单元210(比如微处理器)和多个其它单元。
图2中所示工作站包括随机访问存储器(RAM)214、只读存储器(ROM)216、用于将外围设备(比如盘存储单元220)连接到总线212的I/O适配器218、用于将键盘224、鼠标226、扬声器228、 麦克风232和/或其它用户接口设备(比如触屏和数字相机(未示出))连接到总线212的用户接口适配器222、用于将工作站连接到通信网络235(例如数据处理网络)的通信适配器234和用于将总线212连接到显示设备238的显示适配器236。
工作站可以让操作系统、比如Microsoft操作系统(OS)、MAC OS、UNIX OS等在其上驻留。将认识到优选实施例也可以被实施在除了提到的平台和操作系统之外的平台和操作系统上。可以使用JAVA、XML、C和/或C++语言,或者其他编程语言,连通面向对象的编程方法一起编写优选实施例。可以使用已经变得越来越多地用来开发复杂应用的面向对象的编程(OOP)。
现在参照图3,示出根据一个实施例的分级存储管理(HSM)系统300。注意可以根据各种实施例实施图3中所示单元中的一些单元为硬件和/或软件。存储系统300可以包括用于与较高存储层302和较低存储层306上的多个介质通信的存储系统管理器312。较高存储层302优选地可以包括一个或者多个随机访问和/或直接访问介质304(比如硬盘驱动(HDD)中的硬盘)、易失性存储器(NVM)、固态驱动(SSD)中的固态存储器等和/或这里指出的其它存储介质。较低存储层306可以优选地包括一个或者多个顺序访问介质308、比如带驱动中的磁带、光介质等,和/或这里指出的其它存储介质。附加存储层316可以包括任何存储存储器介质的任何组合。存储系统管理器312可以如图3中所示通过网络310、比如存储区域网络(SAN)。存储系统管理器312也可以通过主机接口314与一个或者多个主机系统(未示出)通信,该主机接口可以是或者可以不是存储系统管理器312的一部分。存储系统管理器312和/或存储系统300的任何其它部件可以被实施在硬件和/或软件中,并且可以利用本领域已知类型的用于执行命令的处理器(未示出)、比如中央处理单元(CPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。当然,如本领域技术人员在阅读本说明书时将清楚的那样,可 以使用存储系统的任何布置。
在更多实施例中,存储系统300可以包括任何数目的数据存储层,并且可以在每个存储层内包括相同或者不同存储存储器介质。例如每个数据存储层可以包括相同类型的存储存储器介质、比如HDD、SSD、顺序访问介质(带驱动中的带、光盘驱动中的光盘等)、直接访问介质(CD-ROM、DVD-ROM等)或者任何介质存储类型的组合。在一个这样的配置中,较高存储层302可以包括用于在较高性能的存储环境中存储数据的多数SSD存储介质,而包括较低存储层306和附加存储层316的其余存储层可以包括用于在较低性能的存储环境中存储数据的SSD、HDD、带驱动等的任何组合。以这一方式,更频繁地访问的数据、具有较高优先级的数据、需要更快地访问的数据等可以被存储到较高存储层302,而不具有这些属性之一的数据可以被存储到包括较低存储层306的附加存储层316。当然,本领域技术人员在阅读本说明书时可以根据这里呈现的实施例来构思许多其它存储介质类型组合以实施到不同存储方案中。
在优选实施例中,较高存储层302可以包括一个或者多个硬盘驱动,而较低存储层306可以包括一个或者多个带驱动。
图4A图示可以在数据存储系统、比如HSM系统300中运用的简化的带驱动400。尽管在图4A中示出带驱动的一个具体实现方式,但是应当注意可以在任何类型的带驱动系统的上下文中实施这里描述的实施例。
如图所示,提供带供应盒420和拉紧卷轴(take-up reel)421以支撑带422。卷轴中的一个或者多个卷轴可以形成可拆卸盒的一部分而未必是系统400的一部分。带驱动、比如图4A中所示带驱动还可以包括用于驱动带支撑盒420的驱动马达和用于在任何类型的带头426之上移动带422的拉紧卷轴421。这样的头可以包括读取器阵列、写入器阵列或者二者的阵列。
引导件425跨带头425引导带422。这样的带头426又转而经由 线缆430耦合到控制器428。控制器428可以是或者包括用于控制驱动400的任何子系统的处理器和/或任何逻辑。例如控制器428通常控制头功能、比如伺服跟随、数据写入、数据读取等。控制器428可以在本领域已知的逻辑以及这里公开的任何逻辑之下操作。控制器428可以耦合到任何已知类型的存储器436,该存储器可以存储可由控制器428执行的指令。另外,控制器428可以被配置和/或可编程为执行或者控制这里呈现的方法中的一些或者任何方法。因此,控制器可以考虑被配置为通过编程到芯片中的逻辑、可用于处理器的软件、固件或者其它指令等及其组合执行各种操作。
线缆430可以包括用于向头426传输数据以记录在带422上和用于从带422接收由头426读取的数据的读取/写入电路。致动器432控制头426相对于带422的定位。
如本领域技术人员将理解的那样,也可以提供接口434用于在带驱动400与主机(集成或者外部)之间的通信以发送和接收数据,以及用于控制带驱动400的操作和向主机传达带驱动400的状态。
图4B图示根据一个实施例的示例带盒450。这样的带盒450可以与系统、比如图4A中所示系统使用。如所示出的,带盒450包括壳体452、壳体452中的带422和耦合到壳体452的非易失性存储器456。在一些方式中,非易失性存储器456可以如图4B中所示被嵌入在壳体452内。在更多方式中,非易失性存储器456可以附着到壳体452的内部或者外部而未修改壳体452。例如非易失性存储器可以被嵌入在自粘合标签454中。在一个优选实施例中,非易失性存储器456可以是嵌入到带盒450中或者耦合到带盒450的内部或者外部的闪存设备、ROM设备等。非易失性存储器可由带驱动和带操作软件(驱动软件)和/或其它设备访问。
根据各种实施例,这里公开的数据存储系统(比如HSM系统300)可以包括适于接收用于打开数据集的逻辑、适于确定所请求的数据集是否在多个关联部分中被存储到较低存储层(例如分层数据 存储系统300的306)的逻辑、适于向较高存储层(例如分层数据存储系统300的302)移动请求的数据集的每个关联部分和适于从关联部分在较高存储层(例如分层数据存储系统300的302)上组装请求的数据集。当然,可以根据各种实施例实施这一逻辑为任何设备和/或系统上的方法或者为计算机程序产品。
在数据存储系统、比如图3中所示HSM系统300中,减少与召回操作关联的流逝时间(例如用于定位和召回带介质上的数据文件的时间)经常是有利的。在典型的召回操作期间,在主机系统上运行的应用可以请求访问在较高存储层上不可用的数据文件。因而,可以在较低存储层上取回和在较高存储层上存储数据文件,应用继而可以从较高存储层访问请求的文件。然而,用于带驱动从带介质读取数据的数据速率一般地比HSM系统中的主机数据速率(例如在主机与带驱动之间的数据速率)快得多。例如在HSM系统的较低存储层上的带驱动可以能够以250MB/秒的数据速率从带介质读取数据;而较高存储层的总带宽可能不允许主机以250MB/秒的数据速率或者接近该数据速率从带驱动读取数据。
仅作为例子示例,考虑HSM系统(例如图3中所示HSM系统300)中的召回操作,该HSM系统具有包括一个或者多个硬盘驱动的较高存储层和包括一个或者多个带驱动的较低存储层。假设较高存储层的总带宽(例如硬盘存储的总带宽)是2500MB/秒,而在主机系统上运行的应用使用2000MB/秒。因而,用于召回操作的总带宽是2500MB/秒-2000MB/秒=500MB/秒。如果在较低存储层中有数目为N的带驱动,则用于每个带驱动的平均数据速率等于500MB/秒/N。对于这一具体示例,假设有10个带驱动;因此,在较高存储层(硬盘驱动)与每个带驱动之间的数据速率是500MB/秒/10=50MB/秒。附加地,假设在带驱动中的每个带驱动与带介质之间的数据速率是250MB/秒。
继续以上示例性说明,假设在主机系统上运行的应用请求访问 在较低存储层中存在的带介质上记录的500MB数据文件。可以描述简化的总召回序列如下:
1.耦合到HSM部件(例如与在主机系统上运行的应用通信的主机接口和/或主机系统管理器)和/或在HSM部件中嵌入的计算资源确定待召回的目标带盒和带驱动,其中目标带盒包括请求的数据文件被记录在其上的带介质;
2.目标带盒被加载到目标带驱动中;
3.带介质上的请求的文件被定位,例如带介质被定位到数据文件的第一数据记录的开头;
4.读取/访问请求的文件;
5.带介质的装配定位被定位,例如带介质被定位/返回到装配定位;
6.目标带盒被拆卸;
7.如果适用(例如其中有待召回的更多请求的数据文件)则重复步骤1-6。
可以在优选方式中顺序地(不是并行)执行步骤1-7。由于在带驱动与硬盘存储之间的数据速率是50MB/秒,所以在步骤4中读取500MB请求的文件将花费500MB/50MB/秒=10秒。这比带驱动从带介质读取数据文件而流逝的2秒时间(500MB/250MB/秒=2秒)更长。
这里公开的实施例提供用于减少在召回操作期间从带介质召回多个数据文件的总流逝时间的系统、方法和计算机程序产品。例如在优选实施例中,在来自带介质的请求的数据文件被定位之前(例如在以上提到的步骤4开始之前),包括根据优选取回次序布置的请求的数据文件(也称为请求的用户数据段)的列表可以例如由带驱动接收,其中列表附加地包括如下信息,该信息包括每个请求的数据文件在带介质上的物理位置的开头和末尾。在接收到这样的列表时,带驱动可以在各种方式中在到达请求的数据文件的末尾时终 止向前读取操作并且立即地定位到在列表中指定的下一请求的数据文件。在许多方式中,请求的数据文件的有序列表和包括请求的数据文件中的每个数据文件在带介质上的物理位置的信息可以由在主机系统上运行的应用、耦合到HSM系统的部件和/或在该部件中嵌入的计算资源(例如处理器、存储器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等)等确定和/或传输。
可以通过再次参照以上讨论的HSM系统和简化的召回操作的示例性图示来举例说明这里公开的实施例如何有助于减少在召回操作期间从带介质召回一个或者多个数据文件而花费的总时间的例子。再次假设在主机系统上运行的应用请求访问在示例HSM系统的较低存储层中存在的带介质上记录的500MB数据文件。在这一示例中,在带介质与带驱动之间的数据速率是250MB/秒,而在带驱动与较高存储层(硬盘驱动)之间的数据速率是50MB/秒。因此,用于从带介质取回请求的文件的时间是2秒(500MB/250MB/秒=2秒),而用于从带驱动取回请求的文件的时间是10秒(500MB/50MB/秒=10秒)。也假设用于加载包括请求的数据文件被记录在其上的带介质的目标带盒的平均时间是15秒,而用于在装配目标带盒之后对带介质上的请求的数据文件进行定位的时间是40秒。假设带驱动具有比请求的数据文件的文件大小更大的缓冲起大小(例如带驱动具有1GB缓冲器存储器),并且带驱动在读取/访问请求的500MB数据文件之后返回到带介质的装配定位,用于对装配定位进行定位的时间(以下再现的简化的召回操作的步骤5)可以被减少8秒(10秒[用于从带驱动取回请求的文件的时间]-2秒[用于从带介质取回请求的文件的时间]=8秒)。用于简化的总召回操作的近似时间段可以如下:
1.在HSM部件中嵌入和/或耦合到HSM部件的计算资源确定待召回的目标待盒和带驱动=N/A;
2.向目标待驱动中加载目标带盒=15秒;
3.对带介质上的请求的文件进行定位=40秒;
4.读取/访问请求的文件=10秒;
5.对带介质的装配定位进行定位=40秒-8秒=32秒;
6.拆卸带盒=15秒。
用于执行召回操作的总时间在步骤5期间时间未减少8秒时是120秒。然而,在步骤5期间,时间减少8秒时的用于执行召回操作的总时间是120秒-8秒=112秒。因此,这里公开的实施例可以实现在召回操作期间流逝时间减少6%或者高达6%。重要的是注意尽管以上例子举例说明根据这里公开的实施例用于召回500MB请求的文件的流逝时间减少,但是这样的实施例也有助于减少用于召回可变大小的多个数据文件的流逝时间。
现在参照图5,示出根据一个实施例的用于生成和传输包括将从带介质取回的多个用户数据段的列表的方法500的流程图。作为选项,本发明500可以在任何希望的环境、包括这里描述的环境中被执行并且可以包括这里描述的实施例和/或方式。当然,如本领域技术人员在阅读本说明书时将理解的那样,可以在方法500中包括比图5中所示操作更多或者更少的操作。
方法500的步骤中的每个步骤可以由操作环境的任何适当部件执行。例如在各种非限制例子中,方法500可以部分地或者全部地由计算资源、包括但不限于处理器、比如中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等——可以在系统、装置等中被嵌入和/或在系统、装置等内操作并且可以具有在处理器内嵌入和/或可由处理器访问的逻辑——执行。在示例性实施例中,方法500可以部分地或者全部地由可以可选地在主机系统中嵌入和/或耦合到主机系统的以上计算资源中的一个或者多个计算资源执行。
如图5中所示,方法500包括确定用于取回在一个或者多个带介质上记录的多个用户数据段的次序。见操作502。如这里所用,将从带介质取回多个用户数据段的次序可以被称为“取回次序”或者“访 问次序”。
在一个实施例中,取回/访问次序可以由在主机系统上运行的应用确定。在一些方式中,由应用确定的取回/访问次序可以是随机的、基于算法、基于用户偏好、基于历史操作条件等。在其它方式中,由应用确定的取回/访问次序可以基于与用户数据段关联的定位信息、例如关于用户数据段在带介质上的物理位置的信息。在各种方式中,与用户数据段关联的定位信息及其相应数据记录可以被存储到带介质上的预定物理区域或者范围;在主机系统中嵌入和/或耦合到主机系统的计算资源(例如存储器、处理器等)、HMS系统的包括随机访问和/或直接访问介质的第一/较高存储层、HSM系统的包括顺序访问介质的第二/较低存储层等中;由在HSM系统中嵌入和/或耦合到HSM系统的一个或者多个处理器创建、维护和/或存储的带目录或者映射表等中。
继续参照图5,方法500也包括生成包括将从带介质取回的多个用户数据段的列表。见操作504。在优选方式中,可以根据将取回多个用户数据段的次序(例如根据取回/访问次序)来在列表中布置它们。
在一个实施例中,列表可以包括与多个用户数据段中的每个用户数据段关联的信息,其中这样的信息包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。在一些方式中,用户数据段中的每个用户数据段的物理位置的描述可以包括与用户数据段的开始(例如第一)逻辑对象(例如数据记录)关联的开头逻辑对象标识符、与用户数据段的结束(例如最后)逻辑对象关联的结束逻辑对象标识符和标识用户数据段在带介质上位于的分区的分区编号。
根据各种方式,带介质可以包括一个或者多个分区。另外,在其中带介质包括多个分区的方式中,分区中的每个分区可以是逻辑独立单元,例如分区中的每个分区可以是分离和不同的。此外,在 每个分区内,逻辑对象可以被记录到其中。例如,在其中有逻辑对象被记录到它的分区内,该分区可以包括逻辑对象的连续序列(用户数据段UDS)。
再次参照与多个用户数据段中的每个用户数据段关联的信息,在更多方式中,这一信息也可以包括描述用户数据段的描述符(UDS描述符);由应用向用户数据段给予的名称或者标识符;用户数据段描述符中的数据的长度;用户数据段被记录在其中的物理卷包的描述。
在另一实施例中,列表中的多个用户数据段可以在带介质上具有顺序的物理位置。换而言之,多个用户数据段可以串行地位于带介质上。仅通过示例,考虑如下方式,其中列表包括将按照以下次序从带介质取回的三个用户数据段(UDS1、UDS2和UDS3):UDS1;UDS2;UDS3。UDS1、UDS2和UDS3在带介质上的物理位置可以是顺序/串行的,从而与带介质的装配定位有关,UDS1位于UDS2之前,UDS2位于UDS23之前,等等。可以举例说明在带介质上具有顺序物理位置的这三个用户数据段的简化地表示为:装配定位、UDS1、UDS2、UDS3。重要的是注意在一些方式中,在列表中不存在的一个或者多个用户数据段可以物理地位于装配定位与UDS1之间,和/或列表中的用户数据段中的至少两个用户数据段之间(例如UDS1和UDS2和/或UDS2和UDS3的物理位置之间等)。
在更多另一实施例中,列表中的多个用户数据段可以在带介质上具有非顺序的物理位置。换而言之,在这样的方式中,列表中的多个用户数据段可以未串行地位于带介质上。仅通过示例,再次考虑如下方式,其中列表包括将按照以下次序从带介质取回的三个用户数据段(UDS1、UDS2和UDS3):UDS1;UDS2;UDS3。三个用户数据段中的至少两个用户数据段的物理位置可以在带介质上不是串行/顺序的。例如可以举例说明在带介质上具有非顺序物理位置的这三个用户数据段的各种表示为:
装配定位、UDS1、UDS3、UDS2;
装配定位、UDS2、UDS1、UDS3;
装配定位、UDS2、UDS3、UDS1;
装配定位、UDS3、UDS1、UDS2;
装配定位、UDS3、UDS2、UDS1。
如以上具体描述的那样,重要的是注意在一些方式中,在列表中不存在的一个或者多个用户数据段可以物理地位于装配定位与来自列表的物理地位于与装配定位最近的用户数据段之间和/或列表中的用户数据段中的至少两个之间(例如UDS1和UDS2和/或UDS1和UDS3和/或UDS2和UDS3的物理位置之间等)。
再次参照图5,方法500也包括传输列表。见操作506。在一些方式中,方法500附加地包括传输用于根据列表中的次序定位和/或访问/读取带介质上的用户数据段中的每个用户数据段的一个或者多个请求(例如SCSI命令)。因此,在各种方式中,列表可以被包括在这样的请求/命令中和/或由这样的请求/命令引用。在优选方式中,列表和/或包括列表的请求/命令可以由在主机系统上运行的应用传输。
在图6A-6B中呈现用于定位和/或访问/读取在带介质上记录的用户数据段的请求/命令的说明性示例。图6A图示用于定位来自带介质的一个或者多个用户数据段的典型命令600,其中这样的命令不包括与请求的用户数据段关联的定位信息(例如描述在每个用户数据段的开头和末尾的逻辑定位的信息)。对照而言,图6B图示根据一个实施例的增强型定位命令601(“增强型定位命令”),该命令包括将从带介质取回的用户数据段的有序列表,连同请求的用户数据段关联的定位信息。具体而言,增强型定位命令601的命令描述符块(CDB)可以包括对以下各项的描述:第一请求的用户数据段在带介质上的结束定位、将在第一用户数据段之后定位/读取的下一用户数据段的定位等。例如如图6B中所示,字节4-11对应于与第一 请求的用户数据段关联的逻辑标识符,字节12-19指示与第一用户数据段的末尾关联的逻辑标识符(该逻辑标识符暗示在第一用户数据段的末尾的逻辑定位),而字节20-28对应于用于第二(例如下一)请求的用户数据段的逻辑标识符(该逻辑标识符暗示用于第二/下一请求的用户数据段的逻辑定位)。
图7A图示根据又一实施例的用于定位和/或访问/读取在带介质上记录的用户数据段的另一示例命令700(“序列访问次序命令”)。如图7A中所示,序列访问次序命令包括参数列表长度字段,该字段指定从发起者(例如主机系统上的应用)向目标(例如带驱动)传送的参数列表(也称为访问次序列表)以字节为单位的长度。在图7B中图示与序列访问次序命令700传输的参数列表(访问次序列表)701的内容。如图7B中所示,参数列表(访问次序列表)701包括以下字段:描述跟随数据数量的附加数据字段和包括将从带介质取回的用户数据段的有序列表的用户数据段描述符字段。图7C提供关于将在用户数据段描述符中包括的数据的更多细节。例如如图7C中所示,,与参数列表(访问次序列表)中的用户数据段关联的用户数据段描述符703包括以下字段:描述UDS描述符中的跟随数据长度的描述符长度;描述向用户数据段(例如由应用)给予的名称的UDS名称;标识用户数据段在带介质上所在的分区的分区编号;与用户数据段的开头(例如第一)逻辑对象(例如数据记录)对应的开始逻辑对象标识符;以及与用户数据段的结束(例如最后)逻辑对象对应的结束逻辑对象标识符。在一些方式中,与参数列表(访问次序列表)中的用户数据段关联的用户数据段描述符也可以包括附加信息(在图7C中未示出)、包括但不限于:描述用户数据段被记录在其中的物理卷包的卷包标识符;描述用户数据段被记录在其中的带的带标识符;描述由开头逻辑对象标识符字段标识的逻辑对象的几何性质的开始点几何性质标识符;描述由结束逻辑对象标识符字段标识的逻辑对象的几何性质的结束点几何性质标识符;由逻 辑对象标识符标识的逻辑对象相对于最早物理记录开始的估计相对纵向定位的描述;等等。
在一些实施例中,图5的方法500也可以包括传输列表、连同用于记录列表的请求/命令,该列表包括将从带介质取回的多个用户数据段。如这里所用,用于记录列表的命令可以称为生成推荐的访问次序(GRAO)命令并且可以在一些方式中在它的CDB中包括与图7A-7C中所示序列访问次序命令中的字段相同或者基本上相同的字段。例如GRAO命令可以与图7A中所示序列访问次序命令相同,不同在于GRAO命令的字节1将指定“生成推荐的访问次序命令”(与适当操作码一起)而不是如图7A中所示引用“访问次序命令(001b)”。在各种方式中,包括多个用户数据段的GRAO命令可以被传输到耦合到带驱动和/或在带驱动中嵌入的计算资源(例如处理器、存储器等)、主机系统、HSM系统等。记录包括多个用户数据段的列表可以提供一种用于最小化用于从带介质访问/读取请求的用户数据段的时间的方式。例如在许多方式中,可以基于用户数据段在带介质上的物理位置来记录列表。在示例性方式中,列表被重排序的方式或者过程可以由GRAO命令指定。
在其中图5的方法500可以包括传输GRAO命令的方式中,方法500也可以包括接收重排序的列表、这里称为重排序的访问次序(RAO)列表。方法500可以在更多方式中附加地包括接收用于访问/读取重排序的列表的命令。如这里所用,用于接收GRAO命令的命令可以称为接收推荐的访问次序(RRAO)命令并且可以包括和/或引用RAO列表。在更多方式中,生成的RAO列表可以包括将从带介质取回的用户数据段的重排序的列表以及或者无与用户数据段关联的几何性质描述符。与用户数据段关联的几何性质描述符可以用来构建和/或查看用户数据段在带介质上的物理部件的表示并且可以用于可视反馈和/或用于应用创建它自己的用于基于物理位置的用户数据段取回的算法。在图8中示出根据一个实施例的用于用户数 据段的样本布局800的推荐的访问次序的例子。
优选地,可以响应于最新近GRAO命令生成在RRAO命令中包括和/或由RRAO命令引用的RAO列表。换而言之,生成的ROA列表可以对于当前装配的带卷(例如逻辑定位、在带介质上的逻辑对象等)在生成列表时的状态是有效的。然而,如果改变逻辑定位,或者如果写入或者擦除逻辑对象,则这一生成的RAO可以变得过时。因而,在一些方式中,图5的方法500可以附加地包括监视带驱动的操作状态以保证生成的RAO列表自从处理GRAO命令起没有被命令所无效。
在优选实施例中,可以向带驱动传输列表和/或以上提到的引用和/或包括列表的请求/命令。因而,列表中的多个用户数据段可以在各种方式中位于带介质上(例如基于与列表中的用户数据段关联的定位信息)、根据在列表中指定的次序从带介质被读取和由带驱动写入到缓冲器。
在附加实施例中,方法500还可以包括从列表访问尚未从带介质读取的用户数据段而未等待取回来自列表的后续用户数据段和/或未等待取回来自列表的所有用户数据段。再次参照如下例子示例,其中列表包括将按照以下次序从带介质取回的三个用户数据段(UDS1、UDS2和UDS3):UDS1;UDS2;UDS3。UDS1可以先位于带介质上、(例如由带驱动)被读取和写入到缓冲器。在一些方式中,UDS1然后可以可用于在被写入到缓冲器时和/或在定位、读取和/或写入UDS2(和UDS3)到缓冲器之前和/或期间(例如由应用)访问/取回。
现在参照图9,示出根据一个实施例的方法900的流程图。作为选项,本发明900可以在任何希望的环境、包括这里描述的环境中被执行并且可以包括这里描述的实施例和/或方式。当然,如本领域技术人员在阅读本说明书时将理解的那样,可以在方法900中包括比图9中所示操作更多或者更少的操作。
方法900的步骤中的每个步骤可以由操作环境的任何适当部件执行。例如在各种非限制性的实施例中,方法900可以部分地或者全部地由计算资源、包括但不限于处理器、比如中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等——可以在系统、装置等中被嵌入和/或在系统、装置等内操作并且可以具有在处理器内嵌入和/或可由处理器访问的逻辑——执行。在示例性实施例中,方法900可以部分地或者全部地由可以可选地在带驱动中嵌入和/或耦合到带驱动的以上计算资源中的一个或者多个计算资源执行。
如图9中所示,方法900包括接收包括在带介质上记录的多个用户数据段的列表。见操作902。在优选方式中,可以在列表中根据预定次序布置多个用户数据段。在一些方式中,预定次序可以对应于多个用户数据段将例如由带驱动从带介质取回的次序。例如预定次序可以对应于在列表中指定的多个用户数据段将在带介质上位于和/或读取/访问和/或向缓冲器写入的次序。在各种方式中,预定次序可以由在主机系统上运行的应用确定。在更多方式中,预定次序可以由在主机系统上运行的应用基于用户数据段中的每个用户数据段在带介质上的物理位置、基于用户偏好、基于算法等来确定。
根据一个实施例,包括根据预定次序布置的多个用户数据段的接收的列表也可以包括与多个用户数据段中的每个用户数据段关联的信息。这样的信息可以包括对用户数据段中的每个用户数据段在带介质上的物理位置的描述。在一些方式中,对用户数据段中的每个用户数据段的物理位置的描述可以包括与用户数据段的开始(例如第一)逻辑对象(例如数据记录)对应的开始逻辑对象标识符、与用户数据段的结束(例如最后)逻辑对象对应的结束逻辑对象标识符和标识用户数据段在带介质上位于的分区的分区编号。在更多方式中,与接收的列表中的用户数据段中的每个用户数据段关联的信息也可以包括描述用户数据段的描述符(UDS描述符);由应用 向用户数据段给予的名称或者标识符;用户数据段描述符中的数据的长度;用户数据段被记录在其中的物理卷包的描述;等等。
在一些方式中,方法900附加地包括接收用于根据列表中的次序在带介质上定位和/或访问/读取列表中的用户数据段中的每个用户数据段的一个或者多个请求/命令。因此,在各种方式中,列表可以被包括在这些请求/命令中和/或由这些请求/命令引用。在图6B和7A-7C中图示用于定位和/或访问在列表中指定的用户数据段的示例性命令。
在更多方式中,方法900可以包括装配带介质,在该带介质上列表中的多个用户数据段被记录。
也如图9中所示,在列表中指定的用户数据段中的每个用户数据段根据列表中的次序位于带介质上。见操作904。在操作906和908中,根据列表中的预定次序分别从带介质读取和向缓冲器写入在列表中指定的用户数据段中的每个用户数据段。重要的是注意可以根据预定次序为列表中的用户数据段重复位置/定位、读取和写入步骤,而不管用户数据段在带介质上的物理位置相对于带介质的装配定位是顺序的还是非顺序的。
另外,重要的是注意接收包括根据预定次序布置的多个用户数据段以及如下信息——该信息包括与这些用户数据段中的每个用户数据段关联的物理位置——的列表可以帮助减少定位和访问/读取来自带介质的请求的用户数据段而花费的时间(例如为了在装配其上具有请求的用户数据段的相应带介质之后定位和访问/读取所述用户数据段而需要的时间)。例如在其中这样的列表与用于定位和/或读取列表中的用户数据段的请求一起可以由带驱动接收的方式中,带驱动将被评价用于定位和/或读取请求的用户数据段的次序以及这些请求的用户数据段中的每个用户数据段在带介质上的物理位置(例如每个用户数据段的物理位置的开头和末尾)二者。因而,带驱动可以将带介质定位在列表中指定的第一用户数据段的物理位置的开 头、读取第一用户数据段并且向缓冲器写入用户数据段。后续地,带驱动不是执行传统向前读取而是可以代之以立即地将带介质定位到在列表中指定的第二用户数据段的物理位置的开头、读取第二用户数据段并且将第二用户数据段写入到缓冲器。带驱动然后可以根据列表中的次序为列表中的用户数据段中的每个用户数据段重复定位和/或访问/读取步骤直至所有请求的用户数据段已经被定位和/或读取和/或直至缓冲器已满。
在一些实施例中,方法900也可以包括接收用于对包括多个用户数据段的接收的列表(例如在操作902中描述的原有列表)重排序的请求/命令(例如如先前讨论的GRAO命令)。在一些方式中,用于对列表重排序的这一请求/命令可以被传输到耦合到带驱动和/或在带驱动中嵌入的计算资源(例如处理器、存储器等)。在许多方式中,该方法可以基于用户数据段在带介质上的物理位置对列表重排序。在附加方式中,该方法可以包括估计用于在处理GRAO命令时从带介质的定位对带介质上的多个用户数据段进行定位的时间(从而从相同起始定位计算所有定位时间)。在更多其它方式中,可以从带介质的当前定位(例如处理GRAO命令时)到列表中的第一用户数据段的开始逻辑对象标识符估计用于对这一用户数据段进行定位的时间;可以从第一用户数据段的结束逻辑对象到列表中的第二用户数据段的开始对象标识符估计用于对这一第二用户数据段进行定位的时间,等等。在更多方式中,重排序的列表(例如RAO列表)因此可以包括描述用于在处理GRAO命令时从带介质的定位对带介质上的多个用户数据段进行定位的估计的时间的估计的定位时间字段。
在更多实施例中,方法900可以包括传输重排序的列表(例如RAO列表)。在一些方式中,重排序的列表可以被传输回到在发送包括多个用户数据段的原有列表的HSM系统中嵌入和/或耦合到该HSM系统的计算资源。在各种方式中,重排序的列表可以被传输到 在主机系统上运行的应用。在通过完全引用而结合于的第12/862,198号美国专利申请中公开用于对用户数据段列表重排序以减少在访问在带介质上存储的数据时的查找时间的系统、方法和计算机程序产品。
在进而更多实施例中,方法900可以包括在带介质上记录的所有请求的用户数据段已经被定位和/或读取和/或写入到缓冲器之后返回到带介质的装配定位。另外,方法900也可以包括拆卸包括带介质的带盒,该带介质上具有请求的用户数据段。
现在参照图10,示出根据一个实施例的用于定位和访问/读取带介质上的多个用户数据段的方法1000的流程图。作为选项,本方法1000可以包括这里描述的实施例和/或方式。当然,如本领域技术人员在阅读本说明书时将理解的那样,可以在方法1000中包括比图10中所示操作更多或者更少的操作。
方法1000的步骤中的每个步骤可以由操作环境的任何适当部件执行。例如在各种非限制例子中,方法1000可以部分地或者全部地由计算资源、包括但不限于处理器、比如中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等——可以在系统、装置等中被嵌入和/或在系统、装置等内操作并且可以具有在处理器内嵌入和/或可由处理器访问的逻辑——执行。为了清楚和讨论,可以假设以下描述的方法1000部分地或者全部地由在带驱动中嵌入和/或耦合到带驱动的一个或者多个计算资源执行。在一些方式中,带驱动可以是HSM系统中的部件。
如图10中所示,方法1000可以从操作1002发起,其中带接收用于定位和/访问/读取在带介质上记录的多个请求的用户数据段的定位命令。可以在各种方式中在列表中根据预定次序布置在命令中指定的多个用户数据段,其中预定次序对应于用户数据段将在带介质上被定位和读取/访问的次序。在优选方式中,命令也可以包括与待定位和读取/访问的每个用户数据段关联的信息,其中该信息包括 用户数据段中的每个在带介质上的物理位置的描述。例如用户数据段中的每个用户数据段的物理位置的描述可以至少包括描述用户数据段的开始(例如第一)逻辑对象(例如数据记录)的开始逻辑对象标识符和描述用户数据段的结束(例如最后)逻辑对象的结束逻辑对象标识符。
在操作1004中,带驱动将带介质移向第一区域,其中基于在命令中提供的信息预计第一区域包括第一请求的用户数据段。在操作1006中,从带介质读取并且向缓冲器传送/写入这一第一区域中的第一数据记录。
在操作1008中,关于第一区域中的这一第一数据记录是否包括与UDS1的开始数据记录关联的开始逻辑对象标识符做出确定。如果不是,则方法1000继续操作1010;否则,方法100继续操作1012。操作1010和1012可以用于验证在命令中指定的关于USD1在带介质上的物理位置的信息是否准确和保证带介质被恰当地定位在USD1的物理位置的开头。
在一些方式中,其中接收的定位命令例如如图6B中所示是增强型定位命令,操作1008可以包括确定第一区域中的第一数据记录是否包括如在增强型定位命令的字节3-11中描述的与USD1的开始数据记录关联的逻辑标识符。在其它方式中,其中接收的定位命令例如如图7A-7C中所示是GRAO命令或者序列访问次序命令,操作1008可以包括确定第一区域中的第一数据记录是否包括如在序列访问次序命令的字节16-23中描述的与USD1的开始数据记录关联的开始逻辑对象标识符。
在操作1010中,在确定这一范围中的第一数据记录未包括开头逻辑对象标识符时,待介质被定位到这一范围中的第二数据记录。这一第二数据记录可以在许多方式中相对于带介质的装配定位物理定位于第一数据记录之后。第二数据记录然后可以由带驱动读取/访问和写入到缓冲器。
在操作1012中,如果确定第一区域中的第一数据记录包括与UDS1的开始数据记录对应的开始逻辑对象标识符,则带驱动传达用于定位命令的“良好”状态。“良好”状态指示命令中的至少关于USD1的物理位置的开头的描述的信息是准确的并且带介质被恰当地定位在USD1的第一/开始数据记录。在一些方式中,用于定位命令的状态可以被传达到向带驱动传输定位命令的计算设备。在许多方式中,定位命令可以被传达到在主机上运行的应用。
在已经确定USD1的第一/开始数据记录已经被定位和/或读取之后,带介质在操作1014中被定位以读取/访问USD1的下一数据记录。USD1的这一下一数据记录相对于带介质的装配定位物理定位于USD1的第一/开始数据记录之后(后面)。在操作1016中,USD1的这一下一数据记录由带驱动读取/访问和写入到缓冲器。
在操作1018中,关于USD1的这一下一数据记录(在操作1016中读取的USD1的数据记录)是否包括与USD1的结束(例如最后)数据记录关联的结束逻辑对象标识符做出确定。如果不是,则方法1000继续操作1202;否则,方法1000继续操作1026。
在一些方式中,其中接收的定位命令例如如图6B中所示是增强型定位命令,则操作1018可以包括确定USD1的这一第二数据记录是否包括如在增强型定位命令的字节3和12-19中描述的与USD1的结束数据记录关联的用户操作的末尾的逻辑标识符。注意在这一确定中包括字节3,因为用于USD1的第一和第二数据记录的分区编号相同。
在其它方式中,其中接收的定位命令例如如图7A-7C中所示是序列访问次序命令,操作1008可以包括确定USD1的这一第二数据记录是否包括如在序列访问次序命令的字节24-31中描述的与USD1的结束/最后数据记录关联的结束逻辑对象标识符。
在操作1020中,关于缓冲器是否已满做出确定。如果是,则方法1000继续操作1022,其中停止带介质的运动。然而,如果确定缓 冲器未满,则方法1000继续操作1024。
在操作1024中,带介质被定位到USD1的下一数据记录。USD1的这一下一数据记录相对于带介质的装配定位而物理定位于带驱动最新近地读取的USD1的数据记录的物理位置之后(后面)。USD1的这一下一数据记录然后可以由带驱动读取/访问和写入到缓冲器。
仅通过示例,考虑如下例子,其中带驱动接收用于按照以下次序对两个请求的用户数据段(USD1和USD2)进行定位的命令。这一接收的定位命令也包括USD1和USD2在带介质上的物理位置的描述,其中这样的描述至少包括与每个用户数据段的开始(例如第一)数据记录关联的开始逻辑对象标识符和与每个用户数据段的结束(例如最后)数据记录关联的结束逻辑对象标识符。为了示例,也假设UDS1与4个数据记录(DRA、DRB、DRC和DRD)关联,这些数据记录在带介质上的物理位置相对于装配定位如下:装配定位…DRA、DRB、DRC、DRD。另外,对于UDS1,开始逻辑对象标识符对应于DRA,因为DRA是UDS1的开始数据记录;类似地,结束逻辑对象标识符对应于DRD,因为DRD是UDS1的结束数据记录。
继续以上例子示例,在接收定位命令之后,带介质可以被移向预计包括UDS1的第一区域,并且这一第一区域中的第一数据记录可以被读取和传送到缓冲器。假设确定这一第一数据记录包括与DRA关联的开始逻辑对象标识符。因而,可以传达良好状态、由此指示在第一区域中从带介质读取的这一第一数据记录对应于UDS1的第一数据记录(例如DRA)。带介质然后可以被移向UDS1中的下一数据记录、即DRB,并且DRB可以可以被传送到缓冲器。因为DRB未包括(与DRD关联的)结束逻辑对象标识符,并且假设缓冲器未满,带介质然后可以移向UDS1中的下一数据记录、即DRC,并且DRC也可以被传送到缓冲器。由于DRC也未包括(与DRD关联的)结束逻辑对象标识符,并且再次假设缓冲器未满,带介质然后可以移向UDS1中的下一数据记录、即DRD,并且DRD也可以被传送到缓冲器。 然而,由于DRD包括结束逻辑对象标识符,所以带介质然后可以移向预计包括UDS2的第二区域,其中标识和读取UDS2的数据记录的过程对于UDS1继续(例如见操作1026-1034)。重要地注意这一例子示例绝不是限制而仅用作简化的例子。例如定位命令、比如在操作1002中描述的定位命令不限于引用仅两个用户数据段,用户数据段不限于四个数据记录,等等。
再次参照图10,在操作1026中,带介质被定位到第二区域,其中基于在命令中提供的信息预计第二区域包括第二请求的用户数据段(UDS2)。在一些方式中,其中接收的定位命令例如如图6B中所示是增强型定位命令,带介质可以基于在增强型定位命令的字节20-28中描述的UDS2的预计位置来定位,这些字节包括字段:用于接下来用户操作(例如UDS2)的分区和用于接下来用户操作(例如UDS2)的逻辑标识符。在其它方式中,其中接收的定位命令例如如图7A-7C中所示是GRAO命令或者序列访问次序命令,带介质可以基于在序列访问次序命令的与UDS2的用户数据段对应的字节16-23中提供的信息来定位。
在操作1028中,然后从带介质读取和向缓冲器传送/写入来自第二区域的第一数据记录。
在操作1030中,关于缓冲器是否已满做出确定。如果是,则该方法继续操作1032,其中停止带介质。然而,如果缓冲器未满,则方法1000继续操作1034,其中带介质被定位到第二区域中的下一数据记录,并且读取/访问和向缓冲器写入所述数据记录。第二区域中的这一下一数据记录相对于带介质的装配定位物理定位于第二区域中的第一数据记录之后(后面)。
尽管未示出,但是方法1000还可以包括确定在第二区域中访问的数据记录中的任何数据记录是否包括分别与UDS2的开始数据记录和结束/最后数据记录关联的结束逻辑对象标识符。可以做出这样的可选确定以便验证在命令中指定的关于UDS2在带介质上的物理 位置的信息是准确的和保证带介质在读取UDS1之后被恰当地定位UDS2的物理位置的开头。在各种方式中,方法1000可以继续读取/访问UDS2的所有数据记录直至读取/访问所有这样的记录或者直至缓冲器已满。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的次序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的次序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
将清楚可以用任何方式组合前述系统和/或方法的各种特征从而从以上呈现的说明书创建多个组合。
还将认识可以用代表客户部署的用于按照需求提供服务的服务这一形式提供本发明的实施例。
尽管以上已经描述各种实施例,但是应当理解已经仅通过例子而不是限制来呈现它们。因此,优选实施例的广度和范围不应受以上描述的示例实施例中的任何示例实施例限制、但是应当仅根据所附权利要求及其等效含义来限定。