High-speed file copying from tape using block grouping

Through tape directory sorting and mapping technology, the problem of frequent head relocation during multi-file reading in tape storage systems is solved, and the tape access efficiency and performance are improved.

CN114270438BActive Publication Date: 2024-12-10INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202080056960.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-22
Filing Date
2020-08-14
Publication Date
2024-12-10
Estimated Expiration
2040-08-14

AI Technical Summary

Technical Problem

When existing tape storage systems read multiple files from tape, the heads need to be relocated frequently during routine processes, resulting in inefficiency and increased data access time, especially as the number of files increases, the head relocating amount and calculation complexity Sex increases with it.

Method used

By receiving a request for tape to read multiple files, obtain a tape directory, use the tape directory to map files to the corresponding storage area, and sort the files in the same area into a specific order, instructing the tape drive to read files in that order, thereby Reduce head relocation and computing resource consumption.

Benefits of technology

Significantly improve tape access performance, reduce head relocation operations, improve data access time, reduce computational complexity and resource consumption, and achieve more efficient multi-file reading than conventional methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114270438B_ABST
    Figure CN114270438B_ABST
Patent Text Reader

Abstract

According to one approach, a computer-implemented method includes: receiving a request to read a plurality of files from a magnetic tape, and obtaining a magnetic tape directory, the magnetic tape directory identifying regions on the magnetic tape where the files are stored. The magnetic tape directory is used to map each file to one of the regions on the magnetic tape where the corresponding file is stored. A first subset of files stored in the same first region on the magnetic tape is also sorted into a first order. The computer-implemented method also includes simultaneously: sorting a second subset of files stored in the same second region on the magnetic tape into a second order, and instructing a magnetic tape drive to read each file in the first subset according to the first order.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to data storage systems, and more particularly, to accessing files stored on magnetic tape using block groupings. Background Art

[0002] In a magnetic storage system, a magnetic transducer reads data from and writes data to a magnetic recording medium. Data is written to a magnetic recording medium by moving the magnetic recording transducer to the location above the medium where the data is to be stored. The magnetic recording transducer then generates a magnetic field that encodes the data into the magnetic medium. Data is read from the medium by similarly positioning a magnetic reading transducer and then sensing the magnetic field of the magnetic medium. The read and write operations can be independently synchronized with the movement of the medium to ensure that data can be read from and written to the desired location on the medium.

[0003] An important and ongoing goal in the data storage industry is to increase the density of data stored on the media. For magnetic tape storage systems, this goal has led to increasing the track and linear bit density on the recording tape, and reducing the thickness of the tape media. This has also led to an increase in the storage capacity of the tape as a whole. However, the development of small footprint, higher performance tape drive systems has created different challenges from the design of the tape head assembly for such systems to the actual access to the data stored on the tape.

[0004] For example, the process of reading multiple files from different locations on a tape includes repositioning the head between the various physical locations where the files are stored. Conventional processes have performed these read operations so that the files are accessed in an order corresponding to how the files themselves relate to each other. For example, file A is accessed first, file B is accessed second, file C is accessed second, and so on. However, accessing files in this manner is often inefficient because of the repeated movements performed to find the beginning of each file on the tape. In addition, as the number of files accessed increases, the amount of head repositioning performed by these conventional processes also increases.

[0005] Therefore, there is a need in the art to solve the above problems. Summary of the invention

[0006] From a first aspect, the present invention provides a computer-implemented method for accessing files, the method comprising: receiving a request to read multiple files from a tape; obtaining a tape directory, the tape directory identifying the areas on the tape where the files are stored; using the tape directory to map each of the files to one of the areas on the tape where the corresponding file is stored; sorting a first subset of the files stored in the same first area on the tape into a first order; and at the same time: sorting a second subset of the files stored in the same second area on the tape into a second order, and instructing a tape drive to read each file in the first subset in the first order.

[0007] From another aspect, the present invention provides a system for accessing files, the system comprising: a processor; and logic integrated with the processor, executable by the processor, or integrated with the processor and executable by the processor, the logic being configured to: receive a request to read multiple files from a tape by the processor; obtain a tape directory by the processor, the tape directory identifying areas on the tape where the files are stored; use the tape directory by the processor to map each file in the files to one of the areas on the tape where the corresponding file is stored; sort a first subset of the files stored in the same first area on the tape into a first order by the processor; and simultaneously: sort a second subset of the files stored in the same second area on the tape into a second order by the processor, and instruct a tape drive by the processor to read each file in the first subset according to the first order.

[0008] Viewed from another aspect, the present invention provides a computer program product for accessing a file, the computer program product comprising a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit to perform a method for performing the steps of the present invention.

[0009] Viewed from another aspect, the invention provides a computer program stored on a computer readable medium and loadable into the internal memory of a digital computer, the computer program comprising software code portions for performing the steps of the invention when said program is run on a computer.

[0010] From another aspect, the present invention provides a computer program product comprising a computer-readable storage medium having program instructions embodied therein, the program instructions being readable and / or executable by a processor so that the processor: receives a request to read a plurality of files from a tape; obtains a tape directory by the processor, the tape directory identifying areas on the tape where the files are stored; uses the tape directory by the processor to map each of the files to one of the areas on the tape where the corresponding file is stored; sorts a first subset of the files stored in the same first area on the tape into a first order by the processor; and simultaneously: sorts a second subset of the files stored in the same second area on the tape into a second order by the processor, and instructs a tape drive by the processor to read each of the files in the first subset according to the first order.

[0011] According to one approach, a computer-implemented method includes: receiving a request to read a plurality of files from a magnetic tape, and obtaining a tape directory, the tape directory identifying the regions on the magnetic tape where the files are stored. The tape directory is used to map each file to one of the regions on the magnetic tape where the corresponding file is stored. A first subset of files stored in the same first region on the magnetic tape is also sorted into a first order. The computer-implemented method also includes simultaneously: sorting a second subset of files stored in the same second region on the magnetic tape into a second order, and instructing a tape drive to read each file in the first subset according to the first order. In a preferred embodiment, the second subset of files is further sorted in parallel, and the tape drive is instructed to read each file in the first subset.

[0012] Performance is significantly improved by simultaneously sorting the files in a given subset while the tape drive is reading files in another subset (which is already sorted) from the tape. This effectively reduces the amount of computing resources consumed at a given point in time by overlapping processing operations, in addition to dividing the associated computational complexity into region-sized chunks. Furthermore, at the same time: sorting the next subset of files stored in the same next region on the tape into the next order, and instructing the tape drive to read each of the files in the previous subset according to the previous order can be repeated in an iterative manner, for example, for any desired number of files.

[0013] In some instances, sorting a given subset of files stored in a given area on a magnetic tape into a given order includes using the physical location of each file stored in the given area to determine the given order so that the amount of head repositioning performed by the tape drive when reading the files in the given order is minimized. This also results in improved performance latency. For example, the data access time experienced due to reading each file in a given subset according to the given order is less than the data access time experienced due to reading each file in the given subset in any order other than the given order. It can be seen that the computer-implemented method can access (e.g., read) multiple files from a magnetic tape in a more efficient manner than conventionally achievable.

[0014] According to another method, a computer program product includes a computer-readable storage medium having program instructions embodied therein. The program instructions can be read and / or executed by a processor to cause the processor to: perform the above method.

[0015] According to another method, a system includes: a processor, and logic integrated with the processor, executable by the processor, or integrated with the processor and executable by the processor. The logic is configured to: perform the above method.

[0016] Any of these methods may be implemented in a magnetic data storage system (eg, a tape drive system), which may include a head, a drive mechanism for passing a magnetic medium (eg, a recording tape) past the head, and a controller electrically coupled to the head.

[0017] Other aspects and aspects of the present invention will become apparent from the following detailed description, which, when taken in conjunction with the accompanying drawings, illustrate, by way of example, the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] The present invention will now be described, by way of example only, with reference to preferred embodiments as shown in the following drawings:

[0019] Figure 1A is a schematic diagram of a simplified belt drive system according to one approach.

[0020] Figure 1B is a schematic diagram of a tape box according to one method.

[0021] Figure 2A A side view of a flat overlapping bi-directional dual-module magnetic tape head is shown according to one approach.

[0022] Figure 2B is from Figure 2A A view of the tape bearing surface taken along line 2B.

[0023] Figure 2C is from Figure 2B Detailed view of circle 2C taken.

[0024] Figure 2D is a detailed view of a portion of the tape bearing surface of a pair of modules.

[0025] Figure 3 is a partial tape bearing surface view of a magnetic head having a write-read-write configuration.

[0026] Figure 4 is a partial tape bearing surface view of a magnetic head having a read-write-read configuration.

[0027] Figure 5 is a side view of a tape head having three modules according to one approach, wherein the modules are all generally positioned along approximately parallel planes.

[0028] Figure 6 is a side view of a tape head with three modules in a tangential (angled) configuration.

[0029] Figure 7 is a side view of a tape head with three modules in an outer package configuration.

[0030] Figures 8A-8C is a schematic diagram depicting the principle of tape ridges.

[0031] Fig. 9 is a representative diagram of files and indexes stored on tape according to one approach.

[0032] Fig.10 is a flow chart of a method according to one approach.

