High resolution tape directory (HRTD) stored at end of data in an index partition

In one embodiment, a tape drive system includes a file system adapted for enabling sequential access to data on a tape medium, a file access controller adapted for managing the data, the file access controller including logic adapted for writing a file on the tape medium, logic adapted for writing a pointer of the written file in an index of the tape medium, wherein the pointer is managed by the file access controller, logic adapted for creating a high resolution tape directory (HRTD) including detailed location information of data on the tape medium, and logic adapted for storing the HRTD as part of end of data (EOD) of the index when a tape cartridge housing the tape medium is unloaded. Other systems, methods, and computer program products are described according to more embodiments.

BACKGROUND

The present invention relates to tape-based data storage, and more particularly, this invention relates to a high resolution tape directory (HRTD) which is stored at end of data (EOD) in an index partition.

Linear Tape File System (LTFS) is a file system that is implemented by using a partitioning function of a tape drive. In LTFS, a tape is divided into a plurality of partitions. Conventionally, two partitions are established, but there is no limit as to the number of partitions possible. Information on a file system is stored in a partition referred to as the Index Partition (IP). Data, which is the contents of one or more files, is stored in a partition referred to as the Data Partition (DP).

One reason to partition LTFS is the sequential nature of tape-based media, e.g., data stored to a tape must be accessed sequentially, from beginning to end or vice versa. In the data format of a tape, the writing of data is permitted only once if it is to be stored into the same partition. Meanwhile, subsequent data will also be erased when data is written by starting from some midpoint in the data.

When an update to a file is to be written to tape-based media, it is necessary to update the file system information relating to the data stored to the tape. Because of the format characteristics of any sequential access device on which the tape may be accessed, it follows that such information will be written once at the last position of the tape.

If there is only one partition, pointer information of the file system is acquired from the last logical position of the tape at each time the cartridge (housing the tape) is loaded. In some cases, it takes time to acquire the file system information. A known technique for solving the above problem is, in order to access the pointer information of a file system at a high speed immediately after the loading of a cartridge, to prepare a dedicated partition and store the file pointer information in this partition. In this way, it is possible to access the file-system pointer information on the tape at a high speed immediately after the loading of the cartridge.

One principal use of a conventional linear tape open (LTO) tape drive is for backup purposes. For example, when data written to the tape is read out, the necessity of randomly moving to (locating) data on the tape, such as sequentially transferring it from a certain specified location to the host, has been limited. The necessity of high-speed movement (locating) has been recognized in use in an Enterprise environment, such as a high performance storage system (HPSS), a virtual tape system (VTS), and/or a hierarchical storage management (HSM). In such use, a drive that has the ability to utilize the high resolution tape directory (HRTD) function in order to access a specified data location at a high speed, for example, IBM tape drive model TS1130/TS1140, is useful.

Tape directory (TD) is information that indicates, in detail, a location of data on a tape. This information is stored at a specified area on the tape, written at the time of cartridge unloading, and read out at the time of cartridge loading. The tape drive searches for the data through the tape on the basis of this location information. In standard LTO, this information is obtained by bisecting a tape in a longitudinal direction (which is referred to as TD) and is stored in a cartridge memory (CM), whereas in IBM tape drive model TS1130/TS1140, 64-divided detailed information sections (which is referred to as HRTD) are stored on the tape. Making more detailed location information available results in greater accuracy for determining the location of data stored on the tape, and also results in less time that is required to find the data on the tape. Therefore, the speed of accessing the data increases, which is beneficial to the art of data storage.

However, conventional LTO drives do not offer HRTD. Some reasons why it is not offered may include that the amount of HRTD information is too large to be stored in CM (which is only 8 KB), if a tape drive is in conformity to IBM's original format, such as TS1130/TS1140; and moreover, since LTO is an open standard, a storage location at a specified area on the tape is not defined therein. Also, the HRTD function is not as important if a tape drive is used primarily for backup purposes, as most tape drives typically are. In backup applications, the amount of time necessary to read data from a tape may not be the most important factor in choosing the tape storage over other methods and media.

