CN101122888A - 写入和读取应用数据的方法和系统 - Google Patents
写入和读取应用数据的方法和系统 Download PDFInfo
- Publication number
- CN101122888A CN101122888A CNA200710139829XA CN200710139829A CN101122888A CN 101122888 A CN101122888 A CN 101122888A CN A200710139829X A CNA200710139829X A CN A200710139829XA CN 200710139829 A CN200710139829 A CN 200710139829A CN 101122888 A CN101122888 A CN 101122888A
- Authority
- CN
- China
- Prior art keywords
- data
- tape
- volume
- cache
- application
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/213—Tape storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及虚拟磁带系统。公开了一种控制高速缓存控制器的方法,所述方法包括以下步骤:a)将当前应用数据写入位于所述随机存取高速缓存中的逻辑卷时;b)维护与邻近所述当前数据的应用数据(也在预定时间内将其写入所述高速缓存)有关的邻近高速缓存存储位置元数据(在大多数情况下是块地址),这称为自适应读取缓存;c)当将所述当前数据从磁带读取(取回)到所述高速缓存中以响应应用请求时;d)还根据从磁带到高速缓存的当前数据时间环境来读取相应的邻近应用数据,以便预测随后要由所述应用执行的其他读取。
Description
技术领域
本发明涉及电子计算系统中的备份解决方案,具体地说,涉及用于管理在磁带存储介质上存储应用数据的方法和相应系统,其中在将所述应用数据写入磁带或从磁带读取所述应用数据之前,将所述应用数据缓存在由随机存取存储介质(优选为硬盘)表示的所谓的“虚拟磁带系统”中。
背景技术
在G.T.Kishi在2003年7月发表在IBM Journal of Research&Development的第4期第47卷的“The IBM Virtual Tape Server:MakingTape Controllers More Automatic”中说明了此类现有技术系统。参考图1,应用计算机10托管用户应用12,后者维护定期地写入磁带并不时从磁带中读出以便处理的数据。所使用的磁带是磁带17A到17M中的一个或多个磁带,在磁带库19中管理所述磁带。高速缓存服务器14具有由高速缓存控制器16控制的较大硬盘容量18。此盘高速缓存18用于在从磁带读取数据或将数据写入磁带之前缓存数据,以便提供对存储系统中的数据的高效访问。
“物理卷”一词用于表示磁带,而“逻辑卷”一词用于表示盘高速缓存18中的存储区域。存储管理器以将逻辑卷仿真为物理卷的方式透明地对用户应用运行。
上述现有技术文档公开了允许所谓的“卷堆叠”的存储子系统,其中自动迁移在盘高速缓存18中存储的多个逻辑卷,即,将其写入一个物理卷。在此现有技术中,逻辑卷的最大大小是比物理卷的容量小N倍的数字。N的范围为数百。
迁移的自动化是指逻辑卷一旦由用户应用写入,便立即从盘高速缓存预迁移到物理卷(磁带)。预迁移意味着在盘高速缓存18和磁带库19中的磁带上存在逻辑卷的副本。逻辑卷的迁移(逻辑卷仅位于物理卷上并从盘高速缓存消失)基于预定的策略。这些策略包括使用率(最近最少使用,LRU)和缓存偏好组。只要逻辑卷位于盘高速缓存内,就始终在该处访问逻辑卷,与从物理卷的数据检索时间相比,这允许快速访问。
对逻辑卷的数据读取访问-例如由用户应用中的安装操作触发-不要求任何手动干预,它是自动完成的。存在两种主要用例:第一种,逻辑卷处于盘高速缓存18内:则使用盘高速缓存中的数据执行I/O操作。安装操作非常快。第二种,已将逻辑卷迁移到物理卷并在之前从盘高速缓存18中删除了逻辑卷。则将整个逻辑卷从物理卷(磁带)读取到盘高速缓存18,并使用来自盘高速缓存的数据执行后续的I/O操作。
从物理卷读取逻辑卷的过程也称为取回(recall)。取回操作更耗时,并且仅当逻辑卷的大小与物理卷的容量相比很小时才容许。换句话说,当假定根据现有技术的物理卷大小为500GB或更多,而逻辑卷和物理卷之间存在1∶1的大小关系时,此设计并不适宜。在1∶1的关系时,取回时间将超过数小时,用户应用12将不得不为了数据请求而等待数小时。在根据现有技术的典型环境中,逻辑卷大小处于400MB与4GB之间,而物理卷大小是500GB。
此现有技术虚拟磁带仿真方法提供了另一种称为“快速就绪”安装的功能,其中用户应用在磁带起始处为写入操作指示“擦除”逻辑卷安装以便重新使用数据。将“快速就绪”安装的指示置于由用户应用12发送到高速缓存控制器的实际安装请求中。在这种情况下,不会从物理卷检索逻辑卷,而仅将逻辑卷分配到盘高速缓存中。
在IBM TS7510(中央虚拟磁带)中实现了其他现有技术方法。例如,在IBM RedBook SG24-7189-00,10-17内的“IBM Virtualization EngineTS7510:Tape Virtualization for Open Systems Servers”中可以找到更多详细信息。在此现有技术方法中,逻辑卷的大小等于物理卷的大小。因此,存在1∶1的大小关系。例如,IBM TS1120磁带的逻辑卷大小为500GB,其与此类TS1120磁带的物理卷容量完全相同。
通常可从FalconStor获得的虚拟磁带库产品使用一种将逻辑卷迁移到物理卷的方法,称为“自动磁带缓存”,其中虚拟磁带库(VTL)根据特定策略自动将数据从盘高速缓存18移动(迁移)到物理磁带盒17。相应地,它公开了将此位于物理卷的数据取回盘高速缓存的不同方法。这类似于上述针对IBM虚拟磁带服务器列举的方法。
此技术的问题在于,由于根据现有技术的磁带技术可以在单个磁带(TS1120)上存储500千兆字节(GB)的数据,将500GB的逻辑卷迁移到物理卷最多会花费2-4小时。将数据从磁带取回盘高速缓存中也是如此。虽然这种漫长的迁移时间已经带来了严重的时间问题,但是从磁带取回盘高速缓存问题更大,因为它花费同样长的时间,而用户只能等待,并且由于从磁带取回的数据是其工作主题,用户一般不能在同一时间内工作。
取回操作或者将整个逻辑卷从物理卷复制到盘高速缓存,或者允许应用直接访问磁带,但是是以只读的模式。将数据从物理卷复制到盘高速缓存18可以花费多达四个小时。允许应用直接访问磁带消除了虚拟化的优点,因为物理资源对应用可见。
简言之,现有技术的磁带缓存允许备份软件控制所有磁带,无论磁带是以虚拟形式存在还是磁带被迁移到其物理的对应部分。此虚拟磁带库根据所应用的虚拟磁带库高速缓存策略来自动将备份数据流重新引导到高速缓存(最新写入)或物理磁带(读取、附加数据的写入)。根据策略,可以在以下触发器组合的基础上将逻辑卷迁移到物理对应部分:磁带寿命、存储池容量阈值、备份结束、磁带已满以及在特定时间。
此现有技术设计将产生瓶颈,特别是在组合的主机操作期间,例如,并发读取、写入附加和最新写入,因为所有这些操作都需要访问物理磁带。但是实际上并非所有这些操作都需要访问物理资源。例如,任何一种写入操作都不能在一开始就使用物理磁带,因为这些操作可以定向到盘高速缓存。例如,上述虚拟磁带库可以具有256个逻辑设备,并仅有5个物理设备-使用磁带虚拟化的主要原因是为了减少所需物理设备的数量。虚拟化的目的是节约宝贵的物理资源并最有效地使用它们。根据现有技术的虚拟磁带库的设计在此将受到限制,要求具有最佳性能并在理论上利用与存在的逻辑设备数量相同的物理设备。这使得虚拟化的理念被舍弃。
因此,综上所述,所讨论的现有技术虚拟磁带仿真具有一些缺点。考虑虚拟化的目的是为了节约宝贵的物理资源并最有效地利用它们这一事实。讨论的第一种方法仅当逻辑卷的大小与其最终迁移到的物理卷相比非常小时才能足够良好地工作。其缺点在于用户应用12需要管理更多的逻辑卷。对于第二种讨论的方法,读取处理需要从物理磁带取回,这要么花费很长时间,要么将应用只读限制。两种方法皆未有效地部署物理驱动器,因为它们需要物理驱动器,而操作(例如,任何一种写入操作)实际上并不需要物理驱动器。
因此,本发明的目标是提供一种促进对所有数据的快速和不加限制的读取访问并更有效地管理物理资源的虚拟磁带系统管理方法。
发明内容
由这样的事实来实现提出的发明的优点:由用户应用请求的数据块在大多数情况下与依次连续写入的数据块相关。曾经以该顺序写入的特定多个数据块以后再次全部或几乎全部以该顺序被读取所请求的统计概率很高,因为它们可以属于由应用在特定时刻写入的一个文件。此类多个数据块还可以包括跨多个逻辑卷写入的数据块。所述方法支持从磁带是连续的I/O设备的事实获益。建议在适当时将数据访问定向到高速缓存。这消除了为某些操作访问物理驱动器的需要。更具体地说,优选地将所有种类的写入操作定向到高速缓存。
此外,本发明通过节约宝贵的物理资源并在适当时允许访问虚拟资源来对虚拟化的理念做出贡献。
根据其最广义的方面,本发明公开了一种用于管理将应用数据存储到磁带存储介质(优选为单卷磁带)的方法,其中在将所述应用数据写入磁带或从磁带读取所述应用数据之前,所述应用数据存储在随机存取高速缓存中,其中所述方法的特征在于控制高速缓存控制器来执行以下步骤:
a)将当前应用数据写入位于所述随机存取高速缓存中的逻辑卷时;
b)维护与邻近所述当前数据的应用数据(也在预定时间内将其写入所述高速缓存)有关的邻近高速缓存存储位置元数据(在大多数情况下是块地址),这称为自适应读取缓存;
c)当将所述当前数据从磁带读取(取回)到所述高速缓存中以响应应用请求时;
d)还根据从磁带到高速缓存的当前数据时间环境来读取相应的邻近应用数据,以便预测随后要由所述应用执行的其他读取。
自适应缓存指除了所请求的数据,还将邻近的数据复制到高速缓存,以便快速地为后续的读取请求服务。邻近的数据可以是相对于所请求的数据在之前或之后的数据。根据本发明的方法分析以下特定参数并得出最恰当的缓存策略,例如:
a)数据存取命令的类型,
b)所请求的块地址,
c)先前的数据存取命令以及
d)在先前操作中连续写入的数据块。
本发明克服了上述缺点。通过取回与读取请求相关的邻近数据,而不是整个逻辑卷或仅取回所请求的数据,允许逻辑卷和物理卷之间1∶1的关系并有助于快速自动访问数据,即使在将逻辑卷迁移到物理卷时也是如此。因此,本发明教导了针对I/O命令处理的自适应缓存的系统和方法。
自适应缓存允许对大型逻辑卷的数据的快速读取访问,而无需直接访问物理磁带或将整个逻辑卷从物理卷复制到高速缓存。自适应缓存允许应用访问存储在虚拟磁带系统中的数据,而不会带来严重的性能降低、只读限制或手动干预,无论数据是位于高速缓存还是在物理磁带上。
通过将写入操作定向到高速缓存而不从物理磁带取回数据或无需另外访问物理磁带,即使在写入操作向现有的逻辑卷添加数据的情况下,本发明也可以非常高效地利用物理磁带驱动器。
根据现有技术的另一个有利的特性是在高速缓存中保存已迁移到物理卷的逻辑卷的“存根”文件。所述存根文件包含一些元信息以及包括卷首和卷标的前n个数据块。整数n可以由用户调整,并且应至少包括包含逻辑卷的卷首和卷标的数据块。特定逻辑卷的存根文件允许从高速缓存满足对特定数据区域的读取请求。因此,包括在存根文件中的数据应至少包含卷首和卷标,因为此数据被更频繁地读取并且可以在写入操作之前。
附图说明
本发明通过实例的方式示出,并且不限于示出示意表示的附图的图形形状,这些附图是:
图1示出了现有技术系统环境的结构元素,包括磁带库、虚拟磁带系统和实现其数据由这些系统管理的用户应用的客户端计算机;
图2示出了在与图1类似的环境中实现根据本发明的方法的新型盘高速缓存控制器;
图3示出了由根据本发明的方法使用的基本形式的WRITE命令处理的控制流;
图4示出了由根据本发明的方法使用的高级形式的WRITE命令处理的控制流;
图5示出了由根据本发明的方法使用的自适应READ命令处理的控制流;
图6示出了由根据本发明的方法使用的LOCATE命令处理的控制流;
图7示出了存储在根据本发明的方法中使用的基本控制信息的表;
图8示出了根据本发明的将取回的数据量设置为最佳值的控制流;
图9示出了根据现有技术的顺序设备的SCSI WRITE命令的结构(仅为了更加清晰);
图10示出了根据现有技术的顺序设备的SCSI READ命令的结构(仅为了更加清晰);
图11示出了根据现有技术的顺序设备的SCSI LOCATE命令的结构(仅为了更加清晰);以及
图12示出了根据现有技术的顺序设备的SCSI SPACE命令的结构(仅为了更加清晰)。
具体实施方式
现在总体参考附图并具体参考图7,根据本发明的方法管理(即创建和维护)表700,表700包括元信息33、34、35、36。元信息33、34、35、36描述了其他相关信息存储在哪个存储位置,所述信息和存储在或已经存储在磁带上的当前数据集源于同一时间点。此类元信息的实例为数据块地址(以连续及时的序列写入)以及其他详细信息。
图7的表包含逻辑卷的卷ID 32以及依次写入的数据块地址33,后者的写入方式为只存储“起块”(即,起始信息)和“止块”(即,结束位置信息)。还存储106了连续块的时间戳34。
进而,还存储了每个卷的最后写入数据块的块地址35。最后写入块地址35由根据图5的写入命令处理(步骤506)以及根据图4的读取处理(步骤406)使用,以验证读取或写入请求没有超出最后写入块地址。
通常在本发明中,还在该表中跟踪写满逻辑卷32后立即由同一应用写入的逻辑卷37,这通过在字段37中指示其卷ID来完成。背景是用户应用可能写入数据并因此写满一个逻辑卷。随后,它将安装第二个新逻辑卷并继续将数据写到所述新逻辑卷中。写到第一个卷的结尾及新卷的起始处的数据可以是连续的。因此,存储有关跨逻辑卷的连续写入数据块33的信息很重要。由此每个逻辑卷可以具有最小值为0和最大值为1的下一个卷37。这允许标识可能包含关联的(即,内容相关的)数据的两个逻辑卷之间的关联。
在虚拟磁带系统中使用的每个逻辑卷可以在表700中具有至少一个表项。对于每个逻辑卷,表700中可能存在多个表项,表示多个连续块范围和时间戳。所有其他字段都包含同一个在给定时间对逻辑卷有效的表项。
在每个卷的每次写入操作(图5,步骤509)期间更新表700,其中累积写入块地址。例如,如果在给定时间t内,应用写入块0-9999,则表获取对应的表项(表700的字段33中的0-9999)。根据此优选实施例,时间范围包括逻辑卷的第一次写入操作与直到跟踪到至少1分钟的中断(其中没有发生任何写入操作)之间的时间。此中断指示在此时间内写入的数据属于一个整体,并因此源自同一近似应用上下文,例如,来自同一项目的数据、同一商店的销售、同一银行的账户数据等。
在备选实施例中,中断时间可以是用户可配置的参数。在此实施例中,用户可以根据其特定环境来调整连续块的时间安排并备份操作。
如果在此时间内写满了卷,且同一应用在60秒内安装了其他逻辑卷,则所述其他逻辑卷与写满的卷关联,并且在字段37“下一个逻辑卷”中跟踪其卷ID。
写入逻辑卷的应用可以由应用位于该处的服务器和适配器的WWPN和WWNN,或由分配给应用的逻辑库来动态地标识。全球端口名(WWPN)是存储区域网络(SAN)中每个端口的唯一标识符。因此,位于服务器的应用通过服务器的端口发出命令。此端口具有可用于标识所述应用的唯一标识符(WWPN)。全球节点名(WWNN)是应用位于该处的服务器的唯一标识符。因此,服务器的WWNN也可用于标识应用。WWNN和WWPN都是由应用发送到虚拟磁带系统的I/O命令的一部分。
逻辑库包括一组逻辑驱动器和逻辑卷。可以将逻辑库分配给应用,同时隐含地将逻辑卷分配给应用。
当重新使用卷时,将从表700删除所有表项。重写逻辑卷的特征是从卷起始位置开始的写入操作。
在备选实施例中,如果未从起始位置重写,而是在磁带介质区的“中间”某个位置重写,则删除表中的所有记录(包含写入操作开始位置以外的信息)。因此包含连续的块33和时间戳34。在此情况下,如果从起始位置重写卷,则删除所有先前的表项。
本方法优选地假定逻辑卷的卷首和卷标(所谓的“存根”,例如,4KB长)始终保存在高速缓存18中。这允许满足卷标操作而不安装关联的物理卷。许多现有技术的备份软件产品需要在它们实际将磁带写为“新”之前进行卷标验证过程。
接下来,参考图3、4、5和6,给出了根据本发明的系统的写入、读取、定位/分配空间、命令处理的流程图和相应说明。应当指出,相应的命令(写入、读取、定位/分配空间)由应用计算机10和通过网络连接到根据本发明的系统的相应用户应用12(图1)来发送。所述网络可以基于存储区域网络,例如,光线通道或因特网SCSI(小型机系统接口;iSCSI)。
图3中示出了使用图2中的盘高速缓存18的过程500的基本写入操作的优选控制流。图4示出了基本写入过程500的增强。图4中的过程可以替代图3中基本过程的步骤508。基本写入过程500始于502且控制前进到504,在此处接收WRITE命令。
图9显示了顺序设备的示例性SCSI WRITE(6)命令900。SCSI WRITE命令900包括要写入的块数902。起始块地址等同于磁带的位置。
在下一个步骤506中,判定起始块地址是否等于或小于卷的最后写入块。在此实施例的表700中跟踪卷的最后写入块地址35(图7)。
如果步骤506中的判定为否,则WRITE命令将在步骤510失败并在512结束过程。否则,在步骤508向盘高速缓存发出写入命令。步骤508也可以由在图4中示出的高级过程600替代。随后,在步骤509跟踪写入块地址。跟踪写入块可以最终导致更新表700的项33和34。过程在步骤512结束。
在图4中示出了高级写入操作的优选算法,其中引入了写入命令处理的高级逻辑。此逻辑考虑了逻辑卷可以位于其上的物理卷的状态。此逻辑在某些情况下促进直接对磁带的写入操作。图4中的过程可以替代图3的步骤508。
过程600始于602且控制前进到606,其中检查卷是否已经或仍然在盘高速缓存中;如果是(“Y”),则向盘高速缓存608发出写入,且过程600在612结束。如果对盘高速缓存中卷的测试606的回答是“否”(“N”),则过程将控制前进到下一步614,其中判定是否已经安装和定位了相应的物理卷。如果否(“N”),则向盘高速缓存608发出写入,且过程600在612结束。如果来自614的对是否已经安装和定位物理卷的回答为“是”(“Y”),则在方框616中示出的下一个判定检查是否仍有足够的物理驱动器(资源)可用;如果否(“N”),则向盘高速缓存608发出写入(这调用过程500),且过程600在612结束。如果来自测试616的回答为是(“Y”),则下一步610直接向物理磁带发出写入命令。最后,在步骤612到达过程600的终点612。步骤612可以最终在过程500(图3)的步骤509找到其延续,其中跟踪了连续写入的块。
在步骤509跟踪连续写入块的数目意味着过程累积在特定时间内写入的所有块地址。此时间是可变的且指从写入第一个块直到出现长于1分钟的暂停之间的时间。因此,过程600和500中的相应步骤保存写入块的临时表和表明接收写入命令时间的时间戳。如果在连续的写入命令之间存在优选大于1分钟的暂停,则为处理的逻辑卷项32将块地址范围的实际列表写入表700中的项33。还在表700的项34中更新最后写入块的时间戳。将最后写入块的块地址写入表700中的项35。如果已将块33的最后序列写入在前一个磁带之后立即安装的新磁带,则使用此新卷的ID来更新图7中的项37。
使用本发明的用于写入处理的方法,宝贵的物理资源得到了休息,因为将所有写入操作都定向到盘高速缓存。此外,本发明的方法通过存储在一个时间范围内由一个应用写入的数据块地址来使能快速读取处理,即使逻辑卷和物理卷为1∶1的关系。此存储的数据用于读取处理以使能从盘高速缓存的快速读取,这节约了宝贵的物理资源。
READ操作的优选控制流如下:图5示出了优选的READ操作的过程400的控制流,所述操作包括本发明的自适应读取缓存的发明特征。
通常,如果关联的逻辑卷位于盘高速缓存中,则从盘高速缓存执行READ操作。否则,如果关联的逻辑卷不在盘高速缓存中,则READ操作需要安装关联的物理卷,并且仅将所需的数据从物理卷读取到盘高速缓存。此操作以快速而高效的方式完成。从物理卷读取与逻辑卷有关的所需数据的过程也称为“取回”。读取过程400始于标号402且控制前进到404,在此接收读取命令。
图10显示了用于顺序设备的示例性现有技术SCSI READ(6)命令。SCSI READ命令1000定义了要读取的块数1002。将第一个块读取到该处的起始块地址等同于磁带的当前位置。
在步骤404,从READ命令1000标识起始块地址和要读取的块数1002。然后控制继续到步骤406,在此判定是否还有任何要读取的块地址“在后面”,即,与已为此逻辑卷写入的最后块108相比具有更大的块地址。为每个逻辑卷存储最后写入的块地址108,作为表700的项35中的写入处理的一部分。
如果步骤406中的判定为是(“Y”),则过程将前进到步骤428并将导致READ操作出现错误,因为读取命令试图读取最后写入块之后的块。控制前进到步骤412,过程在此结束。如果步骤416中的判定为否(“N”),则在步骤408判定逻辑卷的请求的块地址是否位于盘高速缓存中。如果是(“Y”),且所请求的数据位于盘高速缓存中,则在步骤410提供读取命令,意味着将读取命令所请求的数据发送到发出请求的应用。此后过程在步骤412结束。
如果步骤408中的判定为否(“N”),则需要从磁带的取回且过程将控制推进到步骤414来检查是否已安装了相应的物理卷。如果尚未安装卷(“N”),则过程继续前进到步骤416来安装物理卷,并继续到步骤418来定位由相应的ID标识的相应物理卷。如果在步骤414已安装了相应的物理卷,则在步骤424需要进行检查以测试是否已定位了物理卷。
如果步骤424中的判定为否(“N”),则过程将控制推进到步骤418,在此将物理卷定位到由包括在步骤404中接收的读取命令中的起始块地址指定的位置。过程从步骤418将控制推进到将在下文说明的步骤420。
否则,如果在步骤424已定位了物理卷,则过程前进到下一步420,在此执行检查以测试先前的命令是否为读取命令。为此,过程400保存为每个逻辑卷执行的最后10个命令的历史。如果先前的命令为读取命令,且步骤420中的回答为是(“Y”),则过程继续前进到步骤426,在此将两组连续的写入块读回(取回)到盘高速缓存。两组连续的块包括在两个连续的时间范围内写入到一个或两个(衍生)逻辑卷的所有数据块。
从针对给定逻辑卷32的表700的项33中检索有关连续写入块的信息。如果步骤420中的回答是否(“N”)-因为前一个命令不是读取命令,则在步骤422中仅将一组连续写入的块读回盘高速缓存。一组连续的块包括在一个时间范围内写入一个或两个(衍生)逻辑卷的所有数据块。由于高速缓存控制器维护有关应用数据的邻近高速缓存存储位置元信息的事实,可以执行步骤422和426。邻近高速缓存存储位置元信息指一组已在特定时间范围内写入的块地址。
图5中的写入过程500说明了根据本发明跟踪此邻近高速缓存存储位置元信息。将块地址顺序地写入磁带和从磁带顺序地读取块地址是有利的。
步骤422和426继续到步骤410,在此将在步骤404接收到的读取命令所请求的数据发送到应用。过程从步骤410将控制推进到步骤412,在此完成读取命令。这可以包括将结束状态发送到应用。过程在步骤412结束。
步骤426和步骤422之间的差别在于,在步骤426中将更多的数据读回到盘高速缓存,如果前一个命令是读取命令的话。根本原因是多个读取命令依次由应用执行,因此,过程400将更多数据读回到盘高速缓存中以便使用来自盘高速缓存的数据来为后续的读取命令服务。这更快和更高效,因为已安装和定位了物理卷。在磁带运转时读取许多连续的块比一次读取一个块更高效和更节约时间。一次读取一个块将导致磁带驱动器的起停模式,这会耗费更多时间和能量。
与步骤422相比,在步骤426中读取的多余数据量可以是用户可配置的。在给出的实例中,与步骤422相比,在步骤426中读取了两倍多的数据,这还可以更多,但优选地应不少于此。
显然,在步骤422和426中从盘高速缓存读取的起始块地址等于在步骤404中由读取命令给出的起始块地址。因此,起始块地址可以处于一组连续块33内,这存储在表700中。此外,如果由读取命令指定的要读取的块超过一组连续块,则从物理磁带读取包括所请求的块的另一(其他)组连续块。
定位操作的优选控制流如下。图6示出了根据本发明的优选实施例实现定位操作的过程300。此操作请求磁带驱动器将读/写头定位在磁带存储介质的特定位置处。
实现定位命令的新颖特征在于,可以根据磁带库19中物理磁带驱动器的可用性从物理卷取回或多或少的数据。通常,定位命令将不取回任何数据,而仅仅定位磁带。根据本发明的一个实施例,假定定位命令或分配空间命令之后的下一个命令是读取命令。因此,本发明将定位命令中包括的目标块以外的某些数据取回到盘高速缓存,以便可以快速地从盘高速缓存为后续的读取命令服务。基本上由写入数据的序列(连续块)来定义要取回的数据量。
过程始于步骤302和步骤303,在此,在高速缓存控制器中接收LOCATE或SPACE命令。两个命令都请求将逻辑定位在目标块地址处。LOCATE命令指定相对于磁带起始处的目标块地址,而SPACE命令指定相对于磁带当前位置(块地址)的目标地址。
图11示出了顺序设备的现有技术SCSI LOCATE(10)命令。LOCATE命令1100包括指定目标块地址的“逻辑对象标识符”字段1102。这是请求将磁带相对于磁带起始位置定位在该处的地址。
图12示出了顺序设备的现有技术SCSI SPACE(6)命令。SPACE命令1100包括指定要相对于磁带当前位置定位的块数的“计数”字段1202。注意,目标块地址也可以是磁带上的文件标记号。字段“代码”1201指定“计数”字段1202是指定了文件标记的计数还是要定位的块地址的计数。两个命令(SPACE和LOCATE)都导致磁带位置的更改。
过程从步骤303继续到步骤304,在此,检查与LOCATE或SPACE命令1100、1200给定的并从字段1102或1202得出的目标块关联的数据是否已在盘高速缓存中。如果步骤304中的判定为是(“Y”),则过程继续到下文说明的步骤306。如果为否(“N”),则控制流沿着路线到达步骤308以验证目标块是否没有在最后写入的块地址之后,这在表700中存储为给定逻辑卷32的项35。如果目标块位于最后有效块之后(“Y”),则控制器逻辑将在步骤310使定位操作出错并在步骤322结束过程。
如果在步骤308中判定目标块不在最后有效块之后(“N”),则控制前进到步骤326以安装相应的物理卷并在物理卷上定位目标块。
然后,过程将控制推进到步骤328以将一组连续写入块读回(取回)到盘高速缓存。一组连续块包括在一个时间范围写入一个或两个(衍生)逻辑卷的所有数据块。在步骤328完成取回操作之后,过程将控制推进到步骤306,在此,在盘高速缓存中定位(刚取回的)目标块数据。
根据备选实施例,可以在步骤306通过将在步骤303接收到的定位命令的完成消息发送到应用来完成定位操作。在优选实施例中,过程300继续为后续命令做出更多预测的目标。
过程从步骤306继续到步骤312,在此,判定接下来的两组连续写入块是否在盘高速缓存中。此判定基于存储在表700的项33中的信息。如果是(“Y”),则过程前进到结束步骤322。否则,过程将控制推进到步骤314,在此检查相应物理卷是否仍然或已经安装在物理设备中。
如果步骤314中的判定为是(“Y”),则控制器在步骤324中定位物理磁带并在步骤320将更多的两组连续写入数据读回(取回)盘高速缓存中,然后过程在步骤322结束。
如果步骤314中的判定为否(“N”),则过程继续到步骤316,在此检查此时是否有足够的物理安装资源可用。如果否(“N”),则过程将控制推进到结束步骤322。但是,如果步骤316中的判定为是(“Y”),则过程将控制推进到步骤318,在此安装和定位所控制的相应物理卷。
过程从步骤318将控制推进到步骤320,在此将更多的两组连续写入数据读回盘高速缓存中。两组连续的块包括在两个连续时间范围内写入到一个或两个(衍生)逻辑卷的所有数据块。
过程从步骤320将控制推进到结束步骤322,在此定位命令完成。这可以包括向应用发送相应的通知(参见图1、2中的标号12)。
显然,在步骤328和320中从盘高速缓存中读取的起始块地址等于在步骤303中定位命令给出的目标块地址。因此,起始块地址可以在一组连续块33内,这存储在表700中。
步骤328和步骤320之间的差别在于,在安装了物理卷的情况下,在步骤320中将更多数据读回到盘高速缓存。根本原因是从已安装和定位并且成流的物理卷读取(取回)更多的数据很快,所取回的数据可用于满足后续的读取操作(使用来自盘高速缓存的数据)。它通过取回比实际需要更多但可能是后续命令需要的数据来为高效地利用物理资源做出贡献。
本方法允许逻辑卷和物理卷之间1∶1的关系,因为它从物理卷将数据检索到盘高速缓存,这允许使用来自盘高速缓存的数据为后续的读取操作服务。此外,本方法通过在磁带驱动器处于流模式时取回比所需数据更多的数据来为节约物理磁带驱动器资源做出贡献。这避免了耗费时间和能量的磁带驱动器的启动和停止。
在本发明的读取处理的方法中,虚拟磁带系统中的逻辑卷的大小不会影响读取处理。即使逻辑卷和物理卷之间的关系为1∶1,读取处理也不会花费数个小时而仅花费几分钟,这在磁带环境下是可以接受的。这是因为本发明并非将整个逻辑卷取回盘高速缓存,而只是取回当前读取请求所需的数据加上邻近的数据,以使用来自盘高速缓存的数据满足后续的读取请求。因此,可以使用来自盘高速缓存的数据为后续的读取命令服务,并且因此可以快速执行所述命令。此外,后续的读取命令无需访问宝贵的物理资源。
定位过程300在步骤320、328以及读取过程400在步骤422、426中取回的数据量可能很多。如果此要检索的数据量超过了特定限制,则取回操作可能花费很长时间,致使用户应用要花很长时间来等待命令完成。因此,实现将取回的数据量设置为最大值的方法步骤是有用和适宜的。
优选地,由取回可以花费的最大时间量来定义最大量值。
图8中的过程800说明了此类过程。此过程代替了取回数据的步骤。过程800始于步骤802,它由定位过程300的步骤320、328或读取过程400的步骤422、426调用。控制流继续到步骤803,在此确定连续块的数量和数据量。数据量的计算方式为:(块数×块大小)。如果数据量超过步骤804中的预定阈值A1,则过程继续到步骤806,在此设置连续块的数目以匹配数据量A1。过程继续到下文说明的下一步808。如果步骤804中的判定得出数据量低于预定阈值A1,则过程继续到步骤808。在步骤808,将由该组连续块地址定址的数据从磁带取回到盘高速缓存。过程在步骤810结束。这可以将控制返回过程300和400中的相应步骤。
预定阈值A1定义了可以在合理的时间量内取回的最大数据量。取回可以花费的合理的时间量是用户可配置的参数。默认值应该设置为5分钟,因为5分钟是磁带环境中的典型超时值。根据最大允许时间Tmax和物理磁带驱动器的I/O速率Itape来计算阈值A1(等式1)。
A1=Itape×Tmax(等式1)
参数I/O速率Itape基于物理磁带驱动器技术以及到磁带驱动器的连通性。此参数是用户可以配置的。在备选实施例中,参数Itape由根据本发明的系统动态地测量。对I/O速率的此动态测量涉及测量在给定时间内从物理磁带驱动器读取的数据量。通过这种方法,根据本发明的系统采用每个驱动器的当前I/O速率来计算取回的最大数据量。
例如,如果当前磁带驱动器技术为允许持续I/O速率为40MB/s的LTO-3(开放线性磁带),则可以将预定阈值A1设置为12GB,因为以给定的I/O速率,可以在5分钟(300秒)内取回12GB(40M/s×300s=12.000MB)。
本发明可以以硬件、软件或硬件和软件的组合来实现。根据本发明的磁带存储管理工具可以以集中的方式在一个计算机系统中或以分布的方式(其中不同的元素跨若干互连的计算机系统分布)来实现。任何适合于执行此处所描述的方法的计算机系统或其他装置都是适合的。典型的硬件和软件的组合可以是具有计算机程序的通用计算机系统,当所述计算机程序被加载和执行时,将控制所述计算机系统以使得其执行此处描述的方法。
本发明还可以被嵌入计算机程序产品,其包括允许实现此处所述的方法的所有特征,并且当被加载到计算机系统中时,其能够执行这些方法。
当前上下文中的计算机程序装置或计算机程序是指一组指令的以任何语言、代码或符号表示的任何表达,旨在使具有信息处理能力的系统直接执行特定的功能,或者执行以下两者之一或全部后执行特定的功能:
a)转换为另一种语言、代码或符号;
b)以不同的材料形式再现。
Claims (12)
1.一种用于写入和读取应用数据的方法,其中在将所述应用数据写入磁带存储(17)或从磁带存储(17)读取所述应用数据之前,所述应用数据存储在随机存取高速缓存(18)中,并且其中所述应用由数据处理系统执行,
所述方法的特征在于以下步骤:
当将当前应用数据从所述随机存取高速缓存写入(504)所述磁带存储时,在所述随机存取高速缓存中创建所述当前应用数据的元数据(33、34、35、37)并在预定的时间限制期间维护(509)所述元数据;
当从所述磁带存储读取(404)存储的应用数据以响应应用请求时,还从所述磁带存储读取(422、426)其他应用数据,由此使用最终在所述随机存取高速缓存中找到的所述存储的应用数据的元数据来选择所述其他应用数据,并将所述存储的应用数据和所述其他应用数据写入所述随机存取高速缓存。
2.如权利要求1中所述的方法,其中所述预定的时间限制在1分钟的范围内。
3.如权利要求1或2中所述的方法,其中以逻辑卷的形式来组织所述随机存取高速缓存中的数据,并且其中所述磁带存储包括多个物理卷。
4.如权利要求2或3中所述的方法,其中在所述随机存取高速缓存中维护存根文件,所述存根文件包括逻辑卷是否已迁移到物理卷的指示。
5.如权利要求4中所述的方法,还包括以下步骤:
当所述应用发出向现有逻辑卷添加数据的写入操作时,在不从所述磁带存储取回数据的情况下操作所述随机存取高速缓存。
6.如权利要求5中所述的方法,其中在发出所述写入操作时,如果已安装和定位了物理卷,则在所述物理卷上执行所述写入操作。
7.如先前权利要求中的任一权利要求中所述的方法,其中作为定位命令的结果而将数据从物理卷(17)取回所述随机存取高速缓存,以便使用来自所述随机存取高速缓存的数据来预测后续的读取命令并为其服务。
8.如权利要求7中所述的方法,其中如果在发出所述定位命令时已安装和定位了所述物理卷,则取回更多的数据。
9.如权利要求3-8中的任一权利要求中所述的方法,其中在可以位于下一个逻辑卷的所述元信息中跟踪邻近的数据(37)。
10.如权利要求3-9中的任一权利要求中所述的方法,其中根据所述数据处理系统的全球端口名和全球节点名来将逻辑卷分配给所述应用。
11.如先前权利要求中的任一权利要求中所述的方法,其中根据预定的最大容许取回时间来动态地计算(803、804、806、808)要取回的最大数据量。
12.一种具有虚拟磁带仿真系统的磁带存储子系统,所述虚拟磁带仿真系统具有维护随机存取高速缓存的高速缓存控制器(16),所述高速缓存控制器包括用于执行根据权利要求1-11中的任一权利要求的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06118642 | 2006-08-09 | ||
EP06118642.5 | 2006-08-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101122888A true CN101122888A (zh) | 2008-02-13 |
Family
ID=39052198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200710139829XA Pending CN101122888A (zh) | 2006-08-09 | 2007-08-02 | 写入和读取应用数据的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080040539A1 (zh) |
CN (1) | CN101122888A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012109882A1 (zh) * | 2011-08-05 | 2012-08-23 | 华为技术有限公司 | 数据读取的方法和存储器控制器 |
CN103414588A (zh) * | 2013-08-12 | 2013-11-27 | 深圳市华为技术软件有限公司 | 一种vtl备份方法及vtl节点 |
CN103854675A (zh) * | 2012-11-30 | 2014-06-11 | 国际商业机器公司 | 带存储介质的伺服图案 |
CN104572860A (zh) * | 2014-12-17 | 2015-04-29 | 北京皮尔布莱尼软件有限公司 | 一种数据处理方法和系统 |
CN107728939A (zh) * | 2017-09-26 | 2018-02-23 | 郑州云海信息技术有限公司 | 基于Linux的IO调度方法、装置、设备及存储介质 |
CN107810491A (zh) * | 2015-05-27 | 2018-03-16 | 谷歌公司 | 存储器系统架构 |
CN111344681A (zh) * | 2017-11-28 | 2020-06-26 | 国际商业机器公司 | 在磁带驱动器上使用模拟读取的快速定位 |
WO2022029563A1 (en) * | 2020-08-04 | 2022-02-10 | International Business Machines Corporation | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009230367A (ja) * | 2008-03-21 | 2009-10-08 | Hitachi Ltd | 情報処理装置及び情報処理方法 |
US8255476B2 (en) * | 2009-03-30 | 2012-08-28 | International Business Machines Corporation | Automated tape drive sharing in a heterogeneous server and application environment |
US8656094B2 (en) | 2010-05-06 | 2014-02-18 | International Business Machines Corporation | Locating host data records on a physical stacked volume |
US9336149B2 (en) | 2010-05-06 | 2016-05-10 | International Business Machines Corporation | Partial volume access in a physical stacked volume |
US8533427B2 (en) | 2010-05-06 | 2013-09-10 | International Business Machines Corporation | Mapping locations of logical volume records on a physical stacked volume |
CN103917962A (zh) | 2011-11-18 | 2014-07-09 | 国际商业机器公司 | 读取存储在存储系统上的文件 |
US9152352B1 (en) * | 2012-09-14 | 2015-10-06 | Emc Corporation | Filemark cache to cache filemark metadata for virtual tapes |
US8935470B1 (en) | 2012-09-14 | 2015-01-13 | Emc Corporation | Pruning a filemark cache used to cache filemark metadata for virtual tapes |
CN110990302B (zh) * | 2019-11-22 | 2021-11-02 | 北京云宽志业网络技术有限公司 | 数据缓存方法、装置、电子设备及存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490654B2 (en) * | 1998-07-31 | 2002-12-03 | Hewlett-Packard Company | Method and apparatus for replacing cache lines in a cache memory |
KR100476781B1 (ko) * | 2001-12-28 | 2005-03-16 | 삼성전자주식회사 | 캐싱기법을 이용한 mpeg-4 시스템 단말의 제어방법 |
US6889302B2 (en) * | 2002-08-29 | 2005-05-03 | International Business Machines Corporation | Apparatus and method to maintain information in one or more virtual volume aggregates comprising a plurality of virtual volumes |
US7493450B2 (en) * | 2003-04-14 | 2009-02-17 | Hewlett-Packard Development Company, L.P. | Method of triggering read cache pre-fetch to increase host read throughput |
US7146467B2 (en) * | 2003-04-14 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Method of adaptive read cache pre-fetching to increase host read throughput |
US20050108486A1 (en) * | 2003-08-05 | 2005-05-19 | Miklos Sandorfi | Emulated storage system supporting instant volume restore |
US20050193235A1 (en) * | 2003-08-05 | 2005-09-01 | Miklos Sandorfi | Emulated storage system |
US7577807B2 (en) * | 2003-09-23 | 2009-08-18 | Symantec Operating Corporation | Methods and devices for restoring a portion of a data store |
US7444389B2 (en) * | 2003-12-09 | 2008-10-28 | Emc Corporation | Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time |
US7487288B2 (en) * | 2004-05-14 | 2009-02-03 | International Business Machines Corporation | Dynamic loading of virtual volume data in a virtual tape server |
US7313654B2 (en) * | 2004-10-27 | 2007-12-25 | Xiv Ltd | Method for differential discarding of cached data in distributed storage systems |
US7757052B2 (en) * | 2005-01-05 | 2010-07-13 | International Business Machines Corporation | Apparatus, system, and method for optimizing recall of logical volumes in a virtual tape server |
-
2007
- 2007-08-02 CN CNA200710139829XA patent/CN101122888A/zh active Pending
- 2007-08-02 US US11/832,805 patent/US20080040539A1/en not_active Abandoned
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012109882A1 (zh) * | 2011-08-05 | 2012-08-23 | 华为技术有限公司 | 数据读取的方法和存储器控制器 |
CN103854675A (zh) * | 2012-11-30 | 2014-06-11 | 国际商业机器公司 | 带存储介质的伺服图案 |
CN103414588A (zh) * | 2013-08-12 | 2013-11-27 | 深圳市华为技术软件有限公司 | 一种vtl备份方法及vtl节点 |
CN103414588B (zh) * | 2013-08-12 | 2017-02-08 | 华为技术有限公司 | 一种vtl备份方法及vtl节点 |
CN104572860A (zh) * | 2014-12-17 | 2015-04-29 | 北京皮尔布莱尼软件有限公司 | 一种数据处理方法和系统 |
CN107810491A (zh) * | 2015-05-27 | 2018-03-16 | 谷歌公司 | 存储器系统架构 |
CN107728939A (zh) * | 2017-09-26 | 2018-02-23 | 郑州云海信息技术有限公司 | 基于Linux的IO调度方法、装置、设备及存储介质 |
CN111344681A (zh) * | 2017-11-28 | 2020-06-26 | 国际商业机器公司 | 在磁带驱动器上使用模拟读取的快速定位 |
CN111344681B (zh) * | 2017-11-28 | 2023-10-27 | 国际商业机器公司 | 在磁带驱动器上使用模拟读取的快速定位 |
WO2022029563A1 (en) * | 2020-08-04 | 2022-02-10 | International Business Machines Corporation | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
US11294812B2 (en) | 2020-08-04 | 2022-04-05 | International Business Machines Corporation | Obtaining cache resources for expected writes to tracks in a write set after the cache resources were released for the tracks in the write set |
GB2611502A (en) * | 2020-08-04 | 2023-04-05 | Ibm | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
GB2611502B (en) * | 2020-08-04 | 2023-09-13 | Ibm | Obtaining cache resources for expected writes to tracks in write set after the cache resources were released for the tracks in the write set |
Also Published As
Publication number | Publication date |
---|---|
US20080040539A1 (en) | 2008-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101122888A (zh) | 写入和读取应用数据的方法和系统 | |
US5896548A (en) | Data transferring system having foreground and background modes and upon detecting significant pattern of access in foreground mode to change background mode control parameters | |
JP5186367B2 (ja) | メモリ・マイグレーションのシステムおよび方法 | |
US9141529B2 (en) | Methods and apparatus for providing acceleration of virtual machines in virtual environments | |
US8214606B2 (en) | Storage system and control method thereof | |
KR101246982B1 (ko) | 시스템 성능을 향상시키기 위한 외장형 메모리 장치의 이용 | |
JP5271424B2 (ja) | ダイナミックストレージ階層化によるオンラインデータ配置をボリュームに提供するためのアロケートオンライトのスナップショット機構 | |
CN100362462C (zh) | 磁盘阵列缓存的管理方法 | |
CN102708060B (zh) | 一种镜像文件访问方法、装置及系统 | |
US8301852B2 (en) | Virtual storage migration technique to minimize spinning disks | |
CN100590583C (zh) | 写入和读取应用数据的方法和系统 | |
JPH11282631A (ja) | 入出力制御装置および入出力制御方法 | |
US9009407B2 (en) | System and method for performing system memory save in tiered/cached storage | |
US20100100680A1 (en) | Storage apparatus and cache control method | |
US20130262811A1 (en) | Method and apparatus of memory management by storage system | |
US20180349287A1 (en) | Persistent Storage Device Information Cache | |
US20220066786A1 (en) | Pre-scanned data for optimized boot | |
US10719118B2 (en) | Power level management in a data storage system | |
CN103617133A (zh) | 一种Windows系统中虚拟内存压缩方法和装置 | |
US7676644B2 (en) | Data processing system, storage apparatus and management console | |
JP2009145967A (ja) | バックアップ装置及び方法並びにファイル読出し装置 | |
JP2000330729A (ja) | オンラインバックアップ機能を持つディスクアレイシステム | |
CN107832097A (zh) | 数据加载方法及装置 | |
CN106970830A (zh) | 一种分布式虚拟机的存储控制方法、及虚拟机 | |
US11132128B2 (en) | Systems and methods for data placement in container-based storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080213 |