[0033] Fig.11 is a partial representative diagram of a data storage system according to one approach.

[0034] Fig.12 is a representative diagram of a hierarchical data storage system according to one approach. DETAILED DESCRIPTION

[0035] The following description is made for the purpose of illustrating the general principles of the invention and is not meant to limit the inventive concepts claimed herein.Furthermore, specific features described herein may be used in combination with other described features in each of the various possible combinations and permutations.

[0036] Unless otherwise specifically defined herein, all terms are to be given their broadest possible interpretations, including the meanings implied from the specification and as understood by those skilled in the art and / or as defined in dictionaries, treatises, and the like.

[0037] It must also be noted that, as used in the specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless otherwise indicated.

[0038] The following description discloses several preferred methods of magnetic storage systems, and operations and / or components thereof for accessing (e.g., reading) a plurality of files from a magnetic tape in a more efficient manner than is conventionally possible. Performance is improved in a preferred manner by sorting files in a given subset while the tape drive reads files in another subset (which are already sorted) from the tape. This effectively reduces the amount of computational resources consumed at a given point in time by overlapping processing operations, in addition to partitioning the associated computational complexity into region-sized chunks, e.g., as will be described in further detail below.

[0039] In one general approach, a computer-implemented method includes receiving a request to read a plurality of files from a magnetic tape, and obtaining a magnetic tape directory, the magnetic tape directory identifying regions on the magnetic tape where the files are stored. The magnetic tape directory is used to map each file to one of the regions on the magnetic tape where the corresponding file is stored. A first subset of files stored in the same first region on the magnetic tape is also sorted into a first order. The computer-implemented method also includes sorting a second subset of files stored in the same second region on the magnetic tape into a second order, and instructing a magnetic tape drive to read each file in the first subset according to the first order.

[0040] In another general method, a computer program product includes a computer-readable storage medium having program instructions embodied therein. The program instructions can be read and / or executed by a processor to cause the processor to: perform the above method.

[0041] In yet another general method, a system includes: a processor, and logic integrated with the processor, executable by the processor, or integrated with the processor and executable by the processor. The logic is configured to: perform the above method.

[0042] Figure 1A A simplified tape drive 100 of a tape-based data storage system that may be employed in the context of the present invention is shown. Figure 1A One particular implementation of a tape drive is shown in FIG. 1 , but it should be noted that the methods described herein may be implemented in the context of any type of tape drive system.

[0043] As shown, a tape supply cassette 120 and a take-up reel 121 are provided to support a tape 122. One or more of the reels may form part of a removable cassette and not necessarily part of the tape drive 100. A tape drive such as Figure 1AThe tape drive shown in FIG. 1 may also include a drive motor to drive the tape supply cartridge 120 and take-up reel 121 to move the tape 122 over any type of tape head 126. Such a head may include an array of readers, writers, or both.

[0044] The guide 125 guides the tape 122 through a tape head 126. Such a tape head 126 is in turn coupled to a controller 128 via a cable 130. The controller 128 may be or include a processor and / or any logic for controlling any subsystem of the drive 100. For example, the controller 128 generally controls head functions such as servo tracking, data writing, data reading, etc. The controller 128 may include at least one servo channel and at least one data channel, each of which includes data stream processing logic configured to process and / or store information to be written to and / or read from the tape 122. The controller 128 may operate under logic known in the art and any logic disclosed herein, and thus may be considered in different approaches as a processor for any description of the tape drive included herein. The controller 128 may be coupled to a memory 136 of any known type, which may store instructions executable by the controller 128. In addition, the controller 128 may be configured and / or programmable to perform or control some or all of the methods presented herein. Thus, the controller 128 may be considered to be configured to perform various operations via logic programmed into one or more chips, modules and / or blocks; software, firmware and / or other instructions available to one or more processors; etc., as well as combinations thereof.

[0045] The cable 130 may include a read / write circuit for sending data to the head 126 to be recorded on the tape 122 and receiving data read by the head 126 from the tape 122. The actuator 132 controls the position of the head 126 relative to the tape 122.

[0046] As will be appreciated by those skilled in the art, interface 134 may also be provided for communication between tape drive 100 and a host (internal or external) to send and receive data, and for controlling the operation of tape drive 100 and transmitting the status of tape drive 100 to the host.

[0047] Figure 1B An exemplary tape cassette 150 according to one method is shown. Such a tape cassette 150 may be used with Figure 1A As shown, the tape cartridge 150 includes a housing 152, a tape 122 in the housing 152, and a non-volatile memory 156 coupled to the housing 152. In some embodiments, the non-volatile memory 156 can be embedded in the housing 152, such as Figure 1BAs shown. In more methods, the non-volatile memory 156 can be attached to the interior or exterior of the housing 152 without modifying the housing 152. For example, the non-volatile memory can be embedded in the self-adhesive label 154. In a preferred embodiment, the non-volatile memory 156 can be a flash memory device, a read-only memory (ROM) device, etc. embedded or coupled to the interior or exterior of the tape cartridge 150. The non-volatile memory can be accessed by the tape drive and tape operating software (driver software) and / or another device.

[0048] By way of example, Figure 2A A side view of a flat overlapping bidirectional dual module tape head 200 that can be implemented in the context of the present invention is shown. As shown, the head includes a pair of bases 202, each equipped with a module 204, and fixed at a small angle α relative to each other. The bases can be "U beams" that are adhesively coupled together. Each module 204 includes a base 204A and a closure 204B having a thin film portion, which is generally referred to as a "gap", in which a reader and / or writer 206 is formed. In use, a magnetic tape 208 moves over the module 204 along a medium (tape) bearing surface 209 in the manner shown, which is used to read and write data on the magnetic tape 208 using a reader and writer. The wrap angle θ of the magnetic tape 208 at the edge of reaching and leaving the flat medium support surface 209 is typically between about 0.1 degrees and about 3 degrees.

[0049] The base plate 204A is typically constructed of a wear-resistant material such as ceramic. The closure member 204B may be made of the same or similar ceramic as the base plate 204A.

[0050] The readers and writers may be arranged in a piggyback or merged configuration. An illustrative piggyback configuration includes a (magnetic inductive) writer transducer on top of (or below) a (magnetically shielded) reader transducer (e.g., magnetoresistive reader, etc.), where the poles of the writer and the shield of the reader are typically separated. An illustrative merged configuration includes a reader shield in the same physical layer as one of the writer poles (hence, "merged"). The readers and writers may also be arranged in a staggered configuration. Alternatively, each channel array may be only a reader or only a writer. Either of these arrays may include one or more servo track readers for reading servo data on the media.

[0051] Figure 2B Shows from Figure 2A 2B intercepts the tape bearing surface 209 of one of the modules 204. A representative tape 208 is shown in phantom. The module 204 is preferably long enough to support the tape as the head steps between data tapes.

[0052] In this example, band 208 includes 4 to 32 data bands, for example, with 16 data bands and 17 servo tracks 210, as shown in FIG. Figure 2B 2, on a half-inch wide tape 208. The data bands are defined between servo tracks 210. Each data band may include a plurality of data tracks, for example, 1024 data tracks (not shown). During a read / write operation, the reader and / or writer 206 is positioned to a specific track location within one of the data bands. An external reader (sometimes referred to as a servo reader) reads the servo tracks 210. The servo signals are in turn used to keep the reader and / or writer 206 aligned with a specific set of tracks during a read / write operation.

[0053] Figure 2C Describes the formation Figure 2B A plurality of readers and / or writers 206 in gaps 218 on modules 204 in ring 2C. As shown, the array 206 of readers and writers includes, for example, 16 writers 214, 16 readers 216, and two servo readers 212, but the number of elements can vary. Illustrative approaches include 8, 16, 32, 40, and 64 active readers and / or writers 206 per array, as well as alternative staggered designs with an odd number of readers or writers, such as 17, 25, 33, etc. Illustrative approaches include 32 readers per array and / or 32 writers per array, where the actual number of sensor elements can be larger, such as 33, 34, etc. This allows the tape to travel more slowly, thereby reducing speed-induced tracking and mechanical difficulties and / or performing fewer "winds" to fill or read the tape. Although the readers and writers can be arranged in a piggyback configuration, such as Figure 2C As shown, the readers 216 and writers 214 may also be arranged in a staggered configuration. Alternatively, each reader and / or writer array 206 may be only a reader or writer, and the array may include one or more servo readers 212. Figure 2A and Figure 2B to Figure 2C As noted, each module 204 may include a complementary set of readers and / or writers 206 for purposes such as bidirectional reading and writing, simultaneous read-write capabilities, backward compatibility, and the like.

[0054] Figure 2DA partial tape bearing surface view of complementary modules of a tape head 200 is shown according to one approach. In the approach, each module has a plurality of read / write (R / W) pairs formed in a piggyback configuration on a common substrate 204A and an optional electrically insulating insulating layer 236. Writers 214 and readers 216 are aligned parallel to the intended direction of travel of the tape media thereon to form R / W pairs, exemplified by R / W pair 222. Note that the intended direction of tape travel is sometimes referred to herein as the direction of tape travel, and such terms may be used interchangeably. Such a direction of tape travel may be inferred from the design of the system, e.g., by examining guides; observing the actual direction of tape travel relative to a reference point; etc. Furthermore, in a system operable for bidirectional reading and / or writing, the directions of tape travel in both directions are typically parallel, and thus the two directions may be considered equal to one another.