However, in an LTO5 drive, which is a major use environment of the current linear tape file system (LTFS), a user may be able to read/write data on a tape, as well as data stored in other media formats, such as on a CD-R and/or a universal serial bus (USB) memory stick, via simple graphical user interface (GUI), such as drag and drop or by conducting command-line operation. For this reason, conventionally, time taken for accessing an arbitrary file on the tape is becoming more and more important in an LTO drive, as well as in other tape formats.

However, unlike the IBM tape drive model TS1130/TS1140, an LTO drive does not offer the HRTD function of pinpointing a data-read location at a high speed immediately after loading.

SUMMARY

In one embodiment, a tape drive system includes a file system adapted for enabling sequential access to data on a tape medium, a file access controller adapted for managing the data, the file access controller including logic adapted for writing a file on the tape medium, logic adapted for writing a pointer of the written file in an index of the tape medium, wherein the pointer is managed by the file access controller, logic adapted for creating a HRTD including detailed location information of data on the tape medium, and logic adapted for storing the HRTD as part of end of data (EOD) of the index when a tape cartridge housing the tape medium is unloaded.

In another embodiment, a method for managing detailed location information includes writing a file into a data partition of a tape medium, wherein the tape medium has two or more partitions including the data partition and an index partition, writing a pointer of the written file in the index partition of the tape medium, creating a HRTD, the HRTD including detailed location information of data in the data partition of the tape medium, and storing the HRTD as part of EOD of the index partition when a tape cartridge housing the tape medium is unloaded.

According to another embodiment, a computer program product for managing detailed location information includes a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code including computer readable program code configured for writing a file into a data partition of a tape medium, wherein the tape medium has two or more partitions including the data partition and an index partition, computer readable program code configured for writing a pointer of the written file in the index partition of the tape medium, computer readable program code configured for creating a HRTD, the HRTD including detailed location information of data in the data partition of the tape medium, and computer readable program code configured for storing the HRTD as part of EOD of the index partition when a tape cartridge housing the tape medium is unloaded.

DETAILED DESCRIPTION

The following description discloses several preferred embodiments of magnetic storage systems, as well as operation and/or component parts thereof. Specifically, a method and systems capable of storing high resolution tape directory (HRTD) on a tape in a format conforming to the linear tape open (LTO) format are presented in order to achieve high-speed access to data stored on and via a LTO drive.

In one general embodiment, a tape drive system includes a file system adapted for enabling sequential access to data on a tape medium, a file access controller adapted for managing the data, the file access controller including logic adapted for writing a file on the tape medium, logic adapted for writing a pointer of the written file in an index of the tape medium, wherein the pointer is managed by the file access controller, logic adapted for creating a HRTD including detailed location information of data on the tape medium, and logic adapted for storing the HRTD as part of end of data (EOD) of the index when a tape cartridge housing the tape medium is unloaded.

In another general embodiment, a method for managing detailed location information includes writing a file into a data partition of a tape medium, wherein the tape medium has two or more partitions including the data partition and an index partition, writing a pointer of the written file in the index partition of the tape medium, creating a HRTD, the HRTD including detailed location information of data in the data partition of the tape medium, and storing the HRTD as part of EOD of the index partition when a tape cartridge housing the tape medium is unloaded.

According to another general embodiment, a computer program product for managing detailed location information includes a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code including computer readable program code configured for writing a file into a data partition of a tape medium, wherein the tape medium has two or more partitions including the data partition and an index partition, computer readable program code configured for writing a pointer of the written file in the index partition of the tape medium, computer readable program code configured for creating a HRTD, the HRTD including detailed location information of data in the data partition of the tape medium, and computer readable program code configured for storing the HRTD as part of EOD of the index partition when a tape cartridge housing the tape medium is unloaded.

FIG. 1Aillustrates a simplified tape drive100of a tape-based data storage system, which may be employed in the context of the present invention. While one specific implementation of a tape drive is shown inFIG. 1A, it should be noted that the embodiments described herein may be implemented in the context of any type of tape drive system.

As shown, a tape supply cartridge120and a take-up reel121are provided to support a tape122. One or more of the reels may form part of a removable cartridge and are not necessarily part of the system100. The tape drive, such as that illustrated inFIG. 1A, may further include drive motor(s) to drive the tape supply cartridge120and the take-up reel121to move the tape122over a tape head126of any type. Such head may include an array of readers, writers, or both.

