Adding data to a tape cartridge during a recall operation
By utilizing a locate EOD command to determine LPOS ranges, simultaneous migration and recall operations are facilitated in tape library hierarchical storage management, improving efficiency and reducing the impact on recall operations.
Patent Information
- Application Number
- JP2024516640
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-09-28
- Filing Date
- 2022-09-13
- Publication Date
- 2026-01-30
- Estimated Expiration
- 2042-09-13
AI Technical Summary
In tape library hierarchical storage management, recall requests accumulate in a recall queue while lower priority migration operations are queued, leading to inefficiencies and prolonged data accumulation on primary storage devices.
A method and system that allows for simultaneous execution of migration operations during recall by using a locate end of data (EOD) command to determine available longitudinal position (LPOS) ranges on tape cartridges, enabling data from the migration queue to be written concurrently with recall operations.
This approach improves performance by allowing migration operations to be performed with minimal impact on recall operations, reducing the load on the host and tape drive, and enhancing the overall efficiency of recall and transition operations.
Smart Images

Figure 0007809199000001 
Figure 0007809199000002 
Figure 0007809199000003
Abstract
Description
[Technical Field]
[0001] The present invention relates generally to tape library hierarchical storage management, and more particularly to appending data to tape cartridges as data is read. [Background technology]
[0002] The amount of data and storage capacity required to serve information technology continues to grow each year. Another important trend impacting storage strategy planning is data migration to storage.
[0003] Tape cartridges have traditionally been used for video archives, backup files, disaster recovery replicas, and on-premise information retention. They are typically stored in enterprise tape libraries. To store these tape cartridges, high-density (HD) tape library frames containing high-density (HD) tape cartridge storage slots are utilized. Instead of a single tape per storage slot, a single HD tape cartridge storage slot can hold up to five tape cartridges stacked in a row. Each tape cartridge in an HD tape cartridge storage slot is referenced by a tier number, which indicates its position within the HD tape cartridge storage slot; the tier number increases in depth as more tape cartridges are added to the HD tape cartridge storage slot.
[0004] A tape library frame with hierarchical storage management (HSM) includes a primary storage device consisting of multiple tape drives and hard disk drives (HDDs) for storing data, and multiple tape cartridges for further storage of data during migration operations. A pre-migration state exists when data is stored on both the primary storage device and the multiple tape cartridges. After a period of time, the data in the primary storage device is deleted, and the data is stored only on the multiple tape cartridges (i.e., the migration state).
[0005] Reading data stored on multiple tape cartridges in a transition state is called a recall. When a host (e.g., a server computer, computing device, etc.) requests a recall operation, the tape drive mounts a tape cartridge from multiple tape cartridges, reads the data stored on that tape cartridge to the primary storage device, and then transfers the data to the host. If a transition request is made during a recall operation, the transition is queued because the recall operation has a higher priority.
[0006] If multiple recall or migration requests are made at one time, the recall requests accumulate in a recall queue and the migration requests accumulate in a migration queue on the host. If there are no more recall requests in the recall queue and recall operations are suspended for a period of time, the mounted tape cartridge used for the recall may be used for a migration operation as long as the mounted tape cartridge has available storage capacity. Summary of the Invention
[0007] Aspects of the present invention include apparatus, methods, computer program products, and computer systems for tape library hierarchical storage management.
[0008] An aspect of one embodiment of the present invention discloses a method for tape library hierarchical storage management. The method includes mounting, by one or more computer processors, a tape cartridge on a tape drive to fulfill a recall request. The method further includes determining, by the one or more computer processors, that there is available tape capacity on the tape cartridge for migrating data from a migration queue during the recall operation. The method further includes sending, by the one or more computer processors, a locate end of data (EOD) command to the tape drive. The method further includes receiving, by the one or more computer processors, a longitudinal position (LPOS) range returned from the tape drive. The method further includes determining, by the one or more computer processors, that the migration queue is within the LPOS range. The method further includes writing, by the one or more computer processors, data from the migration queue into the LPOS range of the tape cartridge.
[0009] An aspect of one embodiment of the present invention discloses a method for tape library hierarchical storage management. The method includes detecting, by one or more computer processors, at least one recall request in a recall queue on a host. In response to determining that a migration queue exists on the host, the method further includes determining, by the one or more computer processors, that tape capacity is available on the tape cartridge for migrating data while simultaneously satisfying the at least one recall request. In response to determining that tape capacity is available on the tape cartridge for migrating data, the method further includes sending, by the one or more computer processors, a locate end of data (EOD) command to the tape drive. The method further includes receiving, by the one or more computer processors, a longitudinal position (LPOS) range returned from the tape drive. In response to determining that the migration queue is within the LPOS range, the method further includes writing, by the one or more computer processors, data from the migration queue into the LPOS range of the tape cartridge.
[0010] An aspect of one embodiment of the present invention discloses a method for tape library hierarchical storage management. The method includes detecting, by one or more computer processors, at least one recall request in a recall queue on a host, where detecting the at least one recall request in the recall queue includes mounting a tape cartridge on a tape drive to satisfy the at least one recall request. In response to determining that there is a migration queue on the host, the method includes determining, by the one or more computer processors, whether there is available tape capacity on the tape cartridge for migrating data during the recall operation. In response to determining that there is available tape capacity on the tape cartridge for migrating data, the method includes sending, by the one or more computer processors, a locate end of data (EOD) command to the tape drive. In response to sending the locate EOD command to the tape drive, the method includes receiving, by the one or more computer processors, a longitudinal position (LPOS) range returned from the tape drive. In response to determining that the LPOS range returned by the tape drive is not a zero value, the method includes determining, by the one or more computer processors, whether the migration queue is within the LPOS range. In response to determining that the migration queue is within the LPOS range, the method includes writing, by the one or more computer processors, data from the migration queue into the LPOS range of the tape cartridge.
[0011] An aspect of one embodiment of the present invention discloses a computer program product for tape library hierarchical storage management. The computer program product includes program instructions for detecting at least one recall request in a recall queue on a host, where detecting at least one recall request in the recall queue includes mounting a tape cartridge on a tape drive to satisfy the at least one recall request. The computer program product includes program instructions for determining whether there is available tape capacity on the tape cartridge to migrate data during a recall operation in response to determining that there is a migration queue on the host. The computer program product includes program instructions for sending a locate end of data (EOD) command to the tape drive in response to determining that there is available tape capacity on the tape cartridge to migrate data. The computer program product includes program instructions for receiving a longitudinal position (LPOS) range returned from the tape drive in response to sending the locate EOD command to the tape drive. The computer program product includes program instructions for determining whether the migration queue is within the LPOS range in response to determining that the LPOS range returned from the tape drive is not a zero value. The computer program product includes program instructions for writing data from the migration queue into the LPOS range of the tape cartridge in response to determining that the migration queue is within the LPOS range.
[0012] One aspect of the present invention discloses a computer system for tape library hierarchical storage management. The computer system includes program instructions for detecting at least one recall request in a recall queue on a host, where detecting the at least one recall request in the recall queue includes mounting a tape cartridge on a tape drive to satisfy the at least one recall request. The computer system includes program instructions for determining whether there is available tape capacity on the tape cartridge for migrating data during a recall operation in response to determining that there is a migration queue on the host. The computer system includes program instructions for sending a locate end of data (EOD) command to the tape drive in response to determining that there is available tape capacity on the tape cartridge for migrating data. The computer system includes program instructions for receiving a longitudinal position (LPOS) range returned from the tape drive in response to sending the locate EOD command to the tape drive. The computer system includes program instructions for determining whether the migration queue is within the LPOS range in response to determining that the LPOS range returned from the tape drive is not a zero value. The computer system includes program instructions for writing data from the migration queue into the LPOS range of the tape cartridge in response to determining that the migration queue is within the LPOS range. [Brief explanation of the drawings]
[0013] [Figure 1] FIG. 1 illustrates a tape library tiered storage management environment in accordance with one embodiment of the present invention. [Figure 2] FIG. 1 is a flowchart diagram of migration program steps for adding data to a tape cartridge utilized concurrently during a recall operation, according to one embodiment of the present invention. [Figure 3]FIG. 10 is a flowchart diagram of the steps of a transition program for determining a longitudinal position range on a tape cartridge in accordance with one embodiment of the present invention. [Figure 4] 1 is a block diagram illustrating components of a data processing system according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0014] Embodiments of the present invention recognize that as recall requests accumulate in a recall queue, data may continually accumulate on the primary storage device, as lower priority migration operations may be queued for a significant amount of time.
[0015]
[0010] Embodiments of the present invention recognize that in a tape library hierarchical storage management environment having multiple tape drives, a portion of the multiple tape drives may be allocated to migration operations or may be allocated to migration operations for a period of time after a predetermined amount of data has accumulated in a migration queue.
[0011] Embodiments of the present invention recognize that in these scenarios, various migration and recall operation rules may be pre-established so that migration and recall operations are not simultaneously requested for a tape drive or tape cartridge.
[0016]
[0006] Embodiments of the present invention recognize that it can take approximately two minutes for a tape drive read / write head to move longitudinally from one end of a tape cartridge to the other. For example, if the current position of the tape drive read / write head is away from the recall data longitudinal position (LPOS), it takes approximately two minutes for the read / write head to move to the read position.
[0007] Embodiments of the present invention recognize that magnetic tape cartridges are recordable media, and current tape cartridge write speeds when writing compressed data are up to approximately 900 megabytes per second (MB / s).
[0017] Embodiments of the present invention recognize the advantages of writing data to a tape cartridge while a tape drive read / write head moves from one end of the tape cartridge to the other. Embodiments of the present invention recognize that as much as 100 gigabytes (GB) of data can be written to tape. Embodiments of the present invention recognize that writing data to a tape cartridge during recall provides performance improvements in tape library hierarchical storage management environments by facilitating simultaneous execution of migration operations during recall operations.
[0018] An embodiment of the present invention provides a function for migrating data to a tape cartridge that is simultaneously used for a recall operation. An embodiment of the present invention provides a function for a host to send a defined locate end of data (EOD) command, such as "Locate EOD," to a tape drive, with the number of the next read data used as an argument. An embodiment of the present invention provides a function for a tape drive to determine whether data can be appended after the EOD while positioning the read / write head to read data, based on the positional relationship between the current read / write head position, the EOD, and the read / write head position of the read data on the tape cartridge. An embodiment of the present invention provides a function for a tape drive to return an appendable value (i.e., the appendable size / capacity on the tape cartridge) to the host when the tape drive read / write head positions itself at the EOD on the tape cartridge. If the appendable value is not zero, the host writes the data queued for migration to the tape cartridge simultaneously with a concurrent recall operation (i.e., reading data) being performed on the tape cartridge.
[0019] An embodiment of the present invention provides a function that utilizes a locate end of data (EOD) command, which is an extension of the conventional locate command, that can be added to a tape drive. An embodiment of the present invention provides a function that allows a host to send a locate EOD command to a tape drive. The locate EOD command uses a logical object identifier (LOI) of the beginning of recall (BOR) data as an argument. An embodiment of the present invention provides a function that allows a tape drive to determine whether an EOD position is located between the current read / write head position and the BOR. If an EOD position is located between the current read / write head position and the BOR, the tape drive determines the available longitudinal position (LPOS) range between the EOD and the BOR. If an available LPOS range is available, the tape drive positions the read / write head at the EOD and returns the available LPOS range to the host. If an available LPOS range is not available, the tape drive positions the read / write head at the BOR and returns a value of zero to the host, indicating that there is no available LPOS range.
[0020] Embodiments of the present invention improve the performance of combined recall and migration operations by providing the ability to perform migration with minimal impact to data reads during recall operations without waiting for all recall requests accumulated in the recall queue to finish.
[0021] An embodiment of the present invention recognizes that this method can increase the time required to position to the recall start data by 1.5 to 3 seconds for one or two wrap changes, or 3 seconds for a back hitch (i.e., stopping and returning the tape head) when reading the EOD. However, since positioning is an operation that lasts an average of 45 seconds to a maximum of 2 minutes, the performance impact of this increased time is approximately 10% of the positioning time. Considering that not all recall operations perform a migration, the overall impact is less than 10% compared to the combined positioning and reading time. The overall efficiency of recall and migration operations can be improved while minimizing the negative impact on recall operations during simultaneous migration.
[0022] Embodiments of the present invention provide for more efficient execution of recall and transition operations while reducing the load on the host and tape drive by providing the ability for a host to utilize the locate command to control the movement of the tape drive read / write head to an add or recall location without requiring a mode sense command to obtain the location.
[0023] Implementation of such embodiments may take a variety of forms, and details of exemplary implementations are described below with reference to the figures.
[0024] Referring now more particularly to various embodiments of the present invention, FIG. 1 is a functional block diagram illustrating a portion of a tape library hierarchical storage management environment, generally designated 100, suitable for providing tape library hierarchical storage management in accordance with at least one embodiment of the present invention. In one embodiment, tape library hierarchical storage management environment 100 includes a network, such as network 102, a host, such as server computer 104, a primary storage device, such as storage device 106, and a tape library, such as tape library 108. In one embodiment, multiple tape library frames (not shown) may be interconnected to form one or more tape libraries, such as tape library 108. FIG. 1 is intended only as an example of one implementation and is not intended to suggest any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made by those skilled in the art without departing from the scope of the present invention as defined by the appended claims.
[0025] In one embodiment, network 102 is the Internet, which represents a worldwide collection of networks and gateways that communicate with each other using the TCP / IP protocol. Network 102 may include wired cables, wireless communication links, fiber optic cables, routers, switches, or firewalls, or a combination thereof. In one embodiment, server computer 104, storage device 106, and tape library 108 are interconnected by network 102. In one embodiment, network 102 may be any combination of connections and protocols capable of supporting data migration and data recall between hosts, such as server computer 104, primary storage devices, such as storage device 106, and secondary storage locations, such as tape library 108, utilizing a migration program, such as migration program 110, within a tape library hierarchical storage management environment, such as tape library hierarchical storage management environment 100. In one embodiment, network 102 utilizes any Fibre Channel protocol, such as SCSI, Internet Protocol-based iSCSI over Transmission Control Protocol / Internet Protocol (TCP / IP), and Serial Attached SCSI (SAS), capable of supporting Small Computer System Interface (SCSI) commands, to connect hosts, such as server computer 104, to primary storage devices, such as storage device 106, and secondary storage locations, such as tape library 108.
[0026] In other embodiments, network 102 may be implemented as a number of different types of networks, such as an intranet, a local area network (LAN), a virtual local area network (VLAN), or a wide area network (WAN), etc. Figure 1 is intended as an example, and not as architectural limitations to different embodiments that may be implemented by those skilled in the art.
[0027] In one embodiment, a host, such as server computer 104, may be a server computer system, such as a database management server, tape library management server, database server, web server, structured query language server, or any other electronic device or computing system capable of sending and receiving data. In one embodiment, server computer 104 may be a mainframe virtual tape solution that optimizes data migration and data recall operations. In one embodiment, server computer 104 may use SCSI commands to write data to physical tape storage using high-performance tape drives attached to a tape library, such as tape library 108. In one embodiment, server computer 104 may provide a tiered storage hierarchy of disk and tape storage caches. In another embodiment, server computer 104 may be a data center including a collection of networks and servers that provide IT services, such as virtual servers and applications deployed on the virtual servers, to external parties. In one embodiment, server computer 104 may be a database server running on a legacy system, such as a mainframe system. In other embodiments, server computer 104 represents a "cloud" of computers interconnected by one or more networks, such as network 102, where server computer 104 is a computing system utilizing clustered computers and components that function as a single pool of seamless resources when accessed via network 102. This is a common implementation in data centers as well as cloud computing applications. In one embodiment, server computer 104 includes a migration program, such as migration program 110, a migration queue, such as migration queue 112, and a recall queue, such as recall queue 114.
[0028] In alternative embodiments, a host may be a client computer (not shown) that is a client to a host, such as server computer 104, such as a server, desktop computer, laptop computer, tablet computer, personal digital assistant (PDA), smartphone, thin client, or any other electronic device or computing system capable of communicating with server computer 104 over network 102 within a tape library hierarchical storage management environment, such as tape library hierarchical storage management environment 100. For example, a client computer may be a laptop computer that can connect to a network, such as network 102, and utilize a migration program, such as migration program 110, via a host, such as server computer 104, to send one or more migration and / or recall commands to a primary storage device, such as storage device 106, and a tape library, such as tape library 108. In other embodiments, a client computer may be any suitable type of client device capable of sending one or more recall or migration requests (e.g., read or write requests) to a host, such as server computer 104. In one embodiment, the client computer may include a user interface (not shown) for sending data requests to a data tape management server, such as server computer 104. There are many types of user interfaces. In one embodiment, the user interface may be a graphical user interface (GUI). A GUI is a type of user interface that allows a user to interact with electronic devices such as a keyboard and mouse through graphical icons and visual indicators, such as secondary notations, rather than through a text-based interface, typed command labels, or text navigation.In computers, GUIs were introduced in response to the perceived steep learning curve of command-line interfaces, which required typing commands on a keyboard, where actions are often performed by directly manipulating graphical elements.
[0029] In one embodiment, migration program 110 operates on a central server, such as server computer 104, and may be utilized by one or more client computers (not shown) via network 102. In other embodiments, migration program 110 may be a software-based program downloaded from a central server or a third-party provider (not shown) and executed on a client computer to add data to tape cartridges simultaneously utilized during a recall operation. In other embodiments, migration program 110 may be a software-based program downloaded from a central server (not shown) and installed on one or more client devices (e.g., phones, tablets, wearable electronic devices, etc.) (not shown). In yet other embodiments, migration program 110 may be utilized as a software service offered by a third-party cloud service provider (not shown). In still other embodiments, migration program 110 may include one or more software-based components, such as add-ons, plug-ins, and agent programs, that are installed on one or more client devices to add data to tape cartridges simultaneously utilized during a recall operation (i.e., to perform the migration operation).
[0030] In one embodiment, migration program 110 is a software-based program for adding data to a tape cartridge during a recall operation. In one embodiment, migration program 110 provides a mechanism for utilizing a locate end of data (EOD) command, which is an extension of the conventional locate command, that can be added to a tape drive. In one embodiment, migration program 110 provides a mechanism for a host to send a locate EOD command to a tape drive. The locate EOD command is a defined SCSI command used to control a tape drive and transfer large amounts of data to storage devices, including, but not limited to, hard disk drives, solid state drives, and tape drives. The locate EOD command utilizes a logical object identifier (LOI) for the beginning of recall (BOR) data as an argument. In one embodiment, migration program 110 provides a mechanism for the tape drive to determine whether an EOD position is located midway from the current read / write head position to the BOR, and, if an EOD position is located between the current read / write head position and the BOR, to determine the longitudinal position (LPOS) range that can be added between the EOD and the BOR. In one embodiment, migration program 110 provides a mechanism for positioning the read / write head at EOD and returning the available LPOS range to the host if the tape drive determines an available LPOS range. In one embodiment, migration program 110 provides a mechanism for positioning the read / write head at BOR and returning a value of zero to the host, indicating that no available LPOS range exists, if the tape drive determines that no available LPOS range exists. In one embodiment, a migration program such as migration program 110 operates for each tape media and each tape drive in a tape library.
[0031] In an alternative embodiment, the migration program 110 determines whether data to be migrated from the primary storage to the secondary storage exists. In the alternative embodiment, if data to be migrated exists, the migration program 110 sends a command to the tape drive storing the data to be recalled to check whether the data to be migrated can be written while the head is moving to read the data to be recalled. In the alternative embodiment, if the tape drive responds that the data to be migrated can be written during the movement, the migration program 110 selects data to be migrated that has a writable size. In the alternative embodiment, the migration program 110 sends the selected data to be migrated to the tape drive.
[0032] In one embodiment, migration queue 112 and recall queue 114 are first-in-first-out (FIFO) data structures containing a collection of data requests for a primary storage device, such as storage device 106, and a tape library, such as tape library 108, within a tape library hierarchical storage management environment, such as tape library hierarchical storage management environment 100. In one embodiment, migration queue 112 may be a linear data structure that provides the ability to accumulate one or more migration requests for data to be written from a primary storage device, such as storage device 106, to one or more magnetic tape cartridges of a tape library, such as tape media 118 of tape library 108. In one embodiment, recall queue 114 may be a linear data structure that provides the ability to accumulate one or more recall requests for data to be read from one or more magnetic tape cartridges of a tape library, such as tape media 118 of tape library 108, and sent to a primary storage device, such as storage device 106. In one embodiment, migration queue 112 is a shared queue that is exclusively serviced.
[0033] In one embodiment, storage device 106 is a primary storage device utilized within a tape library hierarchical storage management environment, such as tape library hierarchical storage management environment 100. In one embodiment, storage device 106 may be a hard disk drive (HDD) capable of storing pre-migration data prior to migration to one or more magnetic tape cartridges in a tape library, such as tape media 118 of tape library 108. In one embodiment, storage device 106 may be a hard disk drive (HDD) capable of receiving recalled data from one or more magnetic tape cartridges in a tape library, such as tape media 118 of tape library 108. In one embodiment, storage device 106 is a persistent storage solution in an HSM environment to which data may be written prior to migration to a secondary storage solution, such as tape library 108. In one embodiment, storage device 106 may include one or more databases capable of receiving, organizing, searching, and storing data within the HSM environment. In one embodiment, storage device 106 may be a solid state drive (SSD) capable of storing pre-migration data before migration to one or more magnetic tape cartridges of a tape library, such as tape media 118 of tape library 108. In one embodiment, storage device 106 may be a solid state drive (SSD) capable of receiving data recalled from one or more magnetic tape cartridges of a tape library, such as tape media 118 of tape library 108.
[0034] In one embodiment, tape library 108 is a tape storage library interconnected with a host (e.g., a tape library mainframe, a client computer, etc.), such as server computer 104. In one embodiment, tape library 108 provides data storage through the use of integrated tape drives, e.g., tape drive 116, and one or more magnetic tape cartridges, e.g., tape media 118. In one embodiment, tape library 108 may represent multiple interconnected physical tape libraries. In one embodiment, multiple tape library frames (not shown) may be interconnected to form one or more tape libraries, such as tape library 108. In one embodiment, one or more tape libraries, such as tape library 108, may be organized into multiple rows spaced evenly apart within a floor space (i.e., a designated space within a physical structure, for example). In other embodiments, one or more tape library frames may be stacked on top of one or more tape libraries organized in multiple rows, effectively stacking rather than building out, to meet the growing demands of big data tape management within existing floor space. In one embodiment, tape library 108 includes a tape gripper (not shown) for retrieving one or more tape cartridges, such as tape media 118, from a plurality of tape cartridge storage slots (not shown) in one or more interconnected tape library frames (not shown) designated for tape storage, and for inserting (i.e., mounting) the one or more tape cartridges into a tape drive, such as tape drive 116, for read / write operations.
[0035] In one embodiment, tape drive 116 is a data storage device for reading and writing information on one or more tape cartridges. In one embodiment, tape drive 116 is arranged in a column within a tape library frame of a tape library, such as tape library 108. In one embodiment, tape drive 116 and one or more tape cartridges, such as tape media 118, are stored separately within a tape library frame or within a tape library, such as tape library 108, that includes one or more tape library frames (i.e., tape media 118 is stored separately from tape drive 116 in one or more tape library frames dedicated to storing tape media). In one embodiment, a tape library, such as tape library 108, includes multiple tape drives for reading and writing information on one or more tape cartridges.
[0036] In an alternative embodiment, tape drive 116 includes one or more integrated programs (not shown), such as migration program 110, a primary storage device (not shown), and a secondary storage device (not shown), for receiving a command from a host to check whether migration target data can be written while the head is moving to read the recall target data. In the alternative embodiment, upon receiving the command, a tape drive such as tape drive 116 determines whether the write start position is between the current head position and the read start position and whether the direction of movement to the read start position is the same as the direction of movement during writing. In the alternative embodiment, if the write start position is between the current head position and the read start position and the direction of movement to the read start position is the same as the direction of movement during writing, the tape drive such as tape drive 116 responds to the host with the writable size to indicate that migration target data can be written. In the alternative embodiment, a tape drive such as tape drive 116 writes the migration target data sent from the host in response to the response, and then reads the recall target data from the read start position.
[0037] In one embodiment, tape media 118 is a magnetic tape cartridge capable of storing data in a tape library, such as tape library 108. In one embodiment, tape media 118 may be a high-density magnetic tape media capable of storing digital information in a tape library, such as tape library 108. In one embodiment, one or more tape cartridges, such as tape media 118, may be stored in a high-density storage slot (not shown) in a tape library, such as tape library 108, which high-density storage slot is capable of storing up to five tape cartridges stacked in a row within a single slot space in a tape library frame (not shown) of tape library 108. In one embodiment, tape media 118 may be a Linear Tape Open (LTO) tape cartridge. In other embodiments, tape media 118 may be an enterprise tape cartridge. For example, a high-density storage slot may be capable of storing up to five tape cartridges in a tiered manner, with the tier 5 position for a Linear Tape Open (LTO) tape cartridge being the first tape cartridge loaded in the slot (the rearmost tape cartridge at the back of the tape library frame) and the tier 1 position being the last tape cartridge loaded in the slot (the frontmost tape cartridge at the front of the tape library frame). If an LTO tape cartridge in the tier 5 position is requested, the LTO tape cartridges preceding it (up to four cartridges) must be removed to access the requested LTO tape cartridge. In an alternative embodiment, a high-density storage slot may be capable of storing up to four tape cartridges in a tiered manner, with the tier 4 position for an Enterprise tape cartridge being the first tape cartridge loaded in the slot (the rearmost tape cartridge) and the tier 1 position being the last tape cartridge loaded in the slot (the frontmost tape cartridge).If an enterprise tape cartridge in a tier 4 position is requested, the enterprise tape cartridges preceding it (up to three cartridges) must be removed before the requested enterprise tape cartridge can be accessed. However, it should be understood that embodiments of the present invention may be implemented in a tape library having any number or type of tape media that may be stored in any number of tier positions within the high-density storage slots.
[0038] FIG. 2 is a flow chart diagram of the steps of a migration program, such as migration program 110, generally designated 200, for adding data to tape cartridges utilized concurrently during a recall operation, in accordance with one embodiment of the present invention.
[0039] The migration program 110 checks a recall queue and mounts a tape in a tape drive (202). In one embodiment, the migration program 110 checks a recall queue on a host, such as the recall queue 114 of the server computer 104, and mounts a tape cartridge, such as the tape media 118, in a tape drive, such as the tape drive 116. In one embodiment, the migration program 110 checks a recall queue, such as the recall queue 114, by accessing the recall queue and detecting an accumulation of recall requests in the recall queue. In one embodiment, the migration program 110 instructs the tape drive to mount a tape cartridge to satisfy at least one of the recall requests in the recall queue.
[0040] The migration program 110 determines whether a migration queue exists (decision block 204). In one embodiment, the migration program 110 determines whether a migration queue exists by detecting a migration queue on the host, such as migration queue 112 on server computer 104. In one embodiment, in response to detecting a migration queue on the host, the migration program 110 accesses the migration queue to identify one or more migration requests. If the migration program 110 identifies one or more migration requests in the migration queue, the migration program 110 determines that a migration queue exists. If the migration program 110 does not identify one or more migration requests in the migration queue, the migration program 110 determines that a migration queue does not exist. In one embodiment, if one or more migration requests have not accumulated in the migration queue (i.e., there is no migration queue), the migration program 110 executes the recall request directly.
[0041] In response to determining that a migration queue does not exist (NO branch, 204), migration program 110 positions 218 to the head of recall (BOR) data and reads 220 the data. In one embodiment, migration program 110 directs a tape drive, such as tape drive 116, to position a tape drive read / write head to the BOR data on the tape cartridge and read the data starting at the BOR location, as indicated by a recall request in a recall queue, such as recall queue 114.
[0042] In response to determining that a migration queue exists (YES branch, 204), migration program 110 determines whether there is tape capacity on the tape for migration (206). In one embodiment, migration program 110 calculates the storage capacity required to satisfy one or more migration requests accumulated in the migration queue. If the calculated storage capacity for one or more migration requests accumulated in the migration queue exceeds the available storage capacity on the tape cartridge, migration program 110 determines that there is no tape capacity on the tape cartridge for migration. If the calculated storage capacity for one or more migration requests accumulated in the migration queue is less than or equal to the available storage capacity on the tape cartridge, migration program 110 determines that there is tape capacity on the tape cartridge for migration.
[0043] In response to determining that there is no tape capacity on the tape for migration (No branch, 206), migration program 110 positions 218 to the head of recall (BOR) data and reads 220 the data. In one embodiment, migration program 110 directs a tape drive, such as tape drive 116, to position a tape drive read / write head to the BOR data on the tape cartridge and read the data starting at the BOR location, as indicated by a recall request in a recall queue, such as recall queue 114.
[0044] In response to determining that there is tape capacity on the tape for migration (YES branch, 206), migration program 110 sends a locate end of data (EOD) command to the tape drive (208). In one embodiment, migration program 110 sends the locate EOD command to the tape drive, where the locate EOD command utilizes the logical object identifier of the head of recall (BOR) as an argument. In one embodiment, in response to sending the locate EOD command to a tape drive, such as tape drive 116, migration program 110 instructs the tape drive to determine whether the EOD position is between the current longitudinal position (LPOS) of the tape drive's read / write head and the head of recall (BOR). In one embodiment, because the LPOS of the BOR is not yet precisely known at this point, the migration program 110 instructs the tape drive to determine whether an EOD position is between the current longitudinal position (LPOS) of the tape drive's read / write head and the beginning of recall (BOR) by utilizing a high-resolution tape directory (HRTD) to obtain and utilize the beginning positions of 128 equal longitudinal regions of the tape cartridge. In one embodiment, the migration program 110 instructs the tape drive to return to the host a determination of the EOD position between the current longitudinal position (LPOS) of the tape drive's read / write head and the beginning of recall (BOR).
[0045] The migration program 110 receives 210 the longitudinal position (LPOS) range returned from the tape drive. The step of determining the LPOS range is described in more detail below with reference to Figure 3 and related to determining whether migration can be performed.
[0046] The migration program 110 determines whether the LPOS range is zero (212). In one embodiment, the migration program 110 references the LPOS range returned by a tape drive, such as tape drive 116, and verifies whether the LPOS range is equal to a value of zero. If the LPOS range is equal to a value of zero, the migration program 110 determines that the LPOS range is zero. If the LPOS range is not equal to a value of zero, the migration program 110 determines that the LPOS range is not zero.
[0047] In response to determining that the LPOS range is zero (YES branch, 212), the migration program 110 reads the data 220. In one embodiment, in response to determining that the LPOS range returned from the tape drive is zero, the migration program 110 automatically reads the data from the tape cartridge starting at the tape drive's current position.
[0048] In response to determining that the LPOS range is not zero (NO branch, 212), migration program 110 determines whether a migration queue exists within the LPOS range (214). In one embodiment, migration program 110 determines whether a migration queue exists within the LPOS range returned from a tape drive, such as tape drive 116, by selecting a size of migration data indicated by one or more migration requests in a migration queue, such as migration queue 112, to prevent the written data from passing the head of recall (BOR) due to an increase in the LPOS range due to migration. For example, for a tape drive, such as tape drive 116, that performs an error recovery procedure (ERP), migration data may have a minimum size by considering that migration data may be written to a longer LPOS range than expected or by setting the migration data size to the uncompressed data size estimated from the number of longitudinal positions. If the number of longitudinal positions to which compressed data can be written is predictable from past cases and examples, the size of compressed data may be applied to the migration queue so that more data can be migrated. If data is compressed on the host, compression by the tape drive is not required, and therefore compression is not taken into consideration. If the migration program 110 determines that the size of the migration data to be written does not exceed the BOR, the migration program 110 determines that a migration queue within the LPOS range exists. If the migration program 110 determines that the size of the migration data to be written exceeds the BOR, the migration program 110 determines that a migration queue within the LPOS range does not exist.
[0049] In response to determining that there are no migration queues within the LPOS range (NO branch, 214), migration program 110 positions 218 to the head of recall (BOR) data and reads 220 the data. In one embodiment, migration program 110 directs a tape drive, such as tape drive 116, to position a tape drive read / write head to the BOR data on the tape cartridge and read the data starting at the BOR location, as indicated by a recall request in a recall queue, such as recall queue 114.
[0050] In response to determining that a migration queue exists within the LPOS range (YES branch, 214), the migration program 110 adds data 216. In one embodiment, in response to determining that a migration queue exists within the LPOS range, the migration program 110 adds migration data (i.e., write data) from the migration queue to the LPOS range of the tape cartridge.
[0051] In response to adding the data, migration program 110 positions (218) to the head of recall (BOR) data and reads (220) the data.
[0052] FIG. 3 is a flow chart diagram of the steps of a transition program, such as transition program 110, generally designated 300, for determining longitudinal position ranges on a tape cartridge, according to one embodiment of the present invention.
[0053] The migration program 110 determines a longitudinal position (LPOS) range using the first record block of the recalled data to add data to (302). In one embodiment, the migration program 110 instructs a tape drive that receives a locate end of data (EOD) command to determine an LPOS range using the first record block of the recalled data to add data to.
[0054] The migration program 110 determines whether the end of data (EOD) is in the process of locating to the head of recall (BOR) position (304). In one embodiment, the migration program 110 instructs a tape drive, such as tape drive 116, to determine whether the EOD on the tape cartridge is between the current read / write head position and the BOR position. In response to determining that the EOD on the tape cartridge is between the current read / write head position and the BOR position, the migration program 110 determines that the EOD is in the process of locating to the BOR position. In response to determining that the EOD on the tape cartridge is not between the current read / write head position and the BOR position, the migration program 110 determines that the EOD is not in the process of locating to the BOR position. For purposes of this description, "to locate" refers to moving the read / write head from the current head position on the tape cartridge to the BOR position on the tape cartridge.
[0055] For example, the data write direction is determined for each wrap on the tape cartridge. If the EOD is between the current read / write head position on the tape cartridge and the BOR, and the longitudinal movement direction of the tape from the current read / write head position to the BOR is the same as the write direction at the wrap containing the EOD, data can be added after the EOD during positioning (i.e., while the tape drive's read / write head is moving from its current position to the BOR position). In this example, migration program 110 determines that the EOD is in the process of positioning to the BOR data position and instructs a tape drive, such as tape drive 116, to return the LPOS range that can be added to the host.
[0056] In another example, migration can be performed before recall when the EOD is between the current read / write head position and the BOR data position, and the direction of movement from the current read / write head position to the BOR data position is the same as the write direction in the wrap containing the EOD, and the read direction within the BOR wrap is the opposite direction. In this example, migration program 110 determines that the EOD is on its way to positioning at the BOR data position and instructs a tape drive, such as tape drive 116, to return an additional LPOS range to the host.
[0057] In yet another example, if the EOD is not between the current read / write head position and the BOR data location, then migration cannot be performed during recall and the host will only perform a recall operation on the tape cartridge. In this example, migration program 110 determines that the EOD is not in the way to position to the BOR data location and instructs a tape drive, such as tape drive 116, to return a value of zero for the LPOS range.
[0058] In response to determining that the end of data (EOD) is not in the way of positioning to the BOR location (NO branch, 304), migration program 110 positions to the beginning of recall (BOR) (312) and returns a value of zero (314). In one embodiment, migration program 110 instructs a tape drive, such as tape drive 116, to position the tape drive read / write head to the BOR data on the tape cartridge as indicated by a recall request in a recall queue, such as recall queue 114, and returns a value of zero (314). In one embodiment, migration program 110 instructs a tape drive, such as tape drive 116, to return a value of zero in the LPOS range to the host, indicating that a migration cannot be performed simultaneously during a recall operation.
[0059] In response to determining that the end of data (EOD) is on the way to positioning to the BOR (YES branch, 304), migration program 110 determines whether the write direction on the EOD wrap is the same as the direction of positioning to the BOR from the current head position (306). In one embodiment, migration program 110 instructs a tape drive, such as tape drive 116, to determine whether the write direction on the EOD wrap is the same as the movement direction to position to the BOR from the current read / write head position. In response to determining that the write direction on the EOD wrap is the same as the movement direction to position to the BOR from the current read / write head position, migration program 110 determines that the write direction on the EOD wrap is the same as the movement direction to position to the BOR. In response to determining that the write direction on the EOD wrap is not the same as the movement direction to position to the BOR from the current read / write head position, migration program 110 determines that the write direction on the EOD wrap is not the same as the movement direction to position to the BOR. For purposes of this description, "locating to" refers to moving the read / write head from its current head position on the tape cartridge to the BOR position on the tape cartridge.
[0060] For example, if the EOD is between the current head position and the BOR, but the movement direction from the current read / write head position to the BOR is opposite to the write direction on the wrap that includes the EOD, the recall is performed skipping the EOD. In this example, the migration program 110 determines that the write direction on the EOD wrap is not the same as the movement direction for positioning at the BOR.
[0061] In another example, if the longitudinal movement direction of the tape from the current read / write head position to the BOR, e.g., to the right, is the same as the write direction, e.g., to the right, at the wrap containing the EOD, data can be added after the EOD during positioning (i.e., while moving the read / write head of the tape drive from the current position to the BOR position). In this example, migration program 110 determines that the write direction on the EOD wrap is the same as the movement direction for positioning to the BOR.
[0062] In response to determining that the write direction on the EOD wrap is not the same as the movement direction for positioning to the BOR (NO branch, 306), migration program 110 positions to the head of recall (BOR) (312) and returns a value of zero (314). In one embodiment, migration program 110 instructs a tape drive, such as tape drive 116, to position the tape drive read / write head to the BOR data on the tape cartridge as indicated by a recall request in a recall queue, such as recall queue 114, and returns a value of zero (314). In one embodiment, migration program 110 instructs a tape drive, such as tape drive 116, to return a value of zero in the LPOS range to the host, indicating that a migration cannot be performed simultaneously during a recall operation.
[0063] In response to a tape drive, such as tape drive 116, returning a value of zero in the LPOS range to the host, migration program 110 proceeds to read the data (path "B" to step 220 in Figure 2).
[0064] In response to determining that the write direction on the EOD wrap is the same as the move direction for positioning to the BOR (YES branch, 306), migration program 110 positions to the EOD (308) and returns the LPOS range between the EOD and the BOR (310). In one embodiment, in response to determining that the write direction on the EOD wrap is the same as the move direction for positioning to the BOR, migration program 110 instructs a tape drive, such as tape drive 116, to position to the EOD and return the LPOS range between the EOD and the BOR to the host for simultaneously migrating data onto the tape cartridge during the recall operation.
[0065] In response to the tape drive returning the LPOS range between EOD and BOR to the host for data migration, the migration program 110 proceeds to add the data and executes the subsequent steps (path "A" to steps 216, 218, and 220 in FIG. 2).
[0066] 4 is a block diagram illustrating components of a computing system, such as server computer 104, generally designated 400, in tape library hierarchical storage management environment 100, in accordance with one embodiment of the present invention. It should be understood that FIG. 4 is intended to be an illustration of only one implementation and is not intended to suggest any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.
[0067] In the exemplary embodiment, server computer 104 in tape library hierarchical storage management environment 100 is shown in the form of a general-purpose computing device, such as computer system 410. Components of computer system 410 may include, but are not limited to, one or more processors or processing units 414, memory 424, and a bus 416 that couples various system components, including memory 424, to processing unit 414.
[0068] Bus 416 represents any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures, including, by way of example and not limitation, an Industry Standard Architecture (ISA) bus, a Micro Channel Architecture (MCA) bus, an Enhanced ISA (EISA) bus, a Video Electronics Standards Association (VESA) local bus, and a Peripheral Component Interconnect (PCI) bus.
[0069] Computer system 410 typically includes a variety of computer system-readable media. Such media can be any available media that can be accessed by computer system 410 and includes both volatile and nonvolatile media, removable and non-removable media.
[0070] The memory 424 may include computer system-readable media in the form of volatile memory, such as random access memory (RAM) 426 and / or cache memory 428. The computer system 410 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, a storage system 430 may be provided for reading from and writing to a non-removable, non-volatile magnetic medium (not shown, typically referred to as a "hard drive"). Although not shown, a magnetic disk drive may be provided for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive may be provided for reading from and writing to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media. In such an example, each may be connected to the bus 416 by one or more data media interfaces. As further illustrated and described below, the memory 424 may include at least one computer program product having a set (e.g., at least one) of program modules configured to perform the functions of embodiments of the present invention.
[0071] Programs / utilities 432 having one or more sets of program modules 434 may be stored in memory 424, as may, for example and without limitation, an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data, or any combination thereof, may include a networking environment implementation. The program modules 434 generally perform the functionality and / or methodology of embodiments of the present invention described herein. The computer system 410 may also communicate with one or more external devices 412, such as a keyboard, pointing device, display 422, or one or more devices that allow a user to interact with the computer system 410, and any device (e.g., a network card, modem, etc.) that allows the computer system 410 to communicate with one or more other computing devices. Such communication may occur via an input / output (I / O) interface 420. Furthermore, computer system 410 can communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or combinations thereof, via network adapter 418. As shown, network adapter 418 communicates with other components of computer system 410 via bus 416. Although not shown, it should be understood that other hardware and software components, such as microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archive storage systems, may be used with computer system 410.
[0072] The present invention may be a system, a method, or a computer program product, or a combination thereof. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the present invention. In one embodiment, the computer-readable storage medium having computer-readable program instructions thereon may be internal to a server computer, such as server computer 104. In another embodiment, the computer-readable storage medium having computer-readable program instructions thereon may be internal to a server computer, such as server computer 104. In another embodiment, the computer-readable storage medium having computer-readable program instructions thereon may be stored external to a server computer, such as server computer 104, such that a client computer communicates with server computer 104 over a network connection, such as network 102, to execute the computer-readable program instructions on a tape library, such as tape library 108.
[0073] In other embodiments, the computer-readable storage medium having the computer-readable program instructions thereon may be internal to a tape library, such as tape library 108. In other embodiments, the computer-readable storage medium having the computer-readable program instructions thereon may be stored external to a tape library, such as tape library 108, such that a server computer, such as server computer 104, communicates with tape library 108 over a network connection, such as network 102, to execute the computer-readable program instructions on tape library 108.
[0074] A computer-readable storage medium may be any tangible device capable of retaining and storing instructions for use by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, 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, mechanically encoded devices such as punch cards or grooved ridge structures having instructions recorded thereon, and any suitable combination thereof. Computer-readable storage medium, as used herein, should not be construed as a transitory signal per se, such as, for example, radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses passing through fiber optic cable), or electrical signals transmitted over wires.
[0075] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device over a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, fiber optic transmission cables, wireless transmission cables, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing device.
[0076] The computer-readable program instructions for carrying out the operations of the present invention may be source or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, C++, and traditional procedural programming languages such as the "C" programming language or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the last scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or a connection may be made to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be personalized by utilizing state information of the computer readable program instructions to execute the computer readable program instructions to perform aspects of the present invention.
[0077] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0078] These computer-readable program instructions may be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine, such that when executed by the processor of the computer or other programmable data processing apparatus, means are generated for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium capable of instructing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer-readable storage medium on which the instructions are stored constitutes an article of manufacture containing instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0079] Furthermore, the computer-readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to perform a series of operational steps, thereby generating a computer-implemented process, such that when executed on a computer, other programmable apparatus, or other device, the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams are implemented.
[0080] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order depicted. For example, depending on the functionality involved, two blocks shown in succession may in fact be executed substantially concurrently, or the blocks may possibly be executed in the reverse order. It will also be noted that each block in the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or executes a combination of dedicated hardware and computer instructions.
[0081] The description of various embodiments of the present invention is presented for purposes of illustration and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the present invention. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements over technologies found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
[0082] The terms used herein are for the purpose of describing particular embodiments only and are not intended to limit the invention. It should be understood that any specific names herein are used for convenience only and, therefore, should not limit the invention to use in any particular application identified and / or implied by such names. Furthermore, as used herein, the singular forms "a," "an," and "the" are intended to include the plural forms unless the context dictates otherwise.
Claims
1. 1. A method for tape library hierarchical storage management, comprising: one or more computer processors, mounting a tape cartridge in a tape drive to satisfy a recall request; determining that there is tape capacity available on the tape cartridge for migrating data from a migration queue during a recall operation; sending a locate end of data (EOD) command to the tape drive; receiving a longitudinal position (LPOS) range returned from the tape drive; determining that the transition queue is within the LPOS range; writing data from the migration queue into the LPOS range of the tape cartridge; How to perform.
2. the one or more computer processors: accessing the migration queue on a host to identify one or more migration requests; determining that a migration queue exists in response to identifying at least a migration request in the migration queue; The method of claim 1 , further comprising:
3. the one or more computer processors: instructing the tape drive to position a tape drive read / write head to a beginning of recall (BOR) data location on the tape cartridge indicated by the recall request in the recall queue in response to determining that no migration queue exists on the host; instructing the tape drive to read the data starting from the BOR location; The method of claim 1 , further comprising:
4. the one or more computer processors: calculating tape storage capacity to satisfy the one or more migration requests accumulated in the migration queue; determining that there is tape capacity available on the tape cartridge for migrating data during a recall operation in response to determining that the tape storage capacity to satisfy the one or more migration requests accumulated in the migration queue is less than the available tape capacity; The method of claim 1 , further comprising:
5. the one or more computer processors: instructing the tape drive, in response to sending the locate EOD command to the tape drive, to determine whether an end-of-data (EOD) position is between a current longitudinal position (LPOS) of a tape drive read / write head of the tape drive and a beginning-of-recall (BOR) by obtaining the location of the beginning of an equally divided longitudinal region of the tape cartridge using a high-resolution tape directory (HRTD); The method of claim 1 , further comprising:
6. the one or more computer processors: selecting a size of one or more migration requests in the migration queue to prevent written data from passing a head of recall (BOR) due to an increase in the LPOS range caused by data migration; determining that the migration queue is within the LPOS range in response to determining that the size of one or more migration requests in the migration queue to be written will not pass the BOR; The method of claim 1 , further comprising:
7. one or more computer processors, instructing the tape drive to determine whether the EOD on the tape cartridge is between a current tape drive read / write head position and a beginning of recall (BOR) position; The method of claim 1 , further comprising:
8. the one or more computer processors: instructing the tape drive to determine whether a write direction on an EOD wrap is the same as a movement direction for positioning the tape drive read / write head from the current tape drive read / write head position to a BOR in response to determining that the EOD on the tape cartridge is between the current tape drive read / write head position and the BOR position; instructing the tape drive to determine that the writing direction on an EOD wrap is the same as the movement direction for positioning at a BOR from the current tape drive read / write head position in response to determining that the writing direction on an EOD wrap is the same as the movement direction for positioning at a BOR; The method of claim 7 further comprising:
9. the one or more computer processors: instructing the tape drive to position to EOD and return the LPOS range between EOD and BOR to a host for simultaneously migrating data onto the tape cartridge during a recall operation in response to determining that the write direction on the EOD wrap is the same as the movement direction for positioning to BOR. The method of claim 8 , further comprising:
10. 1. A method for tape library hierarchical storage management, comprising: one or more computer processors, Detecting at least one recall request in a recall queue on a host; In response to determining that there is a migration queue on the host, determining that there is tape capacity available on the tape cartridge for migrating data concurrently while satisfying the at least one recall request; sending a locate end of data (EOD) command to the tape drive in response to determining that there is tape capacity available on the tape cartridge for migrating data; receiving a longitudinal position (LPOS) range returned from the tape drive; writing data from the migration queue into the LPOS range of the tape cartridge in response to determining that the migration queue is within the LPOS range; How to perform.
11. 1. A method for tape library hierarchical storage management, comprising: one or more computer processors, detecting at least one recall request in a recall queue on a host, wherein detecting the at least one recall request in the recall queue includes mounting a tape cartridge in a tape drive to satisfy the at least one recall request; determining whether there is tape capacity available on the tape cartridge for migrating data during a recall operation in response to determining that there is a migration queue on the host; sending a locate end of data (EOD) command to the tape drive in response to determining that tape capacity is available on the tape cartridge for migrating data; receiving a longitudinal position (LPOS) range returned from the tape drive in response to sending the locate EOD command to the tape drive; determining whether the migration queue is within the LPOS range in response to determining that the LPOS range returned from the tape drive is not a zero value; writing data from the migration queue into the LPOS range of the tape cartridge in response to determining that the migration queue is within the LPOS range; How to perform.
12. A program for causing a computer processor to execute a method according to any one of claims 1 to 11.
13. A computer system having a computer processor for executing the method according to any one of claims 1 to 11.
Citation Information
Patent Citations
Virtual tape device and tape mount control method
JP2013161193A
Writing files to multiple tapes
US20190361622A1
Optimized tape drive unmounting
US20210064298A1