[0055] There may be a number of R / W pairs 222, such as 8, 16, 32 pairs, etc. The R / W pairs 222 as shown are aligned linearly in a direction generally perpendicular to the direction in which the tape travels. However, the pairs may also be aligned diagonally, etc. The servo reader 212 is located outside the array of R / W pairs, and its function is well known.

[0056] Typically, the tape media moves in either a forward or reverse direction, as indicated by arrow 220. The tape media and head assembly 200 operate in a transducing relationship in a manner well known in the art. The head assembly 200 includes two membrane modules 224 and 226 of substantially identical construction.

[0057] The modules 224 and 226 are combined with the space (partially shown) between their enclosure 204B to form a single physical unit to provide write-as-you-go read / write capability by activating the writer of the leading module and the reader of the trailing module, which are aligned parallel to the writer of the leading module and the direction of tape travel relative to the leading module. When the modules 224, 226 of the tape head 200 are constructed, the layers are formed in the gap 218 created above the conductive substrate 204A (partially shown), for example, AlTiC, typically in the following order of the R / W pair 222: an insulating layer 236; a first shield 232 typically made of an iron alloy such as NiFe(-), cobalt zirconium tantalum (CZT) or Al-Fe-Si (Sendust), a sensor 234 for sensing data tracks on the magnetic media, a second shield 238 typically made of a nickel-iron alloy (e.g., NiFe content of about 80 / 20, also known as Permalloy), first and second writer poles 228, 230, and a coil (not shown). The sensor may be of any known type, including those based on magnetoresistive (MR), GMR, AMR, tunnel magnetoresistive (TMR), and the like.

[0058] The first and second writer poles 228, 230 may be made of a high magnetic moment material such as about 45 / 55 NiFe. Note that these materials are provided by way of example only and other materials may be used. Additional layers may be present, such as insulating layers between shields and / or pole tips and insulating layers around the sensor. Illustrative materials for insulation include aluminum oxide and other oxides, insulating polymers, etc.

[0059] The configuration of the tape head 126 according to one approach includes multiple modules, preferably three or more. In a write-read-write (WRW) head, an outer module for writing flanks one or more inner modules for reading. Figure 3 , depicting a WRW configuration, the external modules 252 , 256 each include one or more arrays of writers 260 . Figure 3 The internal module 254 includes one or more arrays of readers 258 in a similar configuration. Variations of the multi-module head include the RWR head ( Figure 4 ), RRW head, WWR head, etc. In other variations, one or more of the modules may have a read / write transducer pair. In addition, there may be more than three modules. In other schemes, two external modules may be located on the sides of two or more internal modules, for example, in a WRRW, RWWR arrangement, etc. For simplicity, the WRW head is mainly used in this article to illustrate the method of the present invention. Those skilled in the art who are aware of the teachings herein will appreciate how the permutations of the present invention will be applied to configurations other than the WRW configuration.

[0060] Figure 5 A magnetic head 126 according to one aspect of the present invention is shown, which includes a first module 302, a second module 304, and a third module 306, each having a tape bearing surface 308, 310, 312, which can be flat, wavy, etc. Note that although the term "tape bearing surface" appears to imply that the surface facing the tape 315 is in physical contact with the tape bearing surface, this is not necessarily the case. Instead, only a portion of the tape may be in continuous or intermittent contact with the tape bearing surface, with the rest of the tape riding (or "flying") above the tape bearing surface on an air layer, sometimes referred to as an "air bearing". The first module 302 will be referred to as the "leading" module because it is the first module encountered by the tape in a three-module design for tape movement in the indicated direction. The third module 306 will be referred to as the "trailing" module. The trailing module follows the middle module and is the last module seen by the tape in the three-module design. The leading module 302 and the trailing module 306 are collectively referred to as the outer modules. It should also be noted that the outer modules 302 , 306 will alternate as the leading module, depending on the direction of travel of the belt 315 .