Guides125guide the tape122across the tape head126. Such tape head126is in turn coupled to a controller128via a cable130. The controller128, may be or include a processor and/or any logic for controlling any subsystem of the drive100. For example, the controller128typically controls head functions such as servo following, data writing, data reading, etc. The controller128may operate under logic known in the art, as well as any logic disclosed herein. The controller128may be coupled to a memory136of any known type, which may store instructions executable by the controller128. Moreover, the controller128may be configured and/or programmable to perform or control some or all of the methodology presented herein. Thus, the controller may be considered configured to perform various operations by way of logic programmed into a chip; software, firmware, or other instructions being available to a processor; etc. and combinations thereof.

The cable130may include read/write circuits to transmit data to the head126to be recorded on the tape122and to receive data read by the head126from the tape122. An actuator132controls position of the head126relative to the tape122.

An interface134may also be provided for communication between the tape drive100and a host (integral or external) to send and receive the data and for controlling the operation of the tape drive100and communicating the status of the tape drive100to the host, all as will be understood by those of skill in the art.

FIG. 1Billustrates an exemplary tape cartridge150according to one embodiment. Such tape cartridge150may be used with a system such as that shown inFIG. 1A. As shown, the tape cartridge150includes a housing152, a tape122in the housing152, and a nonvolatile memory154coupled to the housing152. In some approaches, the nonvolatile memory154may be embedded inside the housing152, as shown inFIG. 1B. In more approaches, the nonvolatile memory154may be attached to the inside or outside of the housing152without modification of the housing152. For example, the nonvolatile memory may be embedded in a self-adhesive label. In one preferred embodiment, the nonvolatile memory154may be a Flash memory device, ROM device, etc., embedded into or coupled to the inside or outside of the tape cartridge150. The nonvolatile memory is accessible by the tape drive and the tape operating software (the driver software), and/or other device, and is commonly referred to as cartridge memory (CM).

The proposed methods, according to various embodiments, produce great effects when used in combination with the linear tape file system (LTFS), and is based on a premise of Reading/Writing of a drive while building up HRTD information in a drive's memory. In fact, the performance of a tape drive improves when access to a file is made randomly on a LTO tape drive with LTFS (having multiple partitions). In one embodiment, the HRTD may be managed in conformity to the format of LTO to improve file-access performance in LTFS. Also, in one approach, HRTD may be stored as a part of special data referred to as end of data (EOD), the use of which is left to the discretion of each individual vendor, due to the protocol of the LTO format.

Also, when plural partitions exist (note that two or more logical compartments exist on a tape), judgment processing is performed to determine which one of the EODs that exist in the respective partitions is newer, thereby managing HRTD, which is a difference from conventionally used techniques.

More specifically, when HRTD is read from EOD, a validity check may be conducted in one approach to verify whether a standard tape directory (TD), which is a low resolution TD stored in cartridge memory (CM), matches with the HRTD or not.

Among HRTD read from EOD, HRTD of the other partition(s) (different from the partition that is read) is/are also made available for use. If it is in conformity to the multi-partition scheme, however, some sort of check may be utilized because there is a possibility that data of another partition might be rewritten after the writing of a certain EOD. To provide a solution to this situation, the validity check is conducted to verify whether standard TD matches with the HRTD or not.

For example, according to the LTO format specification, if the standard TD in a CM is broken, it is proper to perform TD recovery by using the TD of CM content read from EOD. However, this recovery method is available for the current partition only. It is impossible to recover the TD of the other partition(s) by using this recovery method. That is, in conventional tapes, TD that can be read from EOD and that can be used (irrespective of whether it is standard TD or HRTD) is limited to the EOD-written TD.

In principle, since the last-written EOD among all partitions could have TD of all partitions, it is possible to eliminate the need for the above HRTD validity check regardless of which one of the partitions is accessed for “write” by always rewriting the EOD of a specified partition and reading this EOD first immediately after the loading of a cartridge. To realize this advantage, however, the rewriting of the EOD of the partition, which has conventionally been unnecessary, has to be performed. Such rewriting should be avoided because it will have adverse effects on write performance of the tape drive. With some sort of validity check for putting HRTD to effective use, there is no need to worry about write performance. Thus, such a check is useful.

