读取存储在存储系统上的文件的制作方法
【专利摘要】本发明(图6)针对一种用于读取存储在存储系统上的文件的方法。存储系统包括:根据预定的数据格式存储第一文件集合的存储装置(104)以及存储第二文件集合的高速缓存存储器(106),第二文件集合是第一文件集合的子集。存储系统被配置成允许一个或多个远程系统(110、120)读取存储在存储装置上和/或在高速缓存存储器上的文件。该方法包括:-从一个或多个远程系统接收(602)用于读取文件序列的至少一个读取请求;-在该序列的文件当中确定(604)一个或多个高速缓存的文件是否已经被存储在高速缓存存储器中,以及一个或多个其余文件是否还没有被存储在高速缓存存储器中;-考虑到根据所述预定的数据格式在存储系统上存储的所述一个或多个其余文件的给定位置,在其余文件内确定(606)应当根据其读取在存储系统上所述其余文件的顺序;-根据所述顺序读取(608)所述存储系统上的所述一个或多个其余文件,并且将所述其余文件存储在高速缓存存储器上。
【专利说明】读取存储在存储系统上的文件
【技术领域】
[0001]本发明涉及用于存储系统的高速缓存架构的领域,并且具体地涉及用于读取存储系统上的文件的方法。
【背景技术】
[0002]尽管HDD (硬盘驱动)的技术在过去几年有显著的进步,但是磁带系统构成当前分层存储基础设施的组成部分。磁带技术提供了若干重要的优点,包括低成本、数据的长期存储以及用于备份和灾难恢复的目的、节能、安全性、寿命和可靠性。
[0003]一旦数据已经被记录在磁带系统中,介质就是无源的。这意味着,其仅位于机架中并且不需要功率。与类似的基于盘的系统相比,基于磁带的归档少消耗大约290倍的功率。在安全方面,一旦数据已经被记录并且从访问系统移除盒带盒带(cartridge),数据就无法访问,直到盒带被重新安装在有源系统中。安全性还通过驱动级加密来增强,这在线性磁带开放4代驱动(LT0-4)中被引入,并且在企业级磁带驱动中也是标准。磁带介质具有30多年的寿命;然而,因为磁带硬件的快速发展以及与迁移到更高容量的盒带相关联的成本节约而导致这很少作为优点。在可靠性方面,LT0-4磁带具有比SAS(串行附连SCSI)HDD好至少一个数量级的误比特率。此外,磁带介质是可移除的并且是可互换的事实意味着,对比HDD,磁带驱动的机械故障将不会导致数据丢失,因为盒带可以简单地被安装在另一驱动上。
[0004]所有的上述优点都有贡献于磁带系统的主要纯粹的优点,即成本和可靠性。盘和磁带之间的成本节约的估计范围是3至大于20的因子。
[0005]硬盘提供对数据的随机访问,并且通常包含由文件系统管理的文件索引。这些文件可以借助于使用各种操作系统和应用的应用程序接口(API)的标准集合来访问。相反,磁带是通常使用称为“叠瓦(shingling) ”的技术来以线性序列的方式进行写入,这提供了向后写入兼容性,但是也意味着,新的数据仅可以被附加在末尾,并且先前写入的区域仅在整个盒带被回收并且重新写入时,才可以被回收。在传统的磁带系统中,在给定的盒带上写入的文件的索引通常仅保存在由诸如专用备份应用之类的应用所管理的外部数据库中。需要访问外部数据库以取回数据使得与诸如HDD或USB(通用串行总线)驱动的替代存储方法相比不那么便携和可访问。
[0006]为了解决这些缺点,当前在LT0-5磁带驱动系统中已经引入了称为线性磁带文件系统(LTFS)的新文件系统,以支持使用标准和类似的系统工具和接口来高效地访问磁带。通过利用在新的LT0-5格式中所支持的双分区功能来实现LTFS。所谓的索引分区用于写入索引,并且第二、大得多的分区用于数据本身。索引分区用于文件系统的目录,而数据分区用于存储文件系统中的实际用户的文件。将索引放置在单独分区中是有利的,因为其可以在不影响实际数据的情况下被改写。LTFS向用户暴露类似POSIX的文件系统接口,管理索引分区中的文件系统索引,并且将数据存储在数据分区中。由LTFS软件表示的文件系统使得在文件实际上位于磁带上的同时以目录列表在桌面上示出文件和目录。文件系统用户可以“拖放”文件至磁带或者从磁带“拖放”文件,并且可以运行为盘系统开发的应用。在库模式中,库中的所有卷的内容可以在没有安装独立的盒带的情况下被列出和搜索。所有这些功能有助于减少磁带、文件管理和归档成本,并且消除对中间件层的依赖。因此,减少了所存储的每千兆字节(GB)的成本。此外,磁带变得跨平台便携(LTFS可用于Linux(商标)、苹果Mac OS X(商标)、微软Windows (商标)),支持和促进平台之间的数据共享。这些特征支持对磁带的全新的使用情况,诸如视频归档、医疗成像等。考虑磁带优于其他存储解决方案的成本优点,对于磁带盒带容量和每GB成本的持续扩展所表现出的潜力以及诸如LTFS的发展所提供的磁带的增加的实用性,磁带似乎将对在扩充针对存档数据存储解决方案的市场产生重要的影响。
[0007]然而,即使通过LTFS,文件也以顺序方式存储在磁带上,这产生了在诸如读取和写入的I/o操作期间的不可忽略的较长的访问时间。
[0008]引用列表
[0009]专利文献
[0010]PTLl:US2008/0040539A1
[0011]PTL2:US2010/0211731A1
[0012]PTL3:US7864479B2
[0013]PTL4:US5829046
[0014]PTL5:US7644204B2
[0015]PTL6:US6711580B2
[0016]非专利文献
[0017]NPLl:"Implementing an Automated Digital Video Archive Based on theVideo Edition of XenData Software", XenData White Paper, 2007 年 4 月
[0018]NPL2:^SGI(Trademark)COPAN(Trademark)Virtual Tape Library_300T/TX",
[0019]NPL3: "Driving to Best Practices in Archiving", L.DuBois, 2007 年 3 月,第 6页
[0020]NPL4:"The Case for Massive Arrays of Idle Disks", D.Colarelli, D.Grunwaldand M.Neufeld, Dept, of Computer Science, Univ.0f Colorado, Boulder, 2002 年 I 月 7
曰,第3页
[0021]NPL5:"Optimizing virtual tape performance:1mproving efficiency withdisk storage systems",D.Cuddihy, ATTO Technology Inc., Embedded SoftwareGroup, 2007 年 6 月,第 6 页
【发明内容】
[0022]问题的解决方案
[0023]根据第一方面,本发明被实现为一种用于读取存储在存储系统上的文件的方法,其中该存储系统包括:存储装置,根据预定的数据格式存储第一文件集合;以及高速缓存存储器,存储第二文件集合,第二文件集合是第一文件集合的子集,存储系统被配置成允许一个或多个远程系统来读取存储在存储装置上和/或在高速缓存存储器上的文件,该方法包括:[0024]-从一个或多个远程系统接收用于读取文件序列的至少一个读取请求;
[0025]-在该序列的文件当中确定一个或多个被高速缓存的文件是否已经被存储在高速缓存存储器中,以及一个或多个其余文件是否还没有被存储在高速缓存存储器中;
[0026]-考虑到根据所述预定的数据格式在存储系统上存储的所述一个或多个其余文件的给定位置,在所述其余文件内确定应当根据其在存储系统上读取所述其余文件的顺序;
[0027]-根据所述顺序读取所述存储系统上的所述一个或多个其余文件,并且将所述其余文件存储在高速缓存存储器上。
[0028]在实施例中,该方法可以包括以下特征中的一个或多个:
[0029]-存储系统包括用作高速缓存存储器的非易失性存储器;
[0030]-用作高速缓存存储器的非易失性存储器包括硬盘和/或固态驱动的阵列;
[0031]-硬盘和/或固态驱动的阵列被组织成单个逻辑地址空间;
[0032]-高速缓存存储器是文件级高速缓存存储器;
[0033]-高速缓存存储器是块级高速缓存存储器。
[0034]-存储装置包括根据线性磁带文件系统数据格式存储第一文件集合的至少一个磁带介质,并且其中根据作为线性磁带文件系统数据格式的元数据的一部分的、每个其余文件的开始块来确定存储在存储系统上的所述其余文件的位置;
[0035]-高速缓存存储器包括使用先入先出策略管理来管理的第一区域和使用最近最少使用策略管理来管理的第二区域,第一区域和第二区域适用于根据用于高速缓存容量管理的规则集合来存储所述第二文件集合;
[0036]-规则集合至少包括下述规则:
[0037]i)如果第一区域满,则第二集合的最早的文件被复制到存储装置,并且从第一区域排除;
[0038]ii)如果第一区域满并且第二区域具有空闲容量,则第一区域获得第二区域的空闲容量的给定百分比;
[0039]iii)如果第二区域满,则具有最少访问次数和最早的最后访问时间的第二集合的文件被复制到存储装置并且从第二区域排除;
[0040]iv)如果第二区域满并且第一区域具有空闲容量,则第二区域获得第一区域的可用容量的给定百分比。
[0041]根据另一方面,本发明被实现为一种存储在计算机可读介质上的计算机程序,用于读取存储在存储系统上的文件,其包括代码装置,用于使得计算机进行根据本发明的方法的步骤。
[0042]在实施例中,计算机程序可以包括下述特征中的一个或多个:
[0043]-代码装置,用于管理作为线性磁带文件系统的存储装置,并且其中,存储装置包括具有使用线性磁带文件系统管理的至少一个磁带介质的独立磁带库;
[0044]-计算机程序是用户空间程序组件。
[0045]根据另一个方面,本发明被实现为一种存储系统,包括:
[0046]-存储装置,根据预定的数据格式存储第一文件集合;
[0047]-高速缓存存储器,存储第二文件集合,第二文件集合是第一文件集合的子集;
[0048]-至少一个接口,用于从一个或多个远程系统接收读取和写入请求;[0049]-处理单元,用于执行根据本发明的计算机程序的指令。
[0050]现在将通过非限制性的方式并且参考附图来描述实现本发明的过程和处理。
【专利附图】
【附图说明】
[0051]图1是根据本发明由其他系统远程访问存储系统的架构示图的示例。
[0052]图2是图1上描绘的存储系统的数据路径视图的示例。
[0053]图3是图1上描绘的存储系统的数据路径视图的另一示例。
[0054]图4是图1-图3上描绘的存储系统的高速缓存的示例。
[0055]图5a_图5c是根据预定的数据格式存储在存储系统上的其余文件的位置的示例。
[0056]图6是描述本发明的实施例的流程图的示例。
【具体实施方式】
[0057]本发明描述了用于读取存储在存储系统上的文件的方法。存储系统是指保留数字数据的计算机组件和记录介质。存储系统包括:根据预定的数据格式存储第一文件集合的存储装置。数据格式是指用于编码数据以存储在计算机文件系统中的存储介质上的格式。存储系统还包括存储第二文件集合的高速缓存存储器,第二文件集合是第一文件集合的子集。高速缓存存储器是存储数据使得可以更快地服务对该数据的未来请求的组件。存储系统被配置成允许一个或多个远程系统读取存储在存储装置和/或高速缓存存储器上的文件。远程系统通常是指位于存储系统的远程位置的任何系统或应用。用于读取存储在存储系统上的文件的方法包括:从一个或多个远程系统接收用于读取文件序列的至少一个读取请求。文件序列是指良好排序的有限的文件集合,通常以某个方式彼此相关。该方法包括在该序列的文件当中确定一个或多个被高速缓存的文件是否已经被存储在高速缓存存储器上、以及一个或多个其余文件是否还没有被存储在高速缓存存储器上。该方法包括:考虑到根据所述预定的数据格式在存储系统上存储的所述一个或多个其余文件的给定位置,在所述其余文件内确定应当根据其在存储系统上读取所述其余文件的顺序。存储系统上的文件的位置是指文件在存储系统上的组织或地方。文件的定位可以通过物理地或虚拟地划分数据空间来执行。该方法包括根据所述顺序来读取在存储系统上的所述一个或多个其余文件,并且将其余文件存储在高速缓存存储器上。
[0058]因此,所提出的发明的重点在于,不仅在访问时延方面,而且在吞吐量和空间利用率方面,改善诸如磁带存储系统(例如,基于LTFS的磁带存储系统)之类的存储系统的性能的技术。为此,存储系统使用存储装置以及用于存储装置上的高速缓存层的高速缓存存储器。存储系统以允许文件的高速缓存预抓取的优化读取来读取所请求的文件。因此,根据本发明的方法不仅提供了对最近和或频繁高速缓存的文件的更快访问,而且还被设计为加快诸如备份的或者对存储在存储装置上的文件的恢复和迁移操作之类的用例。
[0059]所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0060]可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0061]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0062]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0063]可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0064]下面将参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0065]也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其他可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
[0066]计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程数据处理装置或其他设备上执行可操作步骤序列,以产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个框中所规定的功能/动作的处理。
[0067]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0068]图1是根据本发明的实施例由其他系统110、120远程访问的存储系统100的架构视图。存储系统还可以被称为磁带设备系统。根据本发明的实施例的存储系统100包括至少一个计算机处理单元(CPU) 1000或处理器以及主存储器1002,通常是动态随机存取存储器(DRAM)。CPU和DRAM连接到总线1004。总线可以连接到显示器控制器1006,显示器控制器1006被连接到诸如IXD监视器1008的显示器。显示器可以用于显示关于存储系统100的信息。总线还可以通过键盘/鼠标控制器或USB控制器1010连接到键盘1012和鼠标1014。总线还可以连接到符合例如以太网Ethernet (注册商标)协议的通信控制器1014。通信控制器用于物理地将计算机系统与网络连接,例如网络130。该总线还通过诸如IDE或SATA或SCSI控制器的设备控制器1018连接到存储设备,如硬盘104或DVD1020。
[0069]存储系统100还包括根据预定的数据格式存储第一文件集合的存储装置104。例如,存储装置可以是顺序访问的介质,诸如独立的磁带驱动(或磁带库),其可以支持多个磁带驱动或磁头。独立的磁带驱动用于在一个或多个磁带盒带上对线性磁带进行操作。存储在磁带驱动上的数据的预定的数据格式可以使用保持文件内容数据和关联的文件元数据的LTFS格式的数据格式。因此,存储在磁带驱动上并且使用LTFS格式写入的数据可以与能够理解LTFS格式的其他系统110、120进行交换。
[0070]存储系统100还包括存储第二文件集合的高速缓存存储器,该第二文件集合是第一文件集合的子集。高速缓存存储器优化存储系统的性能、开发工作负载的时间和空间局部性。高速缓存存储器是读取高速缓存。可选地,高速缓存存储器还可以是写入高速缓存。读取高速缓存通过透明地存储数据使得可以更快地服务对该数据的未来请求来改善性能。如果请求的数据被包含在高速缓存中,即,如果高速缓存命中发生,则该请求可以通过简单地读取高速缓存来服务,这比从后端存储设备进行读取更快。否则,高速缓存未命中发生,并且必须从较慢的后端存储设备抓取数据。
[0071]在实践中,该存储系统包括用作高速缓存存储器的非易失性存储器。有利地,非易失性存储器允许在存储系统被关闭时保留存储在其上的文件。作为高速缓存存储器的非易失性存储器可以包括硬盘驱动和或固态驱动的阵列。大容量HDD和/或SSD的阵列可以以RAID(独立盘冗余阵列)方案来配置。高速缓存存储器控制器可以向服务器的操作系统暴露单个逻辑卷,从而使得更容易管理高速缓存存储器。而且,诸如但不限于ext3、ext4或NTFS的常规的盘文件系统被安装在该逻辑卷上,并且用于对盘阵列的所有I/O操作。高速缓存存储器,即,整个盘阵列,专用于高速缓存并且不与系统的其他组件共享。
[0072]高速缓存存储器可以是文件级高速缓存存储器。替代地,高速缓存存储器可以是块级高速缓存存储器。在该情况下,阵列的HDD和/或SSD用作不具有文件系统的原始设备,然后创建卷并且操作系统连接到这些卷,并且将其用作单独的硬驱动。块级高速缓存存储器可用于几乎任何类型的应用,包括文件存储、数据库存储、虚拟机文件系统(VMFS)卷
坐寸ο
[0073]通常,存储系统包括服务器102,服务器102包括CPU和DRAM、总线、显示器控制器、通信控制器。服务器102附连到可以运行LTFS软件的存储装置104,并且经由标准的文件系统接口暴露底层磁带容量。服务器102还直接附连到高速缓存存储器106。服务器运行操作系统,诸如但不限于,Linux(商标)操作系统。服务器连接到网络130,并且从而远程网络用户120和应用130可以安装存储装置(例如LTFS文件系统),并且直接存储数据或从存储装置中取回数据。
[0074]因此,存储系统包括一个或多个存储设备(例如,HDD/SSD阵列),其用作可以在逻辑上配置成单个逻辑地址空间的高速缓存存储器以及可以包括并行操作的一个或多个磁带驱动的存储装置,如图1中所示。存储系统还包括一个或多个存储设备,诸如磁带介质。磁带库通常使用LTFS文件系统来管理。应当理解,可以使用其他的文件系统。LTFS文件系统在磁带库和HDD阵列直接附连到的服务器102中运行。高速缓存存储器用作用于LTFS文件系统的高速缓存,有利地提供对存储在存储装置上的数据的快速随机访问。
[0075]现在参考图6,现在描绘描述本发明的实施例的流程图。
[0076]在步骤600-602,监视存储系统是否从一个或多个远程系统接收到用于读取文件序列的至少一个读取请求。换言之,作出读取请求是否匹配特定模式的决定。该模式可能通过从目录顺序读取的文件来表示。如图1-图3所示,远程系统可以是应用。存储系统通过其通信控制器和适当的接口 23、24、25、26、27来接收该请求。
[0077]在步骤604,在文件序列的文件当中确定一个或多个被高速缓存的文件是否已经被存储在高速缓存存储器上,以及一个或多个其余文件是否还没有存储在高速缓存存储器上。换言之,确定请求的文件当中哪些文件位于高速缓存上以及哪些位于存储装置上。这等于说,确定之前已经匹配的所有文件的名称;否则说,文件被存储在高速缓存存储器上。
[0078]接下来,在步骤610,读取存储在高速缓存存储器上的文件。这提供了对最近/经常高速缓存的文件的更快访问。
[0079]然后,在步骤606,在一个或多个其余文件内确定应当根据其在存储系统上读取其余文件的顺序。因此,执行对存储在存储装置上的文件序列中所请求的文件的排序。否则,文件以某个顺序来排列。考虑到根据其预定的数据格式而存储在存储系统上的其余文件的位置来执行对这些文件的排序。
[0080]应当理解,步骤610和606可以同时执行。
[0081]在诸如由LTFS管理的独立磁带驱动的顺序访问介质中,通过LTFS格式来使得能够根据其在磁带上的位置对文件的排序,LTFS格式包括作为LTFS元数据的一部分的、每个文件的开始块,其可通过虚拟扩展属性而可用于用户。
[0082]现在参考图5a_图5c,示出了根据预定的数据格式存储在存储系统上的文件的位置的示例。具体地,图5a-图5c示出了布置在诸如由LTFS管理的独立磁带驱动(或磁带库)的顺序访问介质中的文件。
[0083]存储系统从一个或多个远程系统获取读取和写入命令。远程系统可以进行对存储在目录或子目录上的所有文件的读取。然而,这些文件可能没有被顺序地布置在磁带上,因为一些文件可能已经随时间而改变,并且可能驻留在后续的位置中。获得修改或在LTFS盒带上覆写的文件被附接在磁带上,而不是在现场被修改。在图5a-图5c中示出了上述情况。
[0084]图5a示出了附属于磁带上的一个目录的文件的位置。因为这些文件已经按顺序被备份,所以文件在磁带上按顺序排列。
[0085]图5b示出了文件I和文件2已经改变,因此被写入磁带的末尾。文件I现在被称为文件I’,并且文件2现在被称为文件2’。
[0086]图5c示出了文件3已经改变并且在其备份之前其他文件已经备份。改变的文件3被称为文件3’。图5c中明确了文件1-文件5的最新版本的恢复可能需要使磁带前后移动多次,因为文件3’在磁带的末尾处,并且文件I’和文件2’位于文件1-文件5和文件3’之间。文件I’和文件2’因而在中间某个地方,而文件4和文件5朝着磁带的开始。
[0087]在图5c中,文件可以根据其在由LTFS管理的磁带上的位置或地点来排序:朝着磁带的开始的文件4和文件5,之后是在磁带中间的文件I’和文件2’,并且最后是位于磁带末尾的文件,文件3’。
[0088]返回参考图6,在步骤608,根据排序步骤606来读取存储系统上的一个或多个其余文件。这些其余文件还被存储在高速缓存存储器上,即,文件从存储装置复制到高速缓存存储器。可选地,文件可以以与其被读取的相同的顺序被复制在存储装置上。应当理解,存储在存储装置上的文件的读取和复制可以同时执行。
[0089]替代地,在步骤608,首先根据排序步骤606来将其余文件存储在高速缓存存储器上,然后从高速缓存存储器读取。在该情况下,读取也可以根据排序步骤来执行。
[0090]因此,根据本发明的方法提供了将存储在存储装置上的文件预抓取到高速缓存存储器,从而允许加速常见的磁带特定的用例,诸如备份/恢复和迁移。实际上,根据本发明,备份/恢复和迁移的这些操作需要读取存储在高速缓存存储器上的文件序列。通常,将存储在存储装置上的文件预抓取到高速缓存存储器可以适用于存储在存储装置的目录(或子目录)中的所有文件。因此,本发明的方法允许将存储在目录中的所有文件预抓取到高速缓存存储器。
[0091]应当理解,根据本发明的方法不仅适用于存储在一个目录中的所有文件。其可以适用于从存储装置读取多个文件的任何情况,而不论文件是否被存储在存储装置的单个存储设备上。例如,LTFS存储设备可以包括一个磁带或多个磁带。在该情况下,文件序列中的文件根据其所存储位于的磁带并且根据其在磁带上的位置来排序。结果,以分类的顺序读取每个磁带上的文件,并且以分类的顺序读取磁带。
[0092]现在参考图2,示出了诸如应用和客户端的远程系统与如图1所示的存储系统之间的数据路径视图的示例。存储系统100被诸如应用110或客户端120的系统例如经由网络来远程地访问。其他系统可能是文件系统服务器,诸如GPFS(通用并行文件系统)集群或NAS(网络附接存储)文件管理器。
[0093]远程系统可以通过使用网络文件系统安装存储系统或者通过使用FTP (文件传输协议)协议或SSH(安全外壳)协议从其读取数据和向其写入数据来访问存储系统。应当理解,任何其他协议可以用于远程访问存储系统100。
[0094]存储系统100提供如图2中所示的适当接口 23、24、25、26、27,使得存储系统可以用于适应多个应用Iio的存储需要。在图2中,存储系统包括作为使用LTFS软件22管理的存储装置的多个磁带设备。以下是用于管理存储在磁带驱动上的文件的应用的示例,包括但不限于:
[0095]I)通过网络连接到存储系统的GPFS (或其他)文件系统的备份。整个GPFS文件系统或单个目录或文件集合可以备份到存储系统中。可以进行完整备份或增量备份,并且可以在相同或不同的磁带盒带上支持多个版本。此外,可以在同一设备上支持源自相同或不同文件系统/集群的多个备份。有利地,LTFS使得备份能够在磁带盒带上被自包含和自描述,使用户不需要部署和维护TSM服务器。此外,GPFS的文件属性可以被保存在LTFS上,并且还对LTFS实施一些修改。在以下步骤中概括了可以通过GPFS节点或通过磁带设备本身来编排的备份处理:
[0096]a.在集群中运行的GPFS策略识别从上次备份开始已经改变的文件;
[0097]b.该策略调用外部处理来执行备份;
[0098]c.备份处理将文件复制到保存GPFS文件属性的设备;
[0099]d.复制操作可以通过SSH或使用NFS/CIFS安装来进行;
[0100]e.当该处理完成时,磁带盒带可以被移除并且被置入库中或移动到任何其他系统。
[0101]文件可以通过仅读取在相同或任何其他磁带系统中的磁带并且利用由LTFS提供的文件系统接口来从备份中恢复,这允许保持与GPFS中相同的名称空间。这意味着已经从文件管理器备份的任何文件可以具有允许容易恢复的LTFS中的名称(路径和文件)。
[0102]2)从GPFS(或其他)文件系统的迁移文件,即使用磁带存储作为存储层级中的层。用户以用户指定的GPFS策略的形式来指定针对文件或目录的迁移准则,并且系统通过将满足前述指定准则的文件迁移到磁带设备来无缝地将数据置于磁带上。对于迁移到磁带设备的每个文件,该文件在GPFS中由文件存根(占位符)来替换。因此,文件保留在GPFS命名空间中,并且可以作为普通文件由用户和现有应用来访问。响应于访问迁移的文件,从磁带设备调回该文件。
[0103]3)与NAS文件管理器(例如,NetApp文件管理器)整合以将较早的快照从文件管理器复制到LTFS并且从文件管理器中删除较早的快照。优点在于通常需要更多的存储容量的较早的快照被存储在LTFS上并可以通过LTFS文件系统接口来无缝地访问,LTFS文件系统接口可以是NAS接口,诸如也由NAS文件管理器提供的NFS或CIFS。
[0104]4)在介质管理(MAM)中,介质通常包含相同数据流的多个版本。常见的实践是具有音频-视频流的高清版本以及所谓的“代理”,“代理”是相同内容的低分辨率版本。这将非常有利于高速缓存与代理有关的文件,因为其被更频繁地使用来编辑/剪辑内容以产生剪辑列表,该剪辑列表以后将应用于高清原始流以产生播放流或直接播放。
[0105]5)用于远程管理存储系统的图形用户界面,包括但不限于,对所存储的文件的介质管理、版本、库、格式检查和恢复。
[0106]根据本发明的用于读取存储在存储系统上的文件的方法可以被实现为在服务器102上运行的计算机程序并且由服务器执行。在实践中,该方法以适用于管理存储装置的代码部分来实现。例如并且参考图2,该方法可以在适用于管理磁带驱动104的LTFS软件的LTFS代码内实现。
[0107]替代地,该方法可以在服务器102外部被实现为外部模块。因此,存储装置104的给定文件系统可以在未来用任何其他磁带文件系统来替代。应当理解,这样的外部模块需要与存储系统的OS和存储装置的文件系统二者对接。
[0108]优选地,实现根据本发明的方法的计算机程序是用户空间程序组件。有利地,这允许提高便携性,因为用户空间软件组件(相对于内核空间软件组件)允许低的实现复杂度。
[0109]现在参考图3,示出了在图1上描绘的存储系统的数据路径视图的另一示例。存储系统100包括网络接口,例如图1中的通信控制器1016。在图3中,对存储系统的所有I/O操作被实现为LTFS文件系统操作。例如,客户端对存储系统的写入将总是作为对LTFS文件的写入操作,其以特定偏移开始并且具有特定字节长度,如图3所示。在第一种情况下,远程用户Iio使用NFS安装来对存储系统发出写入到文件“/Itfs/greetings.txt”。服务器(未示出)将此写入传递到LTFS22。然后,LTFS发现该文件已经被高速缓存在HDD高速缓存106中,并且该写入在HDD上被吸收,其中“/Itfs/greetings.txt”是HDD文件系统上的ext3文件。在不同的情况下,另一个远程用户120想要使用FTP协议从存储系统上的文件读取一些字节。用户发出FTP get (获得)请求,设备服务器将其转换成LTFS读取请求。LTFS在高速缓存中查找所请求的文件,但是在那里没有发现该文件。因此,LTFS从磁带库中读取所请求的文件,并且向用户返回前100个字节。此时,LTFS可以选择是否在HDD上高速缓存文件。
[0110]现在参考图4,现在讨论在图1上描绘的存储系统的高速缓存存储器的示例。高速缓存存储器通常是非易失性储存器,并且因此,高速缓存存储器可以在文件级上安全地保存修改的和未修改的数据。
[0111]通常,高速缓存存储器106被分成第一区域或空间40和第二区域或空间42。第一和第二区域适用于存储原始存储在存储装置中的文件。根据用于高速缓存容量管理的规则集合来执行第一和第二区域中的文件的存储。
[0112]在实践中,第一区域是FIFO (先入先出)区域40,并且第二区域是LRU (最近最少使用)区域42。这等于说,高速缓存存储器被划分成FIFO高速缓存和LRU高速缓存。FIFO区域使用先入先出替换策略来管理,而LRU区域使用最近最少使用策略来管理。FIFO区域通常指定用于保持在写入到高速缓存之后仅被访问最多一次的文件。这例如是备份写入验证处理的情况。LRU区域通常指定用于高速缓存具有在不久多次访问的高概率的文件。
[0113]如该图4所示,用户写入通常将其数据写入到FIFO高速缓存,而用户读取通常由LRU高速缓存来服务。然而,这不是必需的:实际上,如果用户提示该数据将在不久的将来被访问多次,则传入的数据也可以被写入到LRU高速缓存。另一方面,用户读取可以由FIFO高速缓存来服务,如果请求的数据被发现是在那里的话。
[0114]可选地,在同一时间,根据高速缓存的两个区域的工作负载来在两个区域之间移动文件:实际上,高速缓存存储器具有有限的存储容量大小,并且其对FIFO和LRU部分的划分需要特定水平的控制。换言之,高速缓存容量根据规则集合进行管理。用于高速缓存容量管理的下述规则可以被使用:
[0115]-如果FIFO区域满,则最早的文件被排除。从高速缓存中排除文件可能需要首先将它们复制到磁带;
[0116]-如果LRU区域满,则排除具有最少访问次数和最早的最后访问时间的文件。从高速缓存中排除文件可能需要首先将其复制到磁带;[0117]-如果FIFO区域满并且LRU区域具有至少50%的空闲容量,则FIFO区域获得LRU区域容量的30% ;
[0118]-如果LRU区域满并且FIFO区域具有至少50%的空闲容量,则FIFO区域获得LRU区域容量的30%。
[0119]应当理解,上述百分比是设计参数,并且可以根据特定的应用和工作负载来改变。
【权利要求】
1.一种用于读取存储在存储系统上的文件的方法,其中所述存储系统包括: -根据预定的数据格式存储第一文件集合的存储装置(104);以及 -存储第二文件集合的高速缓存存储器(106),所述第二文件集合是所述第一文件集合的子集, 所述存储系统被配置成允许一个或多个远程系统(110、120)读取存储在所述存储装置上和/或所述高速缓存存储器上的文件, 所述方法包括: -从一个或多个远程系统接收(602)用于读取文件序列的至少一个读取请求; -在所述序列的所述文件当中确定(604) —个或多个被高速缓存的文件是否已经被存储在所述高速缓存存储器中,以及一个或多个其余文件是否还没有被存储在所述高速缓存存储器中; -考虑到根据所述预定的数据格式在所述存储系统上存储的所述一个或多个其余文件的给定位置,在所述其余文件内确定(606)应当在所述存储系统上根据其读取所述其余文件的顺序; -根据所述顺序读取(608)所述存储系统上的所述一个或多个其余文件,并且将所述其余文件存储在所述高速缓存存储器上。
2.根据权利要求1所述的方法,其中所述存储系统包括用作所述高速缓存存储器的非易失性存储器。
3.根据权利要求2所述的方法,其中用作所述高速缓存存储器的所述非易失性存储器包括硬盘和/或固态驱动的阵列。
4.根据权利要求3所述的方法,其中所述硬盘和/或固态驱动的阵列被组织成单个逻辑地址空间。
5.根据权利要求1至4中的任何一项所述的方法,其中所述高速缓存存储器是文件级高速缓存存储器。
6.根据权利要求1至4中的任何一项所述的方法,其中所述高速缓存存储器是块级高速缓存存储器。
7.根据权利要求1至6中的任何一项所述的方法,其中所述存储装置包括至少一个磁带介质,所述至少一个磁带介质根据线性磁带文件系统数据格式来存储所述第一文件集合,并且其中根据作为所述线性磁带文件系统数据格式的元数据的一部分的、每个其余文件的开始块来确定存储在所述存储系统上的所述其余文件的位置。
8.根据权利要求1至7中的任何一项所述的方法,其中所述高速缓存存储器包括使用先入先出策略管理来管理的第一区域(40)和使用最近最少使用策略管理来管理的第二区域(42),所述第一区域和所述第二区域适用于根据用于高速缓存容量管理的规则集合来存储所述第二文件集合。
9.根据权利要求8所述的方法,其中所述规则集合至少包括下述规则: i)如果所述第一区域满,则所述第二集合的最早的文件被复制到所述存储装置,并且从所述第一区域排除; ?)如果所述第一区域满并且所述第二区域具有空闲容量,则所述第一区域获得所述第二区域的所述空闲容 量的给定百分比;iii)如果所述第二区域满,则具有最少访问次数和最早的最后访问时间的所述第二集合的所述文件被复制到所述存储装置并且从所述第二区域排除; iv)如果所述第二区域满并且所述第一区域具有空闲容量,则所述第二区域获得所述第一区域的所述空闲容量的给定百分比。
10.一种存储在计算机可读介质上的计算机程序,所述计算机程序用于读取存储在存储系统上的文件,包括用于使得计算机进行根据权利要求1至9中的任何一项所述的方法的步骤的代码装置。
11.根据权利要求10所述的计算机程序,进一步包括用于管理作为线性磁带文件系统的所述存储装置的代码装置,并且其中所述存储装置包括独立磁带库,所述独立磁带库具有使用所述线性磁带文件系统来管理的至少一个磁带介质。
12.根据权利要求10至11中的任何一项所述的计算机程序,其中所述计算机程序是用户空间程序组件。
13.一种存储系统(100),包括: -根据预定的数据格式存储第一文件集合的存储装置(104); -存储第二文件集合的高速缓存存储器(106),所述第二文件集合是所述第一文件集合的子集; -用于从一个或多个远程系统(110、120)接收读取和写入请求的至少一个接口(23、.24、25、26、27); -用于执行根据权利要求10至12中的任何一项所述的计算机程序的指令的处理单元(102)。
【文档编号】G06F3/06GK103917962SQ201280054403
【公开日】2014年7月9日 申请日期:2012年10月26日 优先权日:2011年11月18日
【发明者】I·科尔特斯达斯, S·萨拉菲加诺维克, E·S·埃勒夫塞里奥, J·杰利托, R·哈斯, N·豪斯泰恩, A·索普, H·塞普 申请人:国际商业机器公司