[0061] In one approach, the belt bearing surfaces 308, 310, 312 of the first module 302, the second module 304, and the third module 306 are located on substantially parallel planes (which is intended to include parallel and nearly parallel planes, such as Figure 6 302 and the third module 306. This has the effect of producing a desired wrap angle α2 of the belt relative to the belt bearing surface 310 of the second module 304, as described below.

[0062] In the case where the tape bearing surfaces 308, 310, 312 are placed along parallel or nearly parallel but offset planes, intuitively, the tape should peel from the tape bearing surface 308 of the leading module 302. However, it has been found through experimentation that the vacuum created by the scraping edge 318 of the leading module 302 is sufficient to keep the tape adhered to the tape bearing surface 308 of the leading module 302. The trailing edge 320 of the leading module 302 (the end of the tape leaving the leading module 302) is the approximate reference point that defines the wrap angle α2 on the tape bearing surface 310 of the second module 304. The tape remains close to the tape bearing surface until it approaches the trailing edge 320 of the leading module 302. Therefore, the transducer 322 can be located near the trailing edge of the outer modules 302, 306. These methods are particularly suitable for write-read-write applications.

[0063] A benefit of this method and other methods described herein is that because the outer modules 302, 306 are fixed at a determined offset from the second module 304, the internal angle α2 is fixed when the modules 302, 304, 306 are coupled together or otherwise fixed into the head. The internal angle α2 is approximately tan -1 (δ / W), where δ is the height difference between the planes of the belt bearing surfaces 308, 310, and W is the width between the opposing ends of the belt bearing surfaces 308, 310. Illustrative internal wrap angle α2 ranges from about 0.3° to about 1.1°, but can be any angle desired by the design.

[0064] Beneficially, the internal wrap angle α2 on the side of module 304 receiving the belt (leading edge) will be greater than the internal wrap angle α3 on the trailing edge because belt 315 rides over trailing module 306. This difference is generally beneficial because a smaller α3 tends to work against a by far steeper departure effective wrap angle.

[0065] Note that the tape bearing surfaces 308, 312 of the outer modules 302, 306 are positioned to achieve a negative wrap angle at the trailing edge 320 of the leading module 302. This is generally beneficial in helping to reduce friction caused by contact with the trailing edge 320, as long as proper consideration is given to the location of the pry bar area formed in the tape that is peeled off the head. The negative wrap angle also reduces vibration and scrubbing damage to components on the leading module 302. Further, at the trailing module 306, the tape 315 flies over the tape bearing surface 312, so there is virtually no component wear when the tape moves in this direction. In particular, the tape 315 entrains air and therefore does not significantly ride on the tape bearing surface 312 of the third module 306 (some contact may occur). This is allowable because the leading module 302 is writing and the trailing module 306 is idle.

[0066] The write and read functions are performed by different modules at any given time. In one approach, the second module 304 includes multiple data and optional servo readers 331 and no writer. The first module 302 and the third module 306 include multiple writers 322 and do not include data readers, except that the outer modules 302, 306 may include optional servo readers. The servo reader can be used to position the head during read and / or write operations. The (one or more) servo readers on each module are usually positioned toward the end of the array of readers or writers.

[0067] By having only a reader or a side-by-side writer and servo reader in the gap between the substrate and the closure, the gap length can be substantially reduced. A typical head has a piggyback reader and writer with a writer formed above each reader. A typical gap is 20-35 microns. However, irregularities on the tape may tend to droop into the gap and produce gap erosion. Therefore, the smaller the gap, the better. The smaller gaps achieved herein exhibit fewer wear-related issues.

[0068] In some embodiments, the second module 304 has a closure, while the first module 302 and the third module 306 do not have a closure. When a closure is not present, a hard coating is preferably added to the module. A preferred coating is diamond-like carbon (DLC).

[0069] exist Figure 5In the method shown, the first module 302, the second module 304 and the third module 306 each have a closure 332, 334, 336 that extends the tape bearing surface of the associated module, thereby effectively positioning the read / write element away from the edge of the tape bearing surface. The closure 332 on the second module 304 can be a ceramic closure of the type typically found on a tape head. However, the closures 334, 336 of the first module 302 and the third module 306 can be shorter than the closure 332 of the second module 304, as measured parallel to the direction in which the tape travels over the respective modules. This enables the modules to be positioned closer together. One way to produce shorter closures 334, 336 is to overlap the standard ceramic closure of the second module 304 by an additional amount. Another way is to plate or deposit a thin film closure over the element during thin film processing. For example, a thin film closure of a hard material (such as rust or nickel-iron alloy (such as 45 / 55)) can be formed on the module.

[0070] With reduced thickness ceramic or thin film closures 334, 336 or no closures on the outer modules 302, 306, the write-to-read gap spacing can be reduced to less than about 1 mm, such as about 0.75 mm, or 50% less than the commonly used linear tape open (LTO) tape head spacing. The open space between the modules 302, 304, 306 can still be set to about 0.5 to 0.6 mm, which is ideal for stabilizing the tape motion on the second module 304 in some methods.

[0071] Depending on belt tension and stiffness, it may be desirable to angle the belt bearing surface of the outer module relative to the belt bearing surface of the second module. Figure 6 A method is shown in which the modules 302, 304, 306 are configured tangentially or approximately tangentially (angled). Specifically, the tape bearing surfaces of these external modules 302, 306 are approximately parallel to the tape at the desired wrap angle α2 of the second module 304. In other words, the planes of the tape bearing surfaces 308, 312 of these external modules 302, 306 are oriented at approximately the desired wrap angle α2 of the tape 315 relative to the second module 304. In this method, the tape will also be ejected from the trailing module 306, thereby reducing wear on the elements in the trailing module 306. These methods are particularly useful for write-read-write applications. Other aspects of these methods are similar to those given above.

[0072] Usually, the belt wrap angle can be set at Figure 5 and Figure 6 Approximately midway between the methods shown in .

[0073] Figure 7A method is shown in which modules 302, 304, 306 are in an outer packaging configuration. Specifically, when set at a desired wrap angle α2 relative to the second module 304, the tape bearing surfaces 308, 312 of these outer modules 302, 306 are slightly larger than the angle of tape 315. In this method, the tape does not pop up from the trailing module, allowing it to be used for writing or reading. Therefore, both the leading module and the middle module can perform read and / or write functions, and the trailing module can read any data just written. Therefore, these methods are preferred for write-read-write, read-write-read and write-write-read applications. In the latter method, the closure should be wider than the top cover to ensure reading capabilities. A wider closure may require a wider gap to be separated from the gap. Therefore, the preferred method has a write-read-write configuration that can use a shortened closure to allow a closer gap-gap separation.

[0074] Figure 6 and 7 Other aspects of the method shown in are similar to those given above.

[0075] The 32 channel version of the multi-module tape head 126 can use a cable 350 with leads on the same or smaller pitch as the current 16 channel LTO modules, or alternatively the connections on the module can be organ keyboard style to reduce the cable span by 50%. Over-under write pair unshielded cables can be used for the writer, which can have an integrated servo reader.

[0076] These external wrap angles α1 can be set in the drive, for example by any type of guide known in the art, such as adjustable rollers, slides, etc., or alternatively by an outrigger integral to the head. For example, a roller with an offset axis can be used to set the wrap angle. The offset axis creates an orbital arc of rotation, allowing precise alignment of the wrap angle α1.

[0077] To assemble any of the above methods, a conventional U-beam assembly can be used. Thus, the mass of the resulting head can be maintained or even reduced relative to the previous generation of heads. In other ways, the module can be constructed as a whole. Those skilled in the art in possession of the present teachings will appreciate that other known methods of making such a head may be applicable to constructing such a head. In addition, as will become clear to those skilled in the art upon reading this disclosure, unless otherwise indicated, processes and materials of a type known in the art may be adapted for use in different methods consistent with the present teachings.

[0078] As the tape runs over the module, it is preferred that the tape passes close enough to the magnetic transducer on the module so that reading and / or writing is performed efficiently, e.g., with a low error rate. According to some methods, tape ridges may be used to ensure that the tape passes close enough to the portion of the module having the magnetic transducer. To better understand this process, Figures 8A-8C The principle of belt ridges is shown. Fig. 8A Module 800 is shown having an upper belt bearing surface 802 extending between opposite edges 804, 806. A retaining belt 808 is shown wrapped around edges 804, 806. As shown, the bending stiffness of belt 808 lifts the belt off belt bearing surface 802. The belt tension tends to flatten the belt profile, as shown in FIG. Fig. 8A When the belt tension is minimal, the curvature of the belt is more parabolic than shown.

[0079] Figure 8B Belt 808 is depicted in motion. The leading edge (i.e., the first edge encountered by the belt as it moves) can be used to scrape air from the belt, thereby creating a subambient air pressure between the belt 808 and the belt-bearing surface 802. Figure 8B 802, the leading edge is the left edge and the right edge is the trailing edge as the belt moves from left to right. Therefore, the atmospheric pressure above the belt urges the belt toward the belt bearing surface 802, resulting in a belt bulge near each edge. The belt bending stiffness resists the effect of the atmospheric pressure, resulting in a belt bulge near both the leading edge and the trailing edge. Modeling predicts that the two bulges are very similar in shape.

[0080] Figure 8C Depicted is how subambient pressure pushes the tape 808 toward the tape bearing surface 802 even when the trailing guide 810 is positioned above the plane of the tape bearing surface.

[0081] Thus, the tape ridges may be used to guide the path of the tape as it passes through the module. As previously described, the tape ridges may be used to ensure that the tape passes close enough to the portion of the module having the magnetic transducer, preferably so that reading and / or writing is performed efficiently, e.g., with a low error rate.

[0082] Magnetic tapes can be stored in cassettes, which in turn are stored in storage slots or the like in a data repository. Cassettes can be stored in a library so that they are accessible for physical retrieval. In addition to magnetic tapes and cassettes, a data repository can also include a data storage drive that stores data to and / or retrieves data from magnetic tapes. In addition, magnetic tape libraries and the components included therein can implement a file system that enables access to magnetic tapes and the data stored on the magnetic tapes.

[0083] File systems can be used to control how data is stored in and retrieved from memory. Thus, a file system can include processes and data structures used by an operating system to track files in memory, for example, the way files are organized in memory. Linear Tape File System (LTFS) is an exemplary format of a file system that can be implemented in a given library to enable access to compatible tapes. It should be understood that the different methods herein can be implemented with a wide range of file system formats, including, for example, IBM Spectrum Archive Library Version (LTFSLE). However, in order to provide context and to assist readers individually, some of the following methods may be described with reference to LTFS (which is a type of file system format). This is accomplished by way of example only and should not be considered as a limitation of the present invention as defined in the claims.

[0084] A tape cartridge can be "loaded" by inserting it into a tape drive, and can be "unloaded" by removing it from the tape drive. Once loaded into a tape drive, the tape in the cartridge can be "threaded" through the drive by physically pulling the tape (the magnetic recording portion) from the cartridge and passing it over the tape drive's head. In addition, the tape can be attached to a take-up reel (e.g., see above). Figure 1A 121) to move the tape on the head.

[0085] Once threaded in the tape drive, the tape in the cartridge can be "mounted" by reading metadata on the tape and bringing the tape into a state where LTFS can use the tape as a component of the file system. In addition, to "unload" the tape, metadata is preferably first written on the tape (e.g., as an index), after which the tape can be removed from a state that allows LTFS to use the tape as a component of the file system. Finally, to "unload" the tape, the tape is unattached to the take-up reel and is physically placed back inside the cassette again. The cassette can remain loaded into the tape drive even after the tape has been unloaded, such as while waiting for another read and / or write request. However, in other cases, the cassette can be unloaded from the tape drive when the tape is unloaded, such as described above.

[0086] Magnetic tape is a sequential access medium. Thus, new data is written to the tape by appending the data to the end of previously written data. Therefore, when data is recorded in a tape having only one partition, metadata (e.g., allocation information) is continuously appended to the end of previously written data as it is frequently updated and is rewritten to the tape accordingly. As a result, when the tape is first mounted in order to access the latest copy of the metadata corresponding to the tape, the last information is read. However, this introduces a considerable amount of delay in the process of mounting a given tape.

[0087] To overcome this delay caused by a single partitioned stripe medium, the LTFS format includes a stripe divided into two partitions, including an index partition and a data partition. The index partition can be configured to record metadata (meta information), such as file allocation information (index), while the data partition can be configured to record the body of the data, such as the data itself.

[0088] See also Fig. 9 , a tape 900 having an index partition 902 and a data partition 904 is shown according to one method. As shown, data files and indexes are stored on the tape. As will be appreciated by those skilled in the art when reading this specification, the LTFS format allows index information to be recorded in the index partition 902 at the beginning of the tape 906.

[0089] When index information is updated, it preferably overwrites the previous version of the index information, thereby allowing access to the currently updated index information at the beginning of the tape in the index partition. Fig. 9 In the specific example shown in , the latest version of metadata Index 3 is recorded in index partition 902 at the beginning of tape 906. In contrast, all three versions of metadata Index 1, Index 2, Index 3 and data files A, File B, File C, File D are recorded in data partition 904 of the tape. Although Index 1 and Index 2 are old (e.g., obsolete) indexes, since information is written to the tape by appending the information to the end of previously written data as described above, these old indexes Index 1, Index 2 remain stored on tape 900 in data partition 904 without being overwritten.

[0090] The metadata in the index partition 902 and / or the data partition 904 may be updated the same or differently depending on the desired method. According to some methods, the metadata of the index and / or data partitions 902, 904 may be updated in response to the tape not being mounted, for example, so that when the tape is mounted again, the index can be quickly read from the index partition. The metadata is preferably also written to the data partition 904, so that the tape can be mounted using the metadata recorded in the data partition 904, for example, as a backup option.

[0091] According to an example which is not intended to limit the invention, LTFSLE may be used to provide functionality for writing indexes to a data partition when a user explicitly instructs the system to do so or at a time specified by a predetermined period settable by the user (e.g., so that data loss in the event of a sudden power outage may be mitigated).

[0092] As previously mentioned, the process of reading multiple files from different locations on a tape includes repositioning the magnetic head between the various physical locations where the files are stored. Conventional processes have performed these read operations so that the files are accessed in an order corresponding to the order in which the files themselves are related to each other. For example, file A is accessed first, file B is accessed second, file C is accessed second, and so on. This is partly due to the fact that these conventional processes only reference the record number of the file index when evaluating the order in which the files are accessed. As a result, accessing files in this way is often inefficient because of the repeated movement performed to find the beginning of each file on the tape. This is particularly evident in the case where the tape drive repeatedly rewinds to access files that have been delivered. In addition, as the number of files accessed increases, the amount of head repositioning performed by these conventional processes also increases, thereby further increasing data access time. For example, a magnetic tape can store approximately 12 terabytes of uncompressed data. In addition, the average size of a file written on a magnetic tape is approximately 10 megabytes, which translates into approximately 1,200,000 files stored on a given magnetic tape.

[0093] In sharp contrast to these conventional shortcomings experienced by conventional implementations, different methods in the methods included herein can access (e.g., read) multiple files from a tape in a more efficient manner. These improvements are achieved as a result of sorting the files to be accessed into a specific order that minimizes the amount of repositioning performed by the tape drive when actually reading the files. In addition, various methods in the methods included herein divide the various files to be accessed into different groups (or portions) based on their respective physical storage locations on the tape. This allows one group of files to be sorted while accessing each file in another group. As a result, not only the number of head repositioning operations is reduced, but also the efficiency of utilizing computing resources during the process of sorting files is improved, for example, as will be described in further detail below.

[0094] Reference now Fig.10 , a flow chart of a method 1000 for copying a plurality of files specified in a read request according to one method is shown. The method 1000 may be used in various methods according to the present invention. Figure 1A-9 Of course, as will be appreciated by those skilled in the art upon reading this specification, method 1000 may include more Fig.10 More or fewer operations may be performed as specifically described in .

[0095] Each step of method 1000 may be performed by any suitable component of an operating environment. For example, in different scenarios, method 1000 may be performed in part or in full by a controller, a processor, a computer, etc., or some other device having one or more processors therein. Therefore, in some methods, method 1000 may be a computer-implemented method. In such methods, the computer used to implement the method may include the tape drive itself or a portion thereof, such as a controller, a tape, an external host, a server, etc. In addition, the terms "computer", "processor", and "controller" may be used interchangeably with respect to any method herein, and such components are considered equivalent in many different permutations of the present invention.

[0096] Additionally, for those methods with a processor, a processor (e.g., a processing circuit, chip, and / or module implemented in hardware and / or software), and preferably having at least one hardware component, may be used in any device to perform one or more steps of method 1000. Illustrative processors include, but are not limited to, a central processing unit (CPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc., combinations thereof, or any other suitable computing device known in the art.

[0097] like Fig.10 As shown, operation 1002 of method 1000 includes receiving a request to read a plurality of files from a tape. Depending on the method, the request may be received from a user (e.g., a host), a running application, another storage device, etc. It should also be noted that the term "file" as used herein is by no means intended to be limiting. Instead, a "file" as used herein may refer to any desired information grouping, such as a data object, a specific document (e.g., a word processing document), a predetermined amount of data and / or metadata, etc.

[0098] In response to receiving the request, operation 1004 includes sending a request for one or more tape directories, each tape directory including information identifying an area on the tape where multiple files are stored (e.g., written). In other words, the tape directory identifies the physical location on the tape where different files are stored, preferably including those files specified in the received request.

[0099] In some methods, the tape directory is stored in a tape drive including for accessing the tape and / or in a memory coupled thereto. In other methods, the tape directory may be stored as information in a cartridge memory, initially on the tape itself as housekeeping data, etc. Therefore, the memory storing the tape directory is by no means limited to one or more memory chips on the tape drive and / or the host server. Thus, in some methods, the request for the tape directory sent in operation 1004 is sent by the host server to one or more tape drives. However, the request for the tape directory may be sent to any desired location, for example, depending on where the tape directory is stored and / or from where it can be accessed.

[0100] Operation 1006 also includes obtaining one or more tape directories. As described above, in some methods, a request for one or more tape directories is sent from one or more tape drives storing the tape directories. Thus, in some methods, obtaining the tape directory may simply involve receiving the tape directory from one or more tape drives. According to an exemplary method that does not limit the present invention in any way, the one or more tape directories may be obtained by specifying the desired tape directory using a newly defined buffer identifier associated with the directory and using a read buffer command to read the terminal discard from the tape drive. In other methods, the tape directory may be obtained as a result of directly accessing a memory storing the tape directory.

[0101] In addition, operation 1008 includes using the first one of the one or more tape directories to map each in the file to one of the areas storing the corresponding files on the tape. In some methods, the record number of each file can be used in conjunction with the tape directory to map each in the file to its corresponding area on the tape. The files written to the tape are accessed based on the records. These records are logically numbered sequentially from the beginning of the tape in order. However, because the tape drive writes files (e.g., data) on the tape while compressing the records, the position of the files written on the tape changes according to the type of data and its compressibility. Therefore, when the record is specified and the seek request for the file is received, the information included in the tape directory can be used to predict the physical position of the file on the tape.

[0102] According to an exemplary method that does not limit the present invention in any way, using the tape directory and / or record number of each file to map each file to one of the areas on the tape where the corresponding file is stored includes identifying the range of blocks corresponding to a given file. The block ranges of different files can be identified using any information and / or process that is obvious to those skilled in the art after reading this specification. For example, in some methods, the record number of the file can be used to determine the corresponding block range. In addition, a given file is assigned to an area on the tape that includes the range of blocks corresponding to the given file, for example, as will be understood by those skilled in the art after reading this specification.

[0103] According to other methods, identifying the range of blocks corresponding to a given file can involve obtaining a block range belonging to a segment describing the first record number and / or size on the file. In some embodiments, this can be achieved by using an interface of the corresponding file system. In addition, the block ranges of all files on the file system can be further used to determine the desired order of reading multiple files, for example, as will be described in further detail below. It should also be noted that when a segment belongs to multiple tape directories, the segment is preferably divided into multiple block ranges corresponding to the interrupted segments of each tape directory, for example, as will be understood by a person skilled in the art after reading this specification. Thereafter, the divided segments are considered to belong to the corresponding block range. Obtaining metadata corresponding to the file can also be performed in an attempt to identify the range of blocks corresponding to a given file.

[0104] With respect to the regions used herein, the tape can be effectively divided into a plurality of regions, each corresponding to a different physical portion (e.g., region) of the tape. For example, in some methods, the tape can be effectively divided into two regions along the length of the tape. In some methods, each of these regions can be represented in the same tape directory, while in other methods, a tape directory can be established for each subset of the regions, respectively. According to an exemplary method that does not limit the present invention in any way, a tape having a length of approximately 1,000 meters can provide a tape directory for each 500-meter long segment (e.g., half) of the tape. In some methods, the tape can be further divided based on the windings of the tape. Therefore, when considering the fact that the tape can be further divided into two parts along its length as described above, the entire tape with 208 windings can be divided into a total of 416 regions. Therefore, in some methods, each region on the tape corresponds to half of a full winding on the tape.

[0105] In some methods, the last written record number is also stored in each area of ​​the tape directory. Thus, when specifying a record number for a file of interest, the tape drive may be able to refer to the tape directory in order to determine the area on the tape where the file of interest is stored. In other words, the tape directory can be used to determine the physical storage location of the file of interest. The physical storage location can further be used to instruct the tape drive to adjust the relative position between the head and the tape so that the file of interest can be read. According to some methods, the tape drive advances and / or rewinds (e.g., performs a rough search) the tape at a relatively fast speed until it reaches a position on the tape that is close enough to the physical location where the file of interest is stored. At this point, the tape drive can reduce the speed at which the tape is advanced and / or rewound (e.g., performs a fine search) so that data written on the tape can be read even until the file of interest is located.

[0106] As described above, operation 1008 includes using the first of the one or more tape directories to map each of the files to an area on the tape storing the corresponding file. Thus, operation 1008 groups the requested files so that those files stored in the same area are included in the same subset. Still referring to Fig.10 , operation 1010 further includes sorting a first subset of files stored in the same first region on the tape into a first order. In other words, the files stored in the same region and that have been assigned to the same subset are preferably organized in a particular order. It should be noted that the files in the first subset are not physically sorted (e.g., overwritten) into the first order on the tape, but rather a determination is made as to the preferred order in which the files in the first subset will be accessed.

[0107] Again, different methods among the methods included herein enable accessing (e.g., reading) multiple files from a tape in a more efficient manner than is conventionally achievable. These improvements are achieved by ordering the files to be accessed into a particular order that minimizes the amount of tape repositioning performed by the tape drive when actually reading the files. Thus, operation 1010 preferably orders the files in the first subset so that the data access time experienced due to reading each file in the first subset according to the first order is less than the data access time experienced due to reading each file in the first subset in any order different from the first order. This improved data access time is due to using the physical location of each file stored in the first area to determine the order, thereby minimizing the amount of head repositioning performed by the tape drive relative to the tape when reading the files in a given order. In some methods, the files in the first subset are also ordered into the first order using (e.g., based on) a first record number associated with each of the corresponding files.

[0108] From operation 1010, method 1000 proceeds to decision 1012, which includes determining whether all files identified in the read request and corresponding to the first tape directory have been sorted. In other words, decision 1012 determines whether each of the subsets of files represented in the first tape directory has been evaluated. In response to determining that at least one file has not been sorted, method 1000 proceeds to operation 1014. There, operation 1014 includes advancing to a subsequent (e.g., next) subset of files. It should be noted that method 1000 can advance between subsets of files in any desired order. Therefore, with respect to the present description, a "subsequent subset of files" can refer to those files included in an area adjacent to a previously sorted area, included in an area of ​​the next largest number of requested files, and the like.

[0109] In addition, operation 1016 includes sorting the subsequent subsets of files into a subsequent order. Preferably, the subsequent subsets of files are sorted based on the physical location of each file and / or the first record number associated with each file. However, any one or more of the methods described above with respect to operation 1010 may be used to sort the subsequent subsets of files into a subsequent order.

[0110] As the number of requested files increases, the computational complexity involved in sorting the requested files so that they can be accessed (e.g., read) in an efficient manner will also increase. Thus, by sorting the files in each subset separately, method 1000 is able to process more than one subset of files simultaneously and in parallel, thereby significantly improving operational efficiency. For example, when sorting subsequent subsets of files in operation 1016, the tape drive is instructed to read each of the files in the previous subset (here, the first subset) according to the previous order (here, the first order). See operation 1018. One or more instructions may be sent to the tape drive, which specifies a specific order in which files are to be read from the tape. However, the actual process of reading files from the tape can be performed using any desired process, such as the process described herein with respect to Figure 1A-9 The processes described.

[0111] Thus, operations 1016 and 1018 are preferably performed simultaneously and in parallel, so that one subset of the files is sorted while another subset of the files is actually read in the previously determined order. In some methods, operations 1016 and 1018 can be performed simultaneously and in parallel using the same host server (e.g., see below). Fig.11 1102). However, in other approaches, more than one server, processor, etc. may be implemented to perform operations simultaneously and in parallel.

[0112] From operation 1018, method 1000 proceeds to operation 1020, which includes actually receiving information (e.g., data, metadata, etc.) that has been read by the tape drive from the subset of files. In some methods, the information may be received in a stream as the files are being read, while in other methods, the information read from all files in the subset may be sent as a packet by the tape drive in response to completing the read operation. In addition, the information received from the tape drive is stored in a memory (e.g., a cache, a buffer, etc.). See operation 1022.

[0113] Optional operation 1023 also includes compiling the information that has been received from the tape drive and stored in the memory. The compiled information is also sent (e.g., transmitted) to the remote storage device. The remote storage device preferably corresponds to the expected target location for the copy of the information. Therefore, in some methods, the expected target location can be specified in the read request received in operation 1002. In addition, one or more instructions can be sent to the remote storage device to store a copy of the received information in the remote storage device, for example, as described in further detail below.

[0114] From operation 1023, method 1000 returns to decision 1012 to repeat the determination of whether all files corresponding to the first tape directory identified in the read request have been sorted. In response to determining that there are still one or more files corresponding to the first tape directory identified in the read request that have not been sorted, method 1000 proceeds to operation 1014, so that operations 1014-1022 are repeated for the next subsequent subset of files other than the previous subsequent subset. For example, operation 1014 can be repeated so that the next subsequent subset of files can be advanced to, and operation 1018 can be repeated so that the previous subsequent subset of files can be read according to the previous subsequent order. It should be noted that "the next subsequent subset of files" refers to the next subset of files that follows the previously checked subset of files. Similarly, "the previous subsequent subset of files" refers to the subset of files evaluated before continuing to "the next subsequent subset of files". Therefore, the terms "next subsequent" and "previous subsequent" are at least relative to each other. Subsequently, processes 1012-1022 may be repeated any number of times, such as as an iterative process, depending on the number of files identified in the read request and corresponding to the first tape directory.

[0115] However, in response to determining that all files identified in the read request and corresponding to the first tape directory have been sorted, method 1000 proceeds to decision 1024. There, decision 1024 includes determining whether all of the one or more tape directories obtained in operation 1006 have been evaluated. In response to determining that at least one of the obtained tape directories has not been evaluated, method 1000 returns to operation 1008 so that the next tape directory in the tape directory can be used to map each of the files to one of the areas on the tape storing the corresponding file. It can be seen that any one or more of the methods described above can be implemented to repeat operation 1008 and processes 1010-1022.

[0116] Returning to decision 1024, method 1000 proceeds to operation 1026 in response to determining that all obtained tape directories have been evaluated. There, operation 1026 includes instructing the tape drive to read each file in the latest subset according to the order formed in the last iteration of operation 1016. It can be seen that any one or more of the methods described above with respect to operation 1018 can be implemented to perform operation 1026. In addition, operation 1028 includes actually receiving information that has been read from the latest file subset by the tape drive, for example, according to any of the methods described above with respect to operation 1020. The received information is further stored in the memory together with other information received from the tape drive. See operation 1030. For example, as will be understood by those skilled in the art after reading this specification, when performing operation 1030, any one or more of the methods described above with respect to operation 1022 can be implemented.

[0117] Continuing to operation 1032, the information that has been received from the tape drive and stored in the memory is compiled and sent (e.g., transmitted) to the remote storage device. As described above, segments that extend across more than one tape directory can be divided accordingly and are considered to belong to corresponding block ranges. Thus, a single block range is used to generate those files consisting of one block range. However, files consisting of multiple block ranges are preferably generated in the following manner: the data of the block range is filled at the corresponding offset and, for example, a sparse function is used to temporarily leave the remaining part empty. Since an additional block range including at least another part of such a file is read and received, it is preferred that at least a portion of the file is used to fill in the missing portion and establish a corresponding file. In other words, when each of the corresponding blocks is read, a file consisting of multiple block ranges is incrementally compiled.

[0118] The remote storage device preferably corresponds to the intended target location for the copy of the information. In some methods, the intended target location can be specified in the read request received in operation 1002. In addition, one or more instructions are sent to the remote storage device to store a copy of the received information in the remote storage device. See operation 1034. Subsequently, the remote storage device is preferably different from and separated from the tape from which the information was previously read. Therefore, a backup copy of the requested information can be created for further use, redundant storage purposes, data migration, etc.

[0119] Fig.10 The flowchart of proceeds from operation 1034 to operation 1036, whereby method 1000 may end. However, it should be noted that although method 1000 may end after reaching operation 1036, any one or more of the processes included in method 1000 may be repeated to perform other read operations involving multiple files stored on a tape. In other words, any one or more of the processes included in method 1000 may be repeated to perform subsequently received read requests.

[0120] Thus, the various processes included in method 1000 enable accessing (e.g., reading) multiple files from a tape in a more efficient manner than would conventionally be possible. As previously described, using the physical location of each file stored in a given area to determine a preferred order in which to read the files allows minimization of the amount of head repositioning performed by the tape drive relative to the tape when reading the files in a given order. This also results in improved performance latency. For example, the data access time experienced as a result of reading each file in a given subset according to an order determined by the various processes in method 1000 is less than the data access time experienced as a result of reading each file in the same subset in any other order.

[0121] Performance is further improved by sorting files in a given subset while the tape drive is reading files in another subset (which are already sorted) from the tape. This effectively reduces the amount of computing resources consumed at a given point in time by overlapping processing operations, in addition to dividing the associated computational complexity into region-sized chunks.

[0122] The processes included in method 1000 may be performed by any suitable component of an operating environment. For example, in different approaches, method 1000 may be performed in part or in whole by a host server, a controller, a processor, a computer, etc., or some other device having one or more processors therein. Fig.11 , according to one method, a data storage system 1100 that can be used to implement one or more processes included in the above method 1000 is shown. It can be seen that the data storage system 1100 can be implemented in combination with features from any other method listed herein, such as referring to other figures (such as Fig.10 ) described herein. However, such data storage system 1100 and other systems presented herein may be used in a variety of applications and / or permutations, which may or may not be specifically described in the illustrative methods listed herein. Further, the data storage system 1100 presented herein may be used in any desired environment. Therefore, Fig.11 (and other figures) may be considered to include any possible permutations.

[0123] As shown, the data storage system 1100 includes a server 1102 coupled to a tape drive 1104. With respect to this description, it should be noted that "coupled to" is intended to indicate that the server 1102 is at least capable of communicating with the tape drive 1104. Thus, information, requests, commands, etc. may be sent between the server 1102 and the tape drive 1104. Depending on the method, the server 1102 may be coupled to the tape drive 1104 using a wireless connection (e.g., WiFi, Bluetooth, cellular network, etc.), a wired connection (e.g., a cable, a fiber optic link, wires, etc.), etc.; or any other type of connection that would be apparent to one of skill in the art after reading this specification.

[0124] In a preferred embodiment, the server 1102 acts as a host server. Therefore, the server 1102 includes an application module 1106 that can be used to run any number and / or type of applications. According to some methods, the application module 1106 can perform the above Fig.10 One or more processes included in the method 1000. Fig.11 , the application module 1106 is also coupled to the LTFS module 1108. The LTFS module 1108 is used to manage LTFS, which can be implemented on the server 1102 and / or the tape drive 1104. LTFS is a file system in which a tape is identified as a file and it is capable of identifying records as files on a file system with previously recorded metadata (e.g., such as a record number and / or file name included in a file on an index). Thus, in some methods, the LTFS module 1108 communicates with the tape drive through a device driver. The application module 1106 can also read a file specified by a user using an application programming interface of the file system 1100.

[0125] The data read from the tape can be copied to the target storage location, for example, according to any of the methods described herein. For example, in some methods, redundant copies of multiple files can be created on different storage devices such as HDDs. It can be seen that the various methods described herein can be implemented in the case where data is being transferred between layers of a multi-layer data storage system.

[0126] For example, see Fig.12, shows a storage system 1200 according to one method. It should be noted that according to various methods, in Fig.12 Some of the elements shown in the embodiment may be implemented as hardware and / or software. The storage system 1200 may include a storage system manager 1212 for communicating with multiple media and / or drives on at least one higher storage layer 1202 and at least one lower storage layer 1206. The higher storage layer 1202 may preferably include one or more random access and / or direct access media 1204, such as a hard disk in a hard disk drive (HDD), a non-volatile memory (NVM), a solid state memory in a solid state drive (SSD), flash memory, an SSD array, a flash memory array, etc., and / or other media indicated herein or known in the art. The lower storage layer 1206 may preferably include one or more lower performance storage media 1208, including sequential access media (such as tapes in tape drives and / or optical media), slower access HDDs, slower access SSDs, etc., and / or other storage media indicated herein or known in the art. One or more additional storage layers 1216 may include any combination of storage memory media desired by the designer of the system 1200. Also, either of the upper storage tier 1202 and / or the lower storage tier 1206 may include some combination of storage devices and / or storage media.

[0127] The storage system manager 1212 can access the network 1210 (such as a storage area network (SAN) (such as Fig.12 The storage system manager 1212 may communicate with the drives and / or storage media 1204, 1208 on the upper storage tier 1202 and the lower storage tier 1206 via a host interface 1214 (not shown) or some other suitable network type. The storage system manager 1212 may also communicate with one or more host systems (not shown) via a host interface 1214, which may or may not be part of the storage system manager 1212. The storage system manager 1212 and / or any other components of the storage system 1200 may be implemented in hardware and / or software, and may utilize a processor (not shown) such as a central processing unit (CPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc., for executing commands of a type known in the art. Of course, any arrangement of storage systems may be used, as will be apparent to those skilled in the art upon reading this specification.

[0128] In more methods, the storage system 1200 may include any number of data storage layers, and may include the same or different storage memory media within each storage layer. For example, each data storage layer may include the same type of storage memory media, such as HDD, SSD, sequential access media (tapes in tape drives, optical disks in optical disk drives, etc.), direct access media (CD-ROM, DVD-ROM, etc.), or any combination of media storage types. In one such configuration, the higher storage layer 1202 may include most of the SSD storage media for storing data in a higher performance storage environment, and the remaining storage layers including the lower storage layer 1206 and the additional storage layer 1216 may include any combination of SSD, HDD, tape drives, etc. for storing data in a lower performance storage environment. In this way, more frequently accessed data, data with a higher priority, data that requires faster access, etc. can be stored in the higher storage layer 1202, while data that does not have one of these attributes can be stored in the additional storage layer 1216 (including the lower storage layer 1206). Of course, after reading this specification, those skilled in the art can design many other combinations of storage media types according to the methods presented herein to implement different storage schemes.

[0129] According to some methods, a storage system (e.g., 1200) may include logic configured to receive a request to open a data set, logic configured to determine whether the requested data set is stored in multiple associated parts in a lower storage tier 1206 of the tiered data storage system 1200, logic configured to move each associated part of the requested data set to a higher storage tier 1202 of the tiered data storage system 1200, and logic configured to assemble the requested data set from the associated parts on the higher storage tier 1202 of the tiered data storage system 1200.

[0130] According to a working example, which illustrates the improvements achieved by the various methods included herein, but does not limit the invention in any way, a read request is received that specifies 1,000,000 files (i.e., n=1,000,000). The conventional process for sorting only this number of specified files has a computational complexity of O(n×log(n)). Thus, it can be estimated that it will take about 24 hours to sort these 1,000,000 specified files into the order in which they should be read using the conventional process.

[0131] In stark contrast, the different methods presented herein introduce a process for dividing "n" files into "k" different regions with a computational complexity of O(n×log(k)). Although these computational complexities cannot be simply compared, in the case where "n" equals 1,000,000 and "k" equals 2 halves × 208 windings or a total of 416 regions, it can be expected that the computational complexity can be reduced by the following percentages compared to the conventionally achievable computational complexity:

[0132]

[0133] Thus, some of the methods included herein are able to sort the same 1,000,000 specified files into the order in which they should be read within the following amount of time: 24 hours x 43.7% = 10 hours and 29 minutes.

[0134] The computational complexity in each tape directory area can be further expressed as O((n / k) × log(n / k)). However, the following equation also incorporates the computational efficiency achieved by sorting the files simultaneously and in parallel with the previously sorted files being read by the tape drive:

[0135]

[0136] Thus, various methods in the methods included herein can reduce the computational complexity to only 0.135% of the computational complexity experienced by conventional procedures for accessing multiple files on a tape. Following the aforementioned example of a conventional procedure that takes about 24 hours to sort all 1,000,000 files, the methods included herein can sort the files contained in each tape directory in about 2 minutes. In addition, the tape drive can advance and / or rewind the tape at about 5.6 meters per second. Thus, the tape drive can read the data in the file from a given tape directory area with a length of about 500 meters in about 1 minute and 30 seconds. In comparison, a tape drive with half the height of a standard tape drive can cover the same 500 meters of tape in about 1 minute and 46 seconds at a reading speed of about 4.7 meters per second.

[0137] Since the sorting process for each tape directory is performed in parallel with the process of reading files from the tape in the preferred method, an additional 15 to 30 seconds are used to perform the sorting process for the corresponding tape directory. Therefore, if the subsequent reading process is started when the calculation after the data is read from the tape is completed, a rewind of about 3 seconds to 5 seconds from the "stop" position to the reading "start" position occurs, for example, as will be understood by those skilled in the art after reading this specification. Therefore, it is desirable to predict in advance the time involved in performing the calculations and adjusting the forward or rewind speed of the tape.

[0138] According to an example that does not limit the invention in any way, for a tape speed of about 4.23 meters per second, a calculation time of about 118 seconds is experienced, and for a tape speed of about 3.87 meters per second, a calculation time of about 129 seconds is experienced. In addition, fine tuning can also be performed by combining multiple tape speeds. When 15 to 30 seconds are added to each area of ​​the tape, the amount of time spent evaluating the entire tape is as follows: 15 seconds x 208 areas = 52 minutes, or alternatively, 30 seconds x 208 areas = 104 minutes (1 hour and 44 minutes).

[0139] Combining these tape positioning delays with the file sorting efforts described above yields the total time associated with performing a read operation specifying 1,000,000 files as follows: (24 hours x 43.7%) + (52 minutes or alternatively 1 hour and 44 minutes) = 11 hours and 21 minutes or 12 hours and 13 minutes, depending on the amount of time incorporated for each region of tape. Thus, it is contemplated that the various methods included herein are capable of performing multiple file read and / or copy requests in approximately half the amount of time that conventional processes are capable of achieving the same results.

[0140] Again, these significant improvements are achieved at least in part due to the use of a tape directory. For example, when a read or copy request specifying a plurality of files is received, a sort is performed based on the areas on the tape where the data of the respective files are stored, particularly with reference to the tape directory in advance. The tape drive is then able to sort the records of each area, and then is able to read the records in the sorted order, while sorting the files in the next area of ​​the tape. According to an exemplary method that is by no means intended to limit the present invention, a read and / or copy request specifying a plurality of files that have been written on a tape is received. Subsequently, tape directory information is obtained from the tape drive, the record number of each copy target file is queried, and then it is sorted into a set of corresponding tape directory areas. The files belonging to the first tape directory area are then sorted by record number and physical location in the area. Once sorted, the files are read in the sorted order, while sorting the files in subsequent areas of the tape. Files are generated using the data read from the tape and ultimately copied to the target storage location.

[0141] The present invention may be a system, method and / or computer program product of any possible degree of technical detail integration. The computer program product may include a computer-readable storage medium (or multiple media) having computer-readable program instructions thereon for causing a processor to execute various aspects of the present invention.

[0142] Computer readable storage medium can be a tangible device that can retain and store instructions for use by instruction execution devices. Computer readable storage medium can be, for example but not limited to, electronic storage device, magnetic storage device, optical storage device, electromagnetic storage device, semiconductor storage device or any suitable combination of the above. A non-exhaustive list of more specific examples of computer readable storage medium includes the following: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device such as punch card or a protruding structure in a groove with instructions recorded thereon, and any suitable combination of the above. Computer readable storage medium as used herein should not be interpreted as a temporary signal itself, such as radio waves or other free propagating electromagnetic waves, electromagnetic waves propagated by waveguides or other transmission media (e.g., light pulses passing through fiber optic cables) or electrical signals emitted by wires.

[0143] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or downloaded to an external computer or external storage device. The network can include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions to be stored in a computer-readable storage medium in the corresponding computing / processing device.

[0144] The computer-readable program instructions for performing the operation of the present invention can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, configuration data of integrated circuits, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as Smalltalk, C++, etc.) and process programming languages ​​(such as "C" programming languages ​​or similar programming languages). The computer-readable program instructions can be executed completely on the user's computer, partially on the user's computer, executed as an independent software package, partially on the user's computer, partially on a remote computer, or completely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network (including a local area network (LAN) or a wide area network (WAN)), or can be connected to an external computer (for example, using an Internet service provider through the Internet). In certain embodiments, the electronic circuit including, for example, a programmable logic circuit, a field programmable gate array (FPGA) or a programmable logic array (PLA) can perform computer-readable program instructions by utilizing the state information of the computer-readable program instructions to personalize the electronic circuit so as to perform various aspects of the present invention.

[0145] The present invention will be described below with reference to the flowchart and / or block diagram of the method, device (system) and computer program product according to the embodiment of the present invention. It should be understood that each box of the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer readable program instructions.

[0146] These computer-readable program instructions can be provided to a processor of a computer or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more boxes of the flowchart and / or block diagram. These computer-readable program instructions can also be stored in a computer-readable storage medium, which instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable storage medium in which the instructions are stored includes a manufactured product containing instructions for implementing aspects of the functions / actions specified in one or more boxes of the flowchart and / or block diagram.

[0147] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device, so that a series of operational steps are performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, so that the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in or in multiple boxes in the flowchart and / or block diagram.

[0148] The flow chart and block diagram in the accompanying drawings show the architecture, function and operation of the possible implementation of the system, method and computer program product according to different embodiments of the present invention. To this end, each box in the flow chart or block diagram may represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing a specified logical function. In some alternative implementations, the function marked in the box may not occur in the order marked in the figure. For example, the two boxes shown in succession can actually be completed as a step, and are executed simultaneously, substantially simultaneously, in a partially or completely overlapping manner in time, or the boxes can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.

[0149] In addition, the system according to different embodiments may include a processor and logic integrated with the processor and / or executable by the processor, the logic being configured to perform one or more of the processing steps described herein. By being integrated with it, it is meant that the processor has logic embedded therein as hardware logic, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), and the like. Processor executable means that the logic is hardware logic; software logic, such as firmware, part of an operating system, part of an application; and the like, or some combination of hardware and software logic, which is accessible by the processor and configured to cause the processor to perform some functions when executed by the processor. The software logic can be stored on local and / or remote memory of any memory type, as known in the art. Any processor known in the art, such as a software processor module and / or a hardware processor, such as an ASIC, an FPGA, a central processing unit (CPU), an integrated circuit (IC), and the like can be used.

[0150] It will be clear that the different features of the aforementioned systems and / or methods may be combined in any way, so as to create multiple combinations from the description presented above.

[0151] It should also be appreciated that embodiments of the present invention may be provided as a service deployed on behalf of a client.

[0152] The inventive concepts disclosed herein have been presented by way of example to illustrate their numerous features in multiple illustrative scenarios, embodiments, and / or implementations. It should be appreciated that the concepts generally disclosed are viewed as modular and may be implemented in any combination, permutation, or synthesis thereof. In addition, any modifications, alterations, or equivalents of the features, functions, and concepts of the present disclosure that would be recognized by a person of ordinary skill in the art upon reading the instant description should also be considered within the scope of the present disclosure.

[0153] The description of various embodiments of the present invention has been presented for the purpose of illustration, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements to technologies found in the marketplace, or to enable those of ordinary skill in the art to understand the embodiments disclosed herein.

Claims

1. A computer-implemented method for accessing a file, the method comprising: receiving a request to read a plurality of files from a tape; obtaining a tape directory, the tape directory identifying an area on the tape storing the file; mapping each of the files to one of the areas on the tape storing the corresponding file using the tape directory; sorting a first subset of the files stored in the same first area on the magnetic tape into a first order, wherein the first order is determined using a physical location of each file stored in the first area and / or a first record number associated with each file; and at the same time: sorting a second subset of the files stored in the same second area on the magnetic tape into a second order, wherein the second order is determined using a physical location of each file stored in the second area and / or a first record number associated with each file; and A tape drive is instructed to read each file of the first subset of files according to the first order such that an amount of head repositioning performed by the tape drive when reading files in the first order is minimized.

2. The computer-implemented method of claim 1, wherein sorting the second subset of the files and instructing the tape drive to read each file of the files in the first subset are performed in parallel.

3. The computer-implemented method of any one of claims 1 to 2, comprising: at the same time: sorting subsequent subsets of said files stored in the same subsequent area on said tape into a subsequent order; as well as The tape drive is instructed to read each file of the files in the second subset according to the second order.

4. The computer-implemented method of claim 3, comprising: An iterative process is performed, the iterative process comprising: determining whether all of said files have been sorted; In response to determining that one or more of the files have not been sorted, advancing to a next subsequent subset of the files; and at the same time: sorting the next subsequent subset of the files stored in the same next subsequent area on the tape into a next subsequent order, and The tape drive is instructed to read each file of the files in a previous-subsequent subset according to a previous-subsequent order.

5. The computer-implemented method of claim 4, comprising: In response to determining that all of the files have been sequenced, the tape drive is instructed to read each of the files in the next subsequent subset according to the next subsequent sequence.

6. The computer-implemented method of any one of claims 1 to 2, comprising: receiving information read from each file of the files in the first subset; sending the received information to a storage device; as well as One or more instructions are sent to store a copy of the received information in the storage device.

7. The computer-implemented method of any of claims 1-2, wherein each region corresponds to half of a full wrap on the tape.

8. The computer implemented method of any of claims 1-2, wherein the computer implemented method is performed by a host server coupled to the tape drive.

9. The computer implemented method of claim 8, wherein the host server implements a linear tape file system.

10. The computer-implemented method of any of claims 1-2, wherein using the tape directory to map each of the files to one of the areas on the tape storing the corresponding file comprises: Identify the range of blocks corresponding to a given file; as well as The given file is assigned to a region on the tape containing the range of blocks corresponding to the given file.

11. A computer-implemented method as described in any of claims 1-2, wherein a data access time experienced due to reading each file of the files in the first subset according to the first order is less than a data access time experienced due to reading each file of the files in the first subset in any order other than the first order.

12. A computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit to perform the method according to any one of claims 1 to 11.

13. A computer program product comprising software code portions for performing the method of any one of claims 1 to 11 when the computer program product is run on a computer.

14. A system for accessing a file, the system comprising: processor; The processor is configured to perform a computer-implemented method comprising: receiving, by the processor, a request to read a plurality of files from a magnetic tape; obtaining, by the processor, a tape directory, the tape directory identifying an area on the tape storing the file; mapping, by the processor, each of the files to one of the areas on the tape storing the corresponding file using the tape directory; sorting, by the processor, a first subset of the files stored in the same first region on the magnetic tape into a first order, wherein the first order is determined using a physical location of each file stored in the first region and / or a first record number associated with each file; and at the same time: sorting, by the processor, a second subset of the files stored in the same second region on the magnetic tape into a second order, wherein the second order is determined using a physical location of each file stored in the second region and / or a first record number associated with each file; and The tape drive is directed, by the processor, to read each file of the first subset according to the first order such that an amount of head repositioning performed by the tape drive when reading files in the first order is minimized.

15. The system of claim 14, wherein ordering the second subset of the files and instructing the tape drive to read each file of the files in the first subset are performed in parallel.

16. The system of claim 14 or 15, comprising: at the same time: sorting subsequent subsets of said files stored in the same subsequent area on said tape into a subsequent order; as well as The tape drive is instructed to read each file of the files in the second subset according to the second order.

17. The system according to claim 16, comprising: An iterative process is performed, the iterative process comprising: Determine whether all files have been sorted; In response to determining that one or more of the files have not been sorted, advancing to a next subsequent subset of the files; and at the same time: sorting the next subsequent subset of the files stored in the same next subsequent area on the tape into a next subsequent order, and The tape drive is instructed to read each of the files in the previous-subsequent subset according to a previous-subsequent order.

18. The system according to claim 17, comprising: In response to determining that all of the files have been sequenced, the tape drive is instructed to read each of the files in the next subsequent subset according to the next subsequent sequence.

19. The system of any one of claims 14 to 15, comprising: receiving information read from each file of the files in the first subset; sending the received information to a storage device; as well as One or more instructions are sent to store a copy of the received information in the storage device.

20. The system of any one of claims 14 to 15, wherein each region corresponds to half of a full wrap on the tape.

21. The system of any one of claims 14-15, wherein the computer implemented method is performed by a host server coupled to the tape drive.

22. The system of claim 21, wherein the host server implements a linear tape file system.

23. The system of any one of claims 14 to 15, wherein using the tape directory to map each of the files to one of the areas on the tape storing the corresponding file comprises: Identify the range of blocks corresponding to a given file; as well as The given file is assigned to a region on the tape containing the range of blocks corresponding to the given file.

24. The system of any one of claims 14 to 15, wherein a data access time experienced as a result of reading each of the files in the first subset according to the first order is less than a data access time experienced as a result of reading each of the files in the first subset in any order other than the first order.