In addition, as shown inFIG. 2, the space in EOD to store the HRTD is just a vendor reserved area according to the LTO standard format. The EOD is positioned after all the data sets. The LTO format standard indicates that the CM data is stored in the first 8 KB, while the latter portion of the EOD is vendor specific space. The HRTD may be placed in this vendor specific area, in one embodiment. Other drive venders may write some data in this area for another use instead of HRTD. In this case, HRTD cannot be used without a validity check between the HRTD and the TD stored in the CM, since different data might be stored in this vender reserved area. This method may be applied to a single partition tape medium or to a multi-partition tape medium, which may include at least a data partition and an index partition, among others.

In one embodiment, as shown inFIG. 3, a tape drive system300comprises a file system (which may be enabled in a processor306in one embodiment) adapted for enabling sequential access to data on a tape medium302, a file access controller304adapted for managing the data, the file access controller304comprising logic adapted for writing a file on the tape medium302, logic adapted for writing a pointer of the written file in an index of the tape medium302, wherein the pointer is managed by the file access controller304, logic adapted for creating a HRTD including detailed location information of data on the tape medium302, and logic adapted for storing the HRTD as part of EOD of the index when a tape cartridge308housing the tape medium302is unloaded.

In another embodiment, the tape drive system300may adhere to LTO format standards, and the file system may adhere to LTFS. In another embodiment, the tape drive system300may include logic adapted for receiving, via the file system, a request to read out a specified file, logic adapted for loading a tape cartridge308housing a tape medium302which includes the specified file stored thereon, logic adapted for reading out a pointer from the tape medium302to acquire directory information corresponding to a location of the specified file, and logic adapted for, concurrent to reading out the pointer, reading out the EOD from the index in order to acquire the HRTD.

In another approach, the tape drive system may further comprise logic adapted for determining whether a stored HRTD is valid, logic adapted for validating the acquired HRTD and requesting access to the specified file according to the detailed location information of the HRTD corresponding to the specified file when the stored HRTD is valid, logic adapted for using standard tape directory (STD) stored in CM310to access location information of the specified file when the stored HRTD is invalid, and logic adapted for accessing the specified file at a higher speed when using the HRTD or at a lower speed when using the STD.

In yet another embodiment, the tape drive system may further comprise logic adapted for making changes to data stored in a first portion of the tape medium302, logic adapted for storing detailed location data for the changed data to EOD of the first portion of the tape medium302, and logic adapted for reflecting the detailed location data for the changed data in the HRTD stored to the EOD of the index when the tape cartridge308housing the tape medium302is unloaded.

According to another embodiment, the logic adapted for storing the HRTD as part of the EOD of the index may comprise logic adapted for requesting movement of the tape medium302to the index in order to update the index after changes have occurred to data on the tape medium302, logic adapted for writing an updated index, logic adapted for, concurrent to writing the updated index, writing an updated HRTD into the EOD of the index, and logic adapted for requesting for the tape cartridge308to be unloaded.

In one approach, the tape drive system300may include logic adapted for partitioning the tape medium302into two or more partitions, the two or more partitions including at least a data partition and an index partition, wherein the index is stored to the index partition, and wherein data is stored to the data partition.

Now referring toFIG. 4, a flowchart of a method400for loading a tape cartridge is shown according to one embodiment. The method400may be performed in accordance with the present invention in any of the environments depicted inFIGS. 1-3, among others, in various embodiments. Of course, more or less operations than those specifically described inFIG. 4may be included in method400, as would be understood by one of skill in the art upon reading the present descriptions. Each of the steps of the method400may be performed by any suitable component of the operating environment, such as by using the LTFS.

Since an application (specifically, LTFS) that behaves as illustrated inFIG. 4requests it, adding/storing the HRTD to/in the EOD of the index partition and using the HRTD is useful for improving the performance of data access in a tape drive, in various embodiments.

In operation402, a drive is requested to load a tape cartridge comprising a tape medium. This request may be sent by LTFS, in one embodiment, or any application capable of sending such a request.

In operation404, the tape cartridge is loaded. A tape drive most likely loads the tape cartridge, as it is adapted to do so.

