确定存储在磁带介质上的数据的访问序列的方法和系统的制作方法

文档序号:6438210阅读:280来源:国知局
专利名称:确定存储在磁带介质上的数据的访问序列的方法和系统的制作方法
技术领域
本发明总体上涉及计算机,并且更具体地,涉及用于确定存储在磁带介质上的数据的访问序列的方法、计算机系统和计算机程序产品。
背景技术
随着技术的发展,磁带介质(例如,磁带驱动器)的存储容量持续增长。近期的进展使得一些磁带介质具有I. 5千兆字节(TB)的容量。随着磁带介质容量的增加,磁带介质可被用于从传统的数据备份和存档到文件系统的各种应用中。与硬盘相比,诸如磁带驱动器的磁带介质在容量和传输速率上具有优势,但是,找到分散在长度可达到几百米的磁带介质上的数据经常需要几分钟的数据搜寻时间。驱动器搜寻时间一直被认为是一个重要问题,并且已经提出了用于降低针对各种形式数据的搜寻时间的多种方法。为了可用于一些现代应用,可能需要磁带驱动器能够连续读取多个文件或逻辑卷 (例如,记录组),该过程通常被称为“整理碎片”或“回收”。当顺序访问多个记录组时,这给降低总搜寻时间的新挑战。一种降低总搜寻时间同时仍保持缩短单独搜寻操作的搜寻时间的潜在方法是修改记录组的访问序列。使用这种方法来降低总搜寻时间在很大程度上取决于特定于磁带驱动器的多种条件,包括磁带驱动器移动磁带介质的速度和加速度,以及总数据带传输时间,它使访问序列修改对磁带驱动器是理想的。为了在磁带驱动器上修改访问序列并使修改所需的处理时间量最小,需要具有低计算复杂度的算法。

发明内容
在一个实施方式中,提供一种用于确定存储在磁带介质上的多个数据组的访问序列的方法。基于多个数据组中的哪个数据组的开端最接近磁带介质的当前位置,选择访问序列中的第一数据组。基于多个数据组中哪个剩余的数据组的开端最接近访问序列中的第一数据组的结尾,选择访问序列中的第二数据组。在另一实施方式中,提供了一种计算机系统。所述计算机系统包括计算机可读介质和可操作与所述计算机可读介质通信的处理器。所述处理器用于基于多个数据组中的哪个数据组的开端最接近磁带介质的当前位置,选择存储在磁带介质上的多个数据组的访问序列中的第一数据组;以及基于多个数据组中的哪个剩余数据组的开端最接近访问序列中的第一数据组的结尾,选择访问序列中第二数据组。在又一实施方式中,提供一种计算机程序产品,用于确定存储在磁带介质上的多个数据组的访问序列。所述计算机可读存储介质上存储着计算机可读程序代码部分。所述计算机可读程序代码部分包括第一可执行部分,用于基于多个数据组中的哪个数据组的开端最接近磁带介质的当前位置,选择访问序列中的第一数据组;以及第二可执行部分,用于基于多个数据组中的哪个剩余数据组的开端最接近访问序列中的第一数据组的结尾,选择访问序列中的第二数据组。