In operation406, a request is issued to read out a last record in an index partition using the tape drive. In one embodiment, this request may be sent by LTFS, or any application capable of sending such a request.

In operation408, the last record in the index partition is read out using the tape drive and therefore, simultaneously, the EOD is read out from the tape using the application (LTFS). In this operation, file pointer information (the index file) that is stored near the EOD of the index partition is read out immediately or as soon as possible after the loading of the tape cartridge.

In operation410, the HRTD information is acquired from the EOD using the tape drive. According to one embodiment, the EOD of the index partition may always be read before access to a data partition.

In operation412, it is determined if a stored HRTD is valid. If so, method400continues to operation414; otherwise, method400continues on to operation420.

When the stored HRTD is valid, in operation414, the acquired HRTD is made valid, so that it may be used. Then, in operation416, access to a record in the data partition is requested, such as by using the LTFS, and in operation418, the data partition is accessed at higher speed with the tape drive using the acquired HRTD.

When the stored HRTD is not valid, in operation420, access is requested, using the LTFS, to a record in the data partition. Then, in operation422, the data partition is accessed at lower speed with the tape drive using the standard TD.

Method400may be used for storing the HRTD on a tape in a format conforming to the LTO format standard, according to one embodiment. Specifically, in this embodiment, the LTFS reads file pointer information (referred to as an index file) that is stored near EOD of the index partition immediately after the loading of a cartridge. The EOD of the index partition is always read before access to the data partition is performed. The LTFS updates the file pointer information that is stored near the EOD of the index partition immediately before the unloading of a cartridge. After updating the data of the data partition, the data is written once in the index partition. Since the EOD is overwritten at this moment, it is possible to store the latest HRTD on the tape at this moment as well with little additional effort or time. Accordingly, the HRTD is stored as a part of special data (the last tag data in each partition) in the EOD, the use of which is left to the discretion of each individual vendor, due to the standards of the LTO format.

Since the HRTD is stored in the EOD, it is not possible to use the HRTD until the EOD is read out. The fact that the HRTD does not become valid until the EOD is read causes data access to be delayed until the HRTD is acquired by reading the EOD. However, in LTO, this approach has not been implemented because, conventionally, there are significant disadvantages in reading the EOD before data access.

As far as LTFS goes, however, there exists behavior that is unique to LTFS at the time of loading or unloading of a cartridge.

According to some approaches, the LTFS may update file pointer information (the index file) that is stored near the EOD of the index partition immediately before the unloading of the tape cartridge also. Then, after updating the data of the data partition, the pointer data may be written once in the index partition. Since the EOD is overwritten at this moment, it is possible to store the latest HRTD on the tape.

Furthermore, the HRTD that is read from the EOD that exists in a certain partition (the index partition) includes information on the other partition (the data partition). For this reason, it is possible to achieve movement (locating) at a high speed when accessing the data partition immediately after reading the index partition using the HRTD.

Also, even if the EOD that exists in a certain partition includes the HRTD of another partition, this HRTD is not necessarily the latest HRTD, which is excluded from consideration. This is because the EOD of each partition is updated independently of the other(s), and therefore some EODs may not include the latest information about other partitions.

Therefore, it is good practice to conduct a validity check for, among HRTD read from the EOD, HRTD of the other partition(s).

Now referring toFIG. 5, a flowchart of a method500for validating the acquired HRTD is shown according to one embodiment. The method500may be performed in accordance with the present invention in any of the environments depicted inFIGS. 1-3, among others, in various embodiments. Of course, more or less operations than those specifically described inFIG. 5may be included in method500, as would be understood by one of skill in the art upon reading the present descriptions. Each of the steps of the method500may be performed by any suitable component of the operating environment.

In operation502, a validity check is requested to be performed on a HRTD of a first partition.

In operation504, first parameters are acquired of the first partition from cartridge memory (CM). Any applicable parameters may be acquired, such as a maximum write pass (WP) and a maximum DS (number) included in a range up to an “ith” region, where the ithregion denotes an ordinal number “i,” which is referred to herein as standard tape directory parameters, or STD for short. The DS number is assigned from the head of a tape for each unit of data written into the tape (by starting from zero). The WP indicates which one is newer for the same DS number when data is overwritten. For the same DS, one with a greater WP value is newer (the latest). Another parameter which may be acquired is an index of the region in which the EOD exists, which is referred to as “x.”

In operation506, second parameters are acquired of the first partition from the HRTD. Any applicable parameters may be acquired which may be compared to the first parameters, such as a maximum WP and a maximum DS (number) included in a range up to the ithregion. Another parameter which may be acquired is an index of the region in which the EOD exists, which is referred to as “y.”

In operation508, it is determined if the first and second parameters (from the CM and the HRTD, respectively) correlate properly. In one embodiment, it may be determined if STD(x)=HRTD(y) and STD(x−1)=HRTD((Y/X)*x). X is the number of regions of the wrap in STD, while Y is the number of regions of the wrap in HRTD. If these equations are true, then it is determined that the parameters do correlate properly; otherwise, they do not.

In operation510, when the parameters correlate properly, at least some non-empty parameters from the HRTD are validated. In one embodiment, this may be performed by choosing among the HRTD(j) included in the STD(x), those parameters which are not empty are made to be valid. In this embodiment, the range of j is: ((Y/X)*x)<j≦y.

Then, i is set to x−1, and it is determined if STD(i)=HRTD((i+1)*Y/X−1) and STD(i−1)=HRTD(i*Y/X−1). If so, then among the HRTD(j) included in the STD(i), those parameters which are not empty are made to be valid. The range of j is: ((X/Y)*i)≦j≦X/Y*(i+1). After this is performed, it is determined if i is 0, if so, the method500ends. Otherwise, i is decremented and it is determined again if STD(i)=HRTD((i+1)*Y/X−1) and STD(i−1)=HRTD(i*Y/X−1). Should at any time these relationships not be true, then the HRTD(j) included in STD(i) are made invalid, where the range of j is: ((X/Y)*i)≦j≦X/Y*(i+1).

In operation514, when the parameters do not correlate properly, at least some parameters from the HRTD are invalidated. In one embodiment, this may include invalidating the HRTD(j) included in STD(x), where the range of j is ((Y/X)*x)<j≦y. When the parameters from the HRTD are invalidated, the corresponding parameters from the STD are used in their place.

In operation512, at least operations508,510,514of method500is repeated until all parameters are validated.

Another description of a method similar to method500is provided below, in reference toFIG. 7and labeled with reference numerals as inFIG. 5, according to one embodiment. Referring again toFIG. 7, in this method700for performing a validity check of a partition of a tape, first, it is determined if the normal or standard TD information (STD) that is stored in the CM (typically an 8 KB nonvolatile memory mounted in the cartridge) logically match with HRTD information that is stored in the EOD. It is expected that the HRTD information, which is higher in precision, will be the same as the content of the STD, which is lower in precision. When they are compared with each other on a delimiter-by-delimiter basis, even though they are different from each other in terms of precision, they should match in terms of the positional content they include.

When the HRTD is added to the EOD in an open standard, such as LTO, as a specific function that is unique to a vendor, in some cases, a part of the HRTD is missing; in other cases, the EOD is written by another vendor. For these reasons, the authenticity of the HRTD should be verified by checking whether the HRTD information contained in the EOD matches with the low-precision STD stored in the CM (which is in conformity to the LTO open standard) or not.

In one embodiment, assume that the wrap is divided into a plurality of regions, the number of which is denoted as “X,” in STD. Also, assume that the wrap is divided into a plurality of regions, the number of which is denoted as “Y,” in the HRTD, where X≦Y. In this example, X=2 and Y=10. Also, assume that the value of each region may be calculated by using the following functions. STD(i): Maximum WP and Maximum DS (number) included in a range up to the ithregion. HRTD(i): Maximum WP and Maximum DS included in a range up to the ithregion. In addition, define x and y as follows: x is the STD index of the region (Region) in which the EOD exists (in this example, it is 3), while y is the HRTD index of the region in which the EOD exists (in this example it is 17).

So, for this example, Table 1 shows the values calculated, where the parenthetical numbers are: (DS number, WP).

As can be seen, using the HRTD, the movement of the tape to the data was performed faster than using the STD information. Accordingly, there is an advantage to using HRTD information to locate data in the data partition.