为了更容易理解本发明的优点,通过参考附图中所示的特定实施方式将对以上简短说明的本发明给出更具体的说明。应理解这些图描述的本发明的实施方式不是要限制其范围,通过使用附图将用更多特性和细节说明和解释本发明,其中图I是根据本发明的一个实施方式的带盒的截面视图;图2是图I的带盒中的磁带介质的示意平面视图;图3和4所示为根据本发明的多个方面方法的流程图;图5是代表性的虚拟带系统的示范实施方式的示意框图;以及图6是虚拟带服务器(VTS)和库管理器的示范实施方式的框图。
具体实施例方式本发明的实施方式提供用于确定存储在磁带介质上的数据的访问序列的方法、计算机系统和计算机程序产品。根据本发明的一个方面,基于文件系统或虚拟带服务器(VTS)可按任何给定的顺序读取多个记录组这一事实,定义一个称为“记录组之间距离”的新概念,其可被用于修改记录组访问序列,并由此降低总搜寻时间。在仿真测试中,该方法以低计算量显著降低了总搜寻时间,当涉及大量记录组时尤其如此。图I所示为根据本发明一个实施方式的磁带盒(或称磁带驱动器盒)10。磁带盒10包括磁带介质(或磁带)12。在一个实施方式中,磁带介质12的宽度(即,在水平方向)约I. 25厘米(cm)和长度(即,在纵向)约800米(m)。如图所示,磁带介质12被分成 4个数据带14,其基本上是被夹在伺服带16之间的细长区域(图I)。数据带14被编号为 (0-3),表明它们被使用的顺序。虽然未示出,被称为“伺服模式”的数据被写进伺服带16, 用以控制读和写数据的读/写头18 (与伺服带头19 一起)的定位。如图所示,伺服带头19 被放置在读/写头18的侧部。虽然仅示出一个物体,但是可以存在16个读/写头18。在现代磁带介质系统中,在数据带中横向移动头所需时间是相当短的,但是把头移动到相邻的数据带可能会用几秒钟。为了把数据写到磁带介质中,应用请求磁带驱动器把数据写进记录,记录可以从几字节到几兆字节(MB)。当被写到磁带介质12时,记录接收唯一的记录号,其用于在应用试图从磁带介质访问数据时指定要读取的数据。文件系统中使用的文件以及VTS中使用的逻辑卷包含多个记录。磁带驱动器将从应用接收的记录重新打包成称为数据集的固定长度的包(例如,约2. 4MB),然后它被写到磁带介质。在一个实施方式中,磁带驱动器系统使用以平行方式布置的16个头,用于将数据集以数据集片段写到磁带介质,其可具有几微米(ym)的宽度和约IOcm的长度。为了写入足够数据以将磁带介质容量填满,头必须在磁带介质12上完成许多次向前向后的轮次,这取决于磁带介质中绕线数目。数据集容量和大小、带长度和绕线数可以不同。磁带介质12可包含例如几百万到一千万个记录。因此,很难维护与介质上每个记录的物理定位相对应的信息。为了高效地找到被写入磁带介质的记录,磁带盒上的非易失盒存储器的集合(例如,4KB或8KB集合)被用于存储磁带目录(即,存在在每个绕线上的记录号的范围以及执行搜寻操作)。一种在连续访问多个记录组降低总搜寻时间的方法是修改记录组访问序列。实际上,这是在组合优化中的非确定多项式-时间(NP-hard)问题,如同通常所理解的,它在很多方面类似于“旅行商问题”。但是,在旅行商问题中,从点A到点B的旅行成本与从点B到点A的旅行成本是相同的。在多记录组访问序列问题中,记录组是长的,这意味着从记录组 A的结尾到记录组B的开端的旅行成本与从记录组B的结尾到记录组A的开端的旅行成本不同。根据本发明的一个方面,旅行成本被设想为记录组之间的距离。通过使用这个概念以及组合新开发的最近邻居和成对交换算法(下面所述)来建立记录组访问序列,可降低总搜寻时间。记录组之间的距离被定义为记录组旅行成本的表示。这个距离不是指存储在磁带介质上的记录组之间的物理距离,而是在记录组之间移动所需的时间。记录组A与记录组 B之间的距离(t(A,B))主要受以下2个因素影响tL(A,B),沿磁带介质的纵向(较长的方向)移动所需的时间;以及tD(A,B),在数据带上移动所需的时间。由此,记录组A与B之间的距离t(A,B)可定义为t (A, B) = tL (A, B) +tD (A, B) (I)用于确定tL(A,B)的变量包括IE (A),磁带介质的开端与记录组A的结尾之间的距离;IS (B),磁带介质的开端与记录组B的开端之间的距离;s (A),读取记录组A时的磁带介质传输速度;s (B),读取记录组B时的磁带介质传输速度;sR,执行搜寻操作时的磁带介质传输速度;a,磁带介质加速度;IR (A),从s (A)移位到SR的移动距离;以及IR(B),从sR 移位到S(B)的移动距离。使用以上变量,沿磁带介质纵向移动所需的时间tL(A,B)可表达在以下公式中。 然而,假设IE㈧与IS⑶之间的距离足够长,使其在加速和减速期间不会被达到。当距离太短时,认为变量是明显的且可被消除。tL (A, B) = I sR-s (A) | /a+ (| IE (A) -IS (B) | -IR (A) -IR (B)) /sR+1 sR-s (B) | /a. (2)用于确定tD(A,B)的变量包括tD,移动到相邻数据带所需的时间,以及d(A,B), 返回当从记录组A的结尾到记录组B的开端搜寻时经过的数据带的数目的函数。使用以上变量,在数据带上移动所需的时间tD(A,B)可表达为tD和d(A,B)的积tD(A, B) = tDd(A, B).(3)如果要访问的记录组的数目相对较小(例如,10),可应用强力(brute-force)方法来分析每个访问序列组合并计算总搜寻时间(即,每个访问序列中记录之间的总距离)。 由此,产生最短总搜寻时间的访问序列将是最有效的选择。但是,当涉及较多的记录组时, 计算每个可能组合的总搜寻时间需要较高级别的计算,使得很难在理想的时间量内建立访问序列。通过开发、组合和应用最近邻居和成对交换算法(或方法)的新体现,可以限制建立针对大量记录组的访问序列所需的时间量。与随机访问或按记录号顺序访问组相比,也可以更为有效地降低总搜寻时间。图2示出了图I的磁带介质12,并且可以用于示出最近邻居方法和成对交换方法, 这将在下文描述。磁带介质12包括开端(即,磁带的开端)部分20和结尾(即,磁带的结尾)部分22,以及具有被写入其上的4个记录组24 ( S卩,记录组A,记录组B,记录组C和记录组D)。箭头26表明每一记录组24被写入和/或读取的方向。图3所示为根据本发明的实施方式的最近邻居方法30。在步骤32,方法30开始于如图2所示而被布置的记录组24( S卩,记录组A-n)。在步骤34,建立磁带介质12 (图2)位置。在一个实施方式中,磁带介质定位在开端20 (即,磁带介质系统的头被定位在开端20) ο在步骤36,开始处(即,取决于读/写方向26)最接近当前位置的记录组24被选作要读取的第一记录组24。在图2所示的示例中,记录组A被选择,其开始处最接近磁带介质12的开端部分20。也是在步骤36,带位置被重置到所选择记录组24的结尾。在步骤38,如果存在未被置于记录序列中的剩余记录组24,方法30返回步骤36。 在图2所示的示例中,其开端最接近记录组A的结尾的记录组是记录组B。因此,在这个示例中,记录组B被选作访问序列中的第二组,并且带位置被重置到记录组B的结尾。在步骤38,方法30再次返回步骤36,因为有未被放在记录序列中的剩余记录组 24。在步骤36,记录组C接下来被选择,因为它的开始处最接近记录组B的结尾。此方法继续,直到记录组24的全部被放在访问序列中。在这个示例中,序列中最后的记录组24是记录组D。在步骤38,如果所有记录组24已被置于访问序列中,方法30继续到步骤40,在此按照访问序列的所选顺序访问记录组24,此后方法30结束于步骤42。由此,利用最近邻居算法,在当前位置与记录组24之间具有最短距离的记录组24 被选作访问序列中的第一组。继而,在记录组24中具有与第一记录组结尾的最短距离的记录组24被选作序列中的第二个。这个过程继续直到记录组24的全部已被放置。最近邻居方法在序列的前半部分中提供较短的记录组搜寻时间,但是在后半部分中可能无法显著降低搜寻时间。图4所示为根据本发明的一个实施方式的可用于修改最近邻居方法30产生的访问序列的成对交换方法40。方法40开始于步骤42,记录组24按照图3的最近邻居方法30所确定的访问序列的顺序而被布置。对于这个示例,可以假设最近邻居方法30所确定的访问序列为 AB⑶(即,A被第一个访问,B被第二个访问,C被第三个访问,D被最后访问)。在步骤44,访问序列中最后的记录组(例如,记录组D)被放置在所有可能的序列位置中,并且计算针对每一可能序列的总搜寻时间。由此,对于每一访问序列DABC、ADBC、 ABDC和AB⑶,总搜寻时间被计算。在步骤46,如果将最后的记录组放置在不同于最近邻居方法30所确定的位置降低了总搜寻时间,方法40继续到步骤48。在步骤48,使用具有最短搜寻时间的访问序列来修改将要使用的访问序列,方法返回步骤44。作为一个示例,可以假设访问序列DABC提供最短搜寻时间。因此,当返回步骤44时,DABC被使用。因此,在步骤44,目前占据序列中最后位置的记录组C被放置在所有可能的序列位置,以估算总搜寻时间。不同的序列则变为CDAB、DCAB, DACB和DABC。在步骤46,如果具有最短总搜寻时间的序列是DABC,方法40进行到步骤50。这种情况是因为这个结果与最新的结果匹配(来自步骤2)。因此,DABC被选作最优读取序列 (除了序列的最后元素,序列的最后η个元素也可被重新布置)。最近邻居交换方法也可应用于记录组之间的距离最长之处。在步骤50,方法40例如结束于以最新修改的访问序列被访问的记录组24。因此,在成对交换方法中,访问序列中的记录组的最终位置(或最后几个位置)被放置在不同的访问序列位置,并且产生最短总搜寻时间的访问序列被选择。重复这个过程直到在序列最终位置的记录组不再改变。成对交换方法可以改善访问序列后半部分中的组搜寻时间。为了评价上述方法降低总搜寻时间的效果,创建了仿真环境。仿真可被分为4个部分输入产生,记录组之间的距离计算,记录组访问序列修改部分,以及总搜寻时间显示。在输入产生部分,为每一记录组产生5个元素的随机值。这5个元素包括记录组开端的纵向位置、记录组结尾的纵向位置、包含记录组的数据带、当读记录组的开端时磁带介质移动的方向,以及当读记录组的结尾时磁带介质移动的方向。为了简化模型,假设每个记录组的开端和结尾总是存在于相同数据带上。此外,记录组的数目允许在8到1024之间变动,因为记录组的总数可能影响方法的效果。而且,为了防止由记录组的位置关系引起的效果变化,通过为每个记录组量产生1000个关系集合以及对平均总搜寻时间进行比较来评估该方法。在记录组之间距离的计算部分,为了简化计算,加速、减速所需的时间以及在这些时间期间覆盖的距离被忽略。反之,在记录组之间纵向移动所需的时间、在数据带之间移动所需的时间、以及改变带传输方向所需的时间被计算。这些值继而被求和,以找到记录组之间的距离。在记录组访问序列修改部分,基于3个原则修改在输入产生部分创建的多个记录组的访问序列强力方法,与成对交换方法组合的最近邻居方法,以及记录编号序列。当改变记录号序列时,每一记录组根据数据带编号而被放置。具有相同数据带编号的组以输入产生部分所创建的顺序被访问。在总搜寻时间显示部分中,当记录按照在记录组访问序列修改部分中建立的序列被连续访问时,总搜寻时间和修改访问序列所需的时间被显示。首先,对使用强力方法时修改访问序列所需的时间与结合最近邻居方法和成对交换方法的方法(此处所述的本方法)进行比较。结果在表I中示出。
权利要求
1.一种用于确定存储在磁带介质上的多个数据组的访问序列的方法,所述方法包括基于所述多个数据组中的哪个数据组的开端最接近所述磁带介质的当前位置,选择所述访问序列中的第一数据组;以及基于所述多个数据组中的哪个剩余数据组的开端最接近所述访问序列中的所述第一数据组的结尾,选择所述访问序列中的第二数据组。
2.根据权利要求I所述的方法,还包括基于所述多个数据组中的哪个剩余数据组的开端最接近所述访问序列中的第(η-i)数据组的结尾,选择所述访问序列中的第η数据组。
3.根据权利要求2所述的方法,其中如果所述多个数据组中没有剩余数据组,则所述第η数据组是所述访问序列中的最后数据组。
4.根据权利要求3所述的方法,还包括计算针对所述访问序列的多个总搜寻时间,所述多个总搜寻时间的每一个对应于所述最后数据组在所述访问序列中的不同位置。
5.根据权利要求4所述的方法,还包括基于所述最后数据组在所述访问序列中的哪个位置对应于最短总搜寻时间,修改所述访问序列以产生修改的访问序列。
6.根据权利要求5所述的方法,还包括重复所述修改所述访问序列,直到所述修改的访问序列与先前修改的访问序列相同。
7.根据权利要求6所述的方法,其中所述计算针对所述访问序列的所述多个总搜寻时间基于在所述多个数据组之间移动所需的时间。
8.一种计算机系统,包括计算机可读介质;以及可操作与所述计算机可读介质通信的处理器,所述处理器适于基于所述多个数据组中的哪个数据组的开端最接近所述磁带介质的当前位置,选择所述访问序列中的第一数据组;以及基于所述多个数据组中的哪个剩余数据组的开端最接近所述访问序列中的所述第一数据组的结尾,选择所述访问序列中的第二数据组。
9.根据权利要求8所述的计算机系统,其中所述处理器还适于基于所述多个数据组中的哪个剩余的数据组的开端最接近所述访问序列中的第(η-i)数据组的结尾,选择所述访问序列中的第η数据组。
10.根据权利要求9所述的计算机系统,其中如果所述多个数据组中没有剩余数据组, 所述第η数据组是所述访问序列中的最后数据组。
11.根据权利要求10所述的计算机系统,其中所述处理器还适于计算所述访问序列的多个总搜寻时间,所述多个总搜寻时间的每一个对应于所述最后数据组在所述访问序列中的不同位置。
12.根据权利要求11所述的计算机系统,其中所述处理器还适于基于所述最后数据组在所述访问序列中的哪个位置对应于最短总搜寻时间,修改所述访问序列以产生修改的访问序列。
13.根据权利要求12所述的计算机系统,其中所述处理器还适于重复所述修改所述访问序列,直到所述修改的访问序列与先前修改的访问序列相同。
14.根据权利要求13所述的计算机系统,其中所述计算针对所述访问序列的所述多个总搜寻时间基于在所述多个数据组之间移动所需的时间。
全文摘要
本发明的实施方式涉及确定存储在磁带介质上的数据的访问序列的方法和系统。具体地,提供了用于确定存储在磁带介质上的多个数据组的访问序列的方法、计算机系统和计算机程序产品。基于多个数据组中的哪个数据组的开端最接近磁带介质的当前位置,选择访问序列中的第一数据组。基于多个数据组中的哪个剩余数据组的开端最接近访问序列中的第一数据组的结尾,选择访问序列中的第二数据组。
文档编号G06F12/06GK102591795SQ20111035972
公开日2012年7月18日 申请日期2011年11月9日 优先权日2010年12月16日
发明者中山浩一, 冈摄子, 大石丰, 森祐子, 片桐隆司 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1