Now referring toFIG. 6, a flowchart of a method600for updating an index file is shown, according to one embodiment. The method600may be performed in accordance with the present invention in any of the environments depicted inFIGS. 1-3, among others, in various embodiments. This method600may be performed just prior to unloading a tape cartridge from a tape drive, in one approach. Of course, more or less operations than those specifically described inFIG. 6may be included in method600, as would be understood by one of skill in the art upon reading the present descriptions. Each of the steps of the method600may be performed by any suitable component of the operating environment.

As shown inFIG. 6, method600may initiate with operation602, where tape movement is requested to move the tape to an index partition in order to update an index file system of the tape cartridge comprising the tape. This request, in one embodiment, may be initiated by the LTFS.

In operation604, the tape is moved to the index partition using a tape drive, using any technique known to one of skill in the art.

In operation606, an index file is written into the index file system of the index partition. This writing may be performed using the LTFS in one embodiment.

In operation608, an EOD is written concurrently with the index file, while simultaneously writing the HRTD into the EOD. This may be performed using the tape drive, and may be orchestrated using the LTFS.

In operation610, the tape drive is requested to unload the tape cartridge. This request may originate from the LTFS, and the tape drive may perform the unloading.

In operation612, the tape cartridge is unloaded using the tape drive, using any technique known to one of skill in the art.

Conventional techniques are now compared with embodiments described herein. The STD which characteristically has a low precision exists in conventional CM. However, unlike an enterprise tape drive, an LTO drive does not offer a function (such as HRTD) for pinpointing a data-read location at a high speed immediately after loading the tape cartridge. Particularly, proposed methods described herein according to various embodiments produce desirable results when used in combination with the LTFS. The HRTD is stored as a part of special data referred to as EOD, the use of which is left to the discretion of each individual vendor, due to the protocol of the LTO format.

By using the embodiments described herein, performance improves when access to a file is made randomly on a LTO tape drive, and in some further embodiments, using LTFS.

According to one embodiment, a tape drive system comprises a file system adapted for enabling sequential access to data on a tape medium, a file access controller adapted for managing the data, the file access controller comprising logic adapted for partitioning the tape medium into two or more partitions, the two or more partitions including at least a data partition and an index partition, logic adapted for writing a file into the data partition of the tape medium, logic adapted for writing a pointer of the written file in the index partition of the tape medium, wherein the pointer is managed by the file access controller, logic adapted for creating a HRTD, the HRTD including detailed location information of data in the data partition of the tape medium, and logic adapted for storing the HRTD as part of EOD of the index partition when a tape cartridge housing the tape medium is unloaded. The file access controller may be any type of controller or processor known in the art suitable for controlling operations of a tape drive system.

According to various embodiments, the tape drive system may adhere to LTO format standards and the file system may adhere to LTFS, the tape drive system may further include logic adapted for receiving, via the file system, a request to read out a specified file, logic adapted for loading a tape cartridge housing a tape medium which includes the specified file stored thereon, logic adapted for reading out a pointer in the index partition to acquire file pointer information corresponding to a location of the specified file, and logic adapted for, concurrent to reading out the pointer from the index partition, reading out the EOD in the index partition in order to acquire the HRTD. In a further approach, logic adapted for determining whether a stored HRTD is valid, logic adapted for validating the acquired HRTD and requesting access to the specified file according to the detailed location information of the HRTD corresponding to the specified file when the stored HRTD is valid, logic adapted for using STD stored in CM to access location information of the specified file when the stored HRTD is invalid, and logic adapted for accessing the specified file at a higher speed when using the HRTD or at a lower speed when using the STD may also be included in the tape drive system.

In even more approaches, the tape drive system may further comprise logic adapted for making changes to data stored in a first portion of the data partition, logic adapted for storing detailed location data for the changed data to EOD of the first portion of the data partition, and logic adapted for reflecting the detailed location data for the changed data in the HRTD stored to the EOD of the index partition when the tape cartridge housing the tape medium is unloaded. In one approach, the logic adapted for storing the HRTD as part of the EOD of the index partition may comprise logic adapted for requesting movement of the tape medium to the index partition in order to update an index file after changes have occurred to data in the data partition, logic adapted for writing an updated index file into the partition index, logic adapted for, concurrent to writing the updated index file, writing an updated HRTD into the EOD of the index partition, and logic adapted for requesting for the tape cartridge to be unloaded.

Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a non-transitory computer readable storage medium. A non-transitory computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the non-transitory computer readable storage medium include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), a Blu-ray disc read-only memory (BD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a non-transitory computer readable storage medium may be any tangible medium that is capable of containing, or storing a program or application for use by or in connection with an instruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fibre cable, RF, etc., or any suitable combination of the foregoing.

In another embodiment, a computer program product for managing detailed location information comprises a computer readable storage medium having computer readable program code embodied therewith. The computer readable program code comprises computer readable program code configured for writing a file into a data partition of a tape medium, wherein the tape medium comprises two or more partitions including the data partition and an index partition, computer readable program code configured for writing a pointer of the written file in the index partition of the tape medium, computer readable program code configured for creating a HRTD, the HRTD including detailed location information of data in the data partition of the tape medium, and computer readable program code configured for storing the HRTD as part of EOD of the index partition when a tape cartridge housing the tape medium is unloaded.

FIG. 8illustrates a network architecture800, in accordance with one embodiment. As shown inFIG. 8, a plurality of remote networks802are provided including a first remote network804and a second remote network806. A gateway801may be coupled between the remote networks802and a proximate network808. In the context of the present network architecture800, the networks804,806may each take any form including, but not limited to a LAN, a WAN such as the Internet, public switched telephone network (PSTN), internal telephone network, etc.

In use, the gateway801serves as an entrance point from the remote networks802to the proximate network808. As such, the gateway801may function as a router, which is capable of directing a given packet of data that arrives at the gateway801, and a switch, which furnishes the actual path in and out of the gateway801for a given packet.

Further included is at least one data server814coupled to the proximate network808, and which is accessible from the remote networks802via the gateway801. It should be noted that the data server(s)814may include any type of computing device/groupware. Coupled to each data server814is a plurality of user devices816. Such user devices816may include a desktop computer, laptop computer, handheld computer, printer, and/or any other type of logic-containing device. It should be noted that a user device811may also be directly coupled to any of the networks, in some embodiments.

A peripheral820or series of peripherals820, e.g., facsimile machines, printers, scanners, hard disk drives, networked and/or local storage units or systems, etc., may be coupled to one or more of the networks804,806,808. It should be noted that databases and/or additional components may be utilized with, or integrated into, any type of network element coupled to the networks804,806,808. In the context of the present description, a network element may refer to any component of a network.

FIG. 9shows a representative hardware environment associated with a user device816and/or server814ofFIG. 8, in accordance with one embodiment.FIG. 9illustrates a typical hardware configuration of a workstation having a central processing unit (CPU)910, such as a microprocessor, and a number of other units interconnected via one or more buses912which may be of different types, such as a local bus, a parallel bus, a serial bus, etc., according to several embodiments.

The workstation shown inFIG. 9includes a Random Access Memory (RAM)914, Read Only Memory (ROM)916, an I/O adapter918for connecting peripheral devices such as disk storage units920to the one or more buses912, a user interface adapter922for connecting a keyboard924, a mouse926, a speaker928, a microphone932, and/or other user interface devices such as a touch screen, a digital camera (not shown), etc., to the one or more buses912, communication adapter934for connecting the workstation to a communication network935(e.g., a data processing network) and a display adapter936for connecting the one or more buses912to a display device938.

In more approaches, the functionality of the tape drive system described herein may be included in a method or a computer program product. In one such embodiment, referring toFIG. 10, a method1000for managing detailed location information is described.

In operation1002, a file is written into a data partition of a tape medium, wherein the tape medium comprises two or more partitions including the data partition and an index partition. The data may be written using any suitable component of a tape drive system.

In operation1004, a pointer of the written file is written in the index partition of the tape medium, thereby allowing this written file to be located in subsequent searches.

In operation1006, a HRTD is created. The HRTD includes detailed location information of data in the data partition of the tape medium, as described herein in more detail.

In operation1008, the HRTD is stored as part of EOD of the index partition when a tape cartridge housing the tape medium is unloaded, as described herein in more detail.