Maintaining a high-resolution tape directory at the end of an overwritten data set
By writing the HRTD at the end of data sets and storing overwrite information, the method addresses the challenge of maintaining HRTD in tape drives, ensuring fast and reliable data retrieval and reducing restoration times.
Patent Information
- Application Number
- JP2025530706
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-19
- Filing Date
- 2023-11-27
- Publication Date
- 2026-01-06
AI Technical Summary
Existing tape drives face challenges in maintaining a high-resolution tape directory (HRTD) due to its large size, which cannot be stored in non-volatile memory, leading to difficulties in repositioning and data retrieval, especially when the tape cartridge is ejected and needs to be reloaded, resulting in lengthy restoration times and potential data loss.
The method involves writing a high-resolution tape directory (HRTD) at the end of data set (EOD) adjacent to the last written user data set, allowing new data sets to be appended without physically overwriting the EOD, and storing information for locating the overwritten EOD in the cartridge memory, enabling faster and reliable HRTD restoration.
This approach ensures efficient and rapid retrieval of HRTD information, reducing restoration time from potentially hours to minutes, and maintaining data integrity by avoiding physical overwriting of critical directory information.
Smart Images

Figure 2026500114000001_ABST
Abstract
Description
[Background technology]
[0001] The present disclosure relates to tape data storage, and more particularly to non-volatile storage of a High Resolution Tape Directory (HRTD) for tape cartridges.
[0002] Linear tape-open (LTO) tape drives and IBM enterprise tape drives (TS11xx) are called linear tape drives. Linear tape drives distribute data longitudinally on the tape, record the data from the beginning to the end of the tape, then shift the position slightly laterally across the tape, and then record the data on the tape in the opposite longitudinal direction. Linear tape drives repeat this back-and-forth motion several times while shifting laterally across the tape.
[0003] The host issues a repositioning request by record number or file mark number order. Here, a file mark is a delimiter for a group of records that make up a file. Because a tape drive cannot determine where a target record or file mark is written on the tape, the drive roughly determines the location by using a tape directory (TD). TDs for LTO tape drives divide a wrap into two regions, while high-resolution tape drives (HRTDs) for TS11xx tape drives divide a wrap into 128 regions. For example, a TS1160 has 272 wraps, so it has 272 wraps x 128 regions / wrap = 34,816 regions. TDs and HRTDs record the record number and file mark number written at the end of a region and also record the number of records and file marks written in the region. This information allows the tape drive to determine whether the target record or file mark is within a region.
[0004] The tape drive references the expanded HRTD in main memory when repositioning. When the tape cartridge is ejected from the tape drive, the HRTD can be written to non-volatile memory in the tape cartridge to restore the HRTD the next time the tape cartridge is loaded. Because the size of the TD is small, it can be stored in the CM of the tape cartridge. However, the HRTD cannot be recorded in the CM due to its size. Summary of the Invention
[0005] According to an embodiment of the present disclosure, there is provided a method comprising writing an end of data set (EOD) including a high resolution tape directory (HRTD) at a position adjacent to a last written user data set on a tape, the method further comprising, when appending a new user data set, writing the new user data set starting at a position adjacent to a last longitudinal position (LPOS) of the EOD to generate an overwritten EOD.
[0006] Further embodiments of the present disclosure provide a tape drive and a computer program product for carrying out the method.
[0007] The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure. [Brief explanation of the drawings]
[0008] The drawings included herein are incorporated into and form a part of this specification. They illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the disclosure. The drawings illustrate particular embodiments only and do not limit the disclosure.
[0009] [Figure 1] FIG. 1 is a block diagram of a tape storage system according to an embodiment.
[0010] [Figure 2] 1 is a flowchart of an example method for appending a new data set, according to an embodiment.
[0011] [Figure 3] FIG. 3 shows a data set in a wrap to illustrate the appending of a new data set in EOD according to the method shown in FIG. 2.
[0012] [Figure 4]1 is a flowchart of an exemplary method for reading a data set from a tape, according to an embodiment.
[0013] [Figure 5] 1 is a flowchart of an example method for restoring an HRTD using an EOD overwritten by a SAW, according to an embodiment.
[0014] [Figure 6] FIG. 1 illustrates a computing environment according to an embodiment.
[0015] While the invention is susceptible to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that it is not intended to limit the invention to the particular embodiments described. On the contrary, it is intended to cover all modifications, equivalents, and alternatives falling within the scope of the invention. DETAILED DESCRIPTION OF THE INVENTION
[0016] Aspects of the present disclosure relate to high-resolution tape directories in tape storage, and more particularly, aspects relate to maintaining a high-resolution tape directory at the end of a data set on a tape when appending new user data sets. Although the present disclosure is not necessarily limited to such applications, various aspects of the present disclosure may be understood through the discussion of various examples using this context.
[0017] The data area of a tape is divided into multiple areas called wraps. A tape drive writes data to the tape linearly on each wrap, from the beginning to the end of the tape or from the end to the beginning of the tape. The width of the valid data area of each wrap in the tape width direction is called the track pitch. For example, a tape drive may record data using even wraps written from the beginning of the tape to the end of the tape and odd wraps written from the end of the tape to the beginning of the tape. TS1160 has 68 wraps on each data band, for a total of 272 wraps on the tape. User data sent from the host is written to the tape in data set units, from the beginning of the wrap to the end of the wrap. A data set information table (DSIT), which records data set information, is written as part of the data set.
[0018] A tape drive writes data from the beginning of the tape to its end, and is also known as a sequential device. A record is the unit in which a host writes data to a tape drive. Records written to the tape drive are compressed by the tape drive's compression engine and temporarily stored in a memory buffer. When the compressed data size exceeds the data set size, the tape drive writes data to the tape in data set units. At the end of a user data set, the drive writes a special type of data set called an End of Data Set (EOD), which indicates that no further data sets exist on the tape. The physical location of the EOD is recorded in a non-volatile memory called cartridge memory (CM) embedded on the cartridge, so the tape drive can proceed to the EOD location to append new user data to the tape.
[0019] There are two types of IDs used to identify datasets. One is the dataset ID, whose value is set to 1 at the beginning of the tape (BOT) and increments by 1 for each dataset. The other is the tape write pass, whose value is set to 1 when transported and increments by 1 as older datasets are overwritten. The tape write pass is never cleared to ensure that the newest dataset has the largest value among the older datasets. When the drive reads new and old dataset fragments, it can choose the newest fragment using only the tape write pass.
[0020] Before a tape drive can begin reading or writing a data set from the tape, it must navigate to the physical location of the data set to be read or overwritten. The act of adjusting the location is called repositioning.
[0021] The host issues a repositioning request using a record number or file mark number. A file mark is an indicator of a group of records that make up a file. Because a tape drive cannot determine where the target record or file mark is written on the tape, the drive determines the location approximately by using the tape directory (TD). TDs for LTO tape drives divide a wrap into two regions, while high-resolution tape drives (HRTDs) for TS11xx tape drives divide a wrap into 128 regions. For example, a TS1160 has 272 wraps, so it has 272 wraps x 128 regions / wrap = 34,816 regions. TDs and HRTDs record the record number and file mark number written at the end of the previous region and also record the number of records and file marks written in the region. This information allows the tape drive to determine whether the target record or file mark is within the region.
[0022] When the tape drive receives a repositioning request from the host, it identifies the region of the target record or target filemark. Because the physical location of the region is uniquely identified, the drive can reposition to the beginning of the region and read each dataset in the region, one by one, starting with the first, until it finds the dataset that stores the target record or filemark.
[0023] The tape drive references the HRTD in the main volatile memory when repositioning. When the tape cartridge is ejected from the tape drive, the HRTD must be written to non-volatile memory to be used for the next loading of the tape cartridge. Because the size of the TD is small, it can be stored in the CM of the cartridge. However, the HRTD cannot be recorded in the CM due to its size. Instead, the tape drive may write the HRTD at a location on the tape where no user data has been written. Depending on the tape media or drive head condition, it may be difficult to read back the HRTD; therefore, the tape drive may record the HRTD at several locations on the tape and restore the HRTD as follows. (1) The HRTD may be recorded in the housekeeping area as part of the standard housekeeping data set (sHKDS). The sHKDS is recorded in the housekeeping area located before the user data area and is read first when the cartridge is loaded into a tape drive. For user data sets, the tape drive attempts to read them repeatedly up to 80 times by changing the settings when it is unable to read the user data set; this is called the Error Recovery Procedures (ERP). If the drive is unable to read back the data set after the ERP, it reports an error to the host. On the other hand, the drive stops reading the sHKDS after fewer attempts because the sHKDS is not user data and the drive can continue to function without it. (2) A tape drive may write an HRTD to the EOD next to a user data set, which indicates the end of user data. The size of the EOD is the same as that of a normal data set, but the EOD mark size is very small, so the drive records sHKDS information in the remaining space. If the tape drive fails to locate the HRTD by reading the sHKDS when loading a tape cartridge, the tape drive can locate the HRTD by going to the EOD when it receives a repositioning request from the host. Unfortunately, if the drive fails to write a user data set, it cannot locate the HRTD from the EOD because it does not exist. (3) A tape drive may record an HRTD in a null data set at the beginning of a wrap (BOW). The null data set does not record any user data. As the drive transitions to the next wrap at the BOW, magnetic debris accumulates at that location. The tape condition at the BOW becomes worse than other areas, which prevents the tape drive from reading back the HRTD at the BOW. In addition, because the null data set is not a user data set, the tape drive will not attempt to write it multiple times if it fails to write it in order to maintain write performance. This results in an unrecoverable HRTD. (4) The DSIT records not only data set information such as the DS ID or record number, but also two areas of the HRTD due to its size limitations. Since the TS1160 has 34,816 areas in the HRTD, the drive reads 17,408 data sets to restore the HRTD, which are written on the tape for at least 2.4 wraps or more. If the drive / tape condition is good, it may take at least 7 minutes to retrieve them. (5) If the tape drive cannot restore the HRTD by reading the DSIT, then as a last resort the tape drive can restore it by reading the entire dataset on the tape, which may take more than 14 hours.
[0024] A tape drive can overwrite new records on existing record locations; this is called appending. Appending begins writing a new data set from the end longitudinal position (LPOS) of the last data set being overwritten. By writing immediately from that location, the old data is completely overwritten so that it cannot be read by mistake. However, if the tape drive's head deteriorates with use or if magnetic debris accumulates on the tape surface, the drive may be unable to correctly position the write head over the track. In this case, the drive stops writing until the head is correctly positioned over the track. The drive continues to operate without writing to the tape to adjust the head position until it is over the track. By comparing the tape write path with that of the previous data set, the drive can read back the new data set even if it was written at a location later than the older data set. However, an append data set does not have any previous data sets with the same tape write path. To avoid this situation, the tape drive must append from the end LPOS of the previous data set.
[0025] If the tape media wears out or accumulates debris, the drive may be unable to follow the track at the end LPOS of the previous data set. If the tape drive is unable to start writing from the end LPOS position despite multiple write attempts, the drive enters Suspended Append Write (SAW) mode. The tape drive records the data set ID and tape write path in the CM, and then it writes the data set at a location away from the end LPOS of the previous data set. Whenever the tape drive reads a data set, it checks the CM to determine whether the data set has been overwritten by the SAW. If it has been overwritten, the drive discards the older data set and attempts to read it again on the tape write path.
[0026] When a tape drive appends a new data set from EOD, it repositions to the EOD location and overwrites the new data set from there, as shown in Figure 2. If the drive cannot start writing the data set at that location, it writes the data set by SAW without recording the data set ID and tape write path in CM, unlike the normal append case. The drive can distinguish whether the EOD is real or has been overwritten by another data set by checking the EOD information page in CM, which records the EOD data set ID and its tape write path. This also saves space on SAW pages in CM.
[0027] The tape drive restores the HRTD when a reposition command is issued because repositioning without it takes a long time if the HRTD cannot be retrieved from the sHKDS when the cartridge is loaded. Tape drives currently restore the HRTD using one of five mechanisms described herein. Because the EOD may record more HRTD information than other mechanisms and may take less time to read, the tape drive may restore the HRTD using the EOD with the highest priority. However, the drive cannot use the EOD if it is not written to the tape due to a write failure or a power outage while writing data. The HRTD may be recorded in a null data set in the BOW of each wrap, but the BOW wears out more quickly due to unexpected friction caused by the rotation of the wrap at that location. Reading the BOW data may fail or take a long time due to the ERP. The null data set in the BOW is not always written if the ERP is performed during a write.
[0028] According to an embodiment of the present disclosure, a mechanism is provided for a tape drive to write an append data set to preserve the HRTD in the EOD. When appending new data to a tape, the proposed mechanism processes the append data set by writing from a position adjacent to the end (LPOS) of the EOD without physically overwriting the EOD. This EOD can be considered to have been overwritten by the SAW. The new data set can be a given tape write pass whose value is greater than that of the overwritten EOD. Information for locating the EOD overwritten by the SAW can be stored in the CM of the tape cartridge. This allows the tape drive to restore the HRTD from the EOD overwritten by the SAW, which is written in the user data area, which is generally in a better condition than the BOW.
[0029] 1, a block diagram of a tape storage system 100 according to an embodiment of the present disclosure is shown. Tape storage system 100 includes a host computing device 110, a tape drive 120, and a tape cartridge 130. Host computing device 110 may be communicatively coupled to tape drive 120 via one or more interfaces. In some embodiments, host computing device 110 may communicate with tape drive 120 via one or more networks. Although not shown, in some embodiments, tape drive 120 may be part of a tape library having multiple tape drives.
[0030] The host computing device 110 may be any suitable computing device. The host computing device 110 includes a tape storage module 114. The tape storage module 114 may be any combination of hardware and software components configured to communicate with the tape drive 120. For example, the tape storage module 114 may include program instructions executable by a processor to communicate commands to the tape drive 120 and to process information received from the tape drive 120.
[0031] The tape drive 120 may be any type of suitable tape drive. The tape drive 120 may include a controller 124. The controller 124 may be or include a processor and / or any logic for controlling any subsystem of the tape drive 120. For example, the controller 124 typically controls head functions such as servo tracking, data writing, data reading, etc. The controller 124 may operate under any logic known in the art and disclosed herein and, therefore, in various embodiments, may be considered a processor for purposes of any of the tape drive descriptions contained herein. The controller 124 may be coupled to any known type of memory 126, which may store instructions executable by the controller 124. Moreover, the controller 124 may be configured and / or programmable to execute or control some or all of the methodologies presented herein. Thus, controller 124 may be considered to be configured to perform various operations through logic programmed into one or more chips, modules, and / or blocks; software, firmware, and / or other instructions available to one or more processors; and the like, and combinations thereof.
[0032] The memory 126 may be one or a combination of more than one memory device. The memory 126 includes a volatile memory 128. The controller 124 may be configured to store information related to a tape cartridge loaded in the tape drive 120 in the volatile memory 128. For example, the controller may store an HRTD in the volatile memory 128 for use in fulfilling a repositioning request from a host.
[0033] A tape cartridge 130 may be loaded into the tape drive 120. The tape cartridge 130 may be any suitable type of tape cartridge. The tape cartridge 130 may include a cartridge memory 134 and a tape 138. The cartridge memory 134 may store EOD information 136 as described herein.
[0034] 2, a flowchart of an example method 200 for appending a new data set is shown, according to an embodiment. Although method 200 is described herein with reference to tape drive 120 in tape storage system 100 of FIG. 1, it should be understood that other suitable tape drives and tape storage systems may perform method 200 in other embodiments.
[0035] In operation 210, the tape drive 120 receives a new data set append command from the host computing device 110. In operation 220, the tape drive 120 repositions the tape head to the end LPOS of the EOD on the tape 138. The position of the EOD may be determined by reading the EOD information 136 in the CM 134. In operation 230, the tape drive 120 prepares a new data set. For example, the tape drive may compress the data received from the host. In operation 240, the tape drive 120 sets the data set ID for the new data set to the same data set ID as the EOD and sets the tape write pass to a value greater than the tape write pass value of the EOD. For example, the tape write pass may be an integer, and the tape write pass value may be incremented by 1 for the new data set compared to the tape write pass value of the EOD. In operation 250, the tape drive 120 writes the new data set to the tape 138 from a position adjacent to the end LPOS of the EOD. The tape drive writes the new data set with the data set ID and tape write pass values set in operation 240. In operation 260, the tape drive 120 records information for locating the overwritten EOD in the CM 134 of the tape cartridge 130. The information recorded for locating the overwritten EOD may include the data set ID, the tape write pass, the wrap at which the EOD was recorded, and the beginning LPOS of the EOD.
[0036] Because the new data set is written at a point after the end LPOS of the previous user data set, the EOD may be considered to have been overwritten by the SAW. However, because the EOD overwritten by the SAW is not physically overwritten, and information for locating the overwritten EOD is stored in the CM, the HRTD stored in the overwritten EOD may be retrieved as discussed herein with reference to FIG.
[0037] Referring now to FIG. 3, datasets in a wrap are shown to illustrate the appending of a new dataset to an EOD according to method 200. FIG. 3 shows the wrap with the dataset before the append operation and the same wrap after the append operation. As shown, the new dataset is written at a location adjacent to the end of the EOD, LPOS, so that the EOD is not physically overwritten. Therefore, the EOD can still be read from the tape even though it has been overwritten by the SAW. As shown, the first new dataset has the same dataset ID (DS#n) as the EOD, but has an incremented tape write pass value (WP#k+1).
[0038] 4, a flowchart of an exemplary method 400 for reading a data set from tape is shown, according to an embodiment. Although method 400 is described herein with reference to tape drive 120 in tape storage system 100 of FIG. 1, it should be understood that other suitable tape drives and tape storage systems may perform method 400 in other embodiments.
[0039] In operation 410, the tape drive 120 reads a data set from the tape 138. In operation 420, the tape drive 120 determines whether the data set is EOD. If the data set is EOD, the tape drive 120 checks the EOD information stored in the CM 134. In some embodiments, the tape drive checks the information for the current EOD to see if it matches the information for the read EOD. In some embodiments, the tape drive checks the information for the EOD overwritten by the SAW stored in the CM to see if it matches the read EOD. The information checked may include the data set ID, the tape write path, the wrap at which the EOD was written, and the LPOS for the EOD.
[0040] In operation 450, the tape drive 120 determines whether the read EOD has been overwritten by a SAW based on the EOD information read from the CM 134. If the EOD has not been overwritten by a SAW, the tape drive determines that the read is complete in operation 460. If the EOD has been overwritten by a SAW, the tape drive 120 resumes reading the data set from the same location in operation 410 by incrementing the tape write pass value.
[0041] If in operation 420 the tape drive 120 determines that the data set is not EOD, then the tape drive 120 determines whether there are more data sets to be read in operation 430. If there are more data sets to be read, then the tape drive 120 reads the next data set in operation 410. If there are no more data sets to be read, then the tape drive 120 determines in operation 460 that the read is complete.
[0042] 5, an exemplary method 500 for recovering an HRTD using an EOD overwritten by a SAW, according to an embodiment. Method 500 is described herein with reference to tape drive 120 in tape storage system 100 of FIG. 1, but it should be understood that in other embodiments, other suitable tape drives and tape storage systems may perform method 500. Method 500 may be performed in response to a tape drive recovering an HRTD from an sHKDS upon loading of a tape cartridge and failing to recover the HRTD from the EOD because the EOD was not written on the tape.
[0043] In operation 510, the tape drive 120 reads the EOD information 136 stored in the CM 134 to identify information for locating the EOD overwritten by the SAW. This may be the information recorded in operation 260 of FIG. 2. For example, the information may include the beginning LPOS of the overwritten EOD and the tape write path for the overwritten EOD. In operation 520, the tape drive 120 repositions the tape head to the position of the beginning LPOS of the overwritten EOD. In operation 530, the tape drive 120 reads the overwritten EOD starting at the beginning LPOS of the overwritten EOD using the tape write path retrieved in operation 510 to obtain the HRTD.
[0044] Various aspects of the present disclosure are described through text, flowcharts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of a computer program product (CPP). With respect to any flowchart, depending on the technology involved, operations may be performed in an order different from that shown in a given flowchart. For example, again depending on the technology involved, two operations shown in successive flowchart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in an at least partially overlapping manner.
[0045] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also referred to as "media") collectively included in a set of one or more storage devices that collectively contain machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. The computer-readable storage medium may be, but is not limited to, an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include 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), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as punch cards or pits / lands formed on a major surface of a disk), or any suitable combination of the foregoing. Computer-readable storage media, as the term is used in this disclosure, is not to be construed as storage in the form of a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through fiber optic cables, electrical signals communicated through wires, and / or other transmission media.As will be appreciated by those skilled in the art, data is typically moved at some infrequent time during the normal operation of a storage device, such as during access, defragmentation, or garbage collection, but this does not make the storage device transient, as the data is not transient while it is stored.
[0046] Computing environment 600 comprises an example of an environment for the execution of at least a portion of computer code involved in performing the methods of the present invention, such as HRTD-stored code 700. In addition to block 700, computing environment 600 includes, for example, a computer 601, a wide area network (WAN) 602, an end user device (EUD) 603, a remote server 604, a public cloud 605, and a private cloud 606. In this embodiment, computer 601 includes a processor set 610 (including processing circuitry 620 and cache 621), a communications fabric 611, volatile memory 612, persistent storage 613 (including an operating system 622 and block 700 as identified above), a peripheral device set 614 (including a user interface (UI) device set 623, storage 624, and an Internet of Things (IoT) sensor set 625), and a network module 615. Remote server 604 includes a remote database 630. The public cloud 605 includes a gateway 640, a cloud orchestration module 641, a set of host physical machines 642, a set of virtual machines 643, and a set of containers 644.
[0047] Computer 601 may take the form of a desktop computer, a laptop computer, a tablet computer, a smartphone, a smartwatch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or later developed that is capable of executing programs, accessing a network, or querying a database, such as remote database 630. As is well understood in the art of computer technology, and depending on the technology, execution of a computer-implemented method may be distributed among multiple computers and / or among multiple locations. While in this presentation of computing environment 600, to keep the presentation as concise as possible, the detailed discussion focuses on a single computer, specifically computer 601. Although computer 601 is not depicted in the cloud of FIG. 1 , it may be located in a cloud. However, computer 601 is not required to reside within a cloud except to any extent that may be expressly indicated.
[0048] Processor set 610 includes one or more computer processors of any type now known or later developed. Processing circuitry 620 may be distributed across multiple packages, e.g., multiple cooperating integrated circuit chips. Processing circuitry 620 may implement multiple processor threads and / or multiple processor cores. Cache 621 is memory located within the processor chip package and is typically used for data or code that should be available for fast access by threads or cores executing on processor set 610. Cache memory is typically organized into multiple levels depending on relative proximity to the processing circuitry. Alternatively, some or all caches for a processor set may be located “off-chip.” In some computing environments, processor set 610 may be designed to function with qubits and perform quantum computing.
[0049] Computer-readable program instructions are typically loaded onto computer 601 to cause a series of operational steps to be performed by processor set 610 of computer 601, thereby implementing a computer-implemented method, whereby the instructions so executed instantiate the method specified in the flowcharts and / or descriptions of the computer-implemented method contained herein (collectively referred to as the "methods of the present invention"). These computer-readable program instructions are stored in various types of computer-readable storage media, such as cache 621 and other storage media discussed below. The program instructions and associated data are accessed by processor set 610 to control and direct the execution of the methods of the present invention. In computing environment 600, at least some of the instructions for implementing the methods of the present invention may be stored in block 700 within persistent storage 613.
[0050] Communications fabric 611 is the signal-conducting pathway that allows the various components of computer 601 to communicate with one another. Typically, this fabric is made up of switches and conductive pathways, such as those that make up buses, bridges, physical input / output ports, and the like. Other types of signal communication pathways may be used, such as fiber optic and / or wireless communication pathways.
[0051] Volatile memory 612 may be any type of volatile memory now known or later developed. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, volatile memory is characterized by random access, although this is not required unless expressly stated. In computer 601, volatile memory 612 is located in a single package and is internal to computer 601, although alternatively or additionally, volatile memory may be distributed across multiple packages and / or located external to computer 601.
[0052] Persistent storage 613 is any form of non-volatile storage for a computer, now known or later developed. The non-volatility of this storage means that stored data remains whether or not power is supplied to computer 601 and / or to persistent storage 613 directly. Persistent storage 613 may be read-only memory (ROM), but typically at least a portion of persistent storage allows data to be written, data to be erased, and data to be rewritten. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. Operating system 622 may take several forms, such as various known proprietary operating systems or open-source Portable Operating System Interface-type operating systems employing a kernel. The code contained in block 700 typically includes at least a portion of the computer code involved in performing the methods of the present invention.
[0053] The peripheral device set 614 includes a set of peripheral devices of the computer 601. Data communication connections between the peripheral devices and other components of the computer 601 may be implemented in various ways, such as Bluetooth connections, Near-Field Communication (NFC) connections, connections made by cable (such as a universal serial bus (USB)-type cable), insertion-type connections (e.g., a secure digital (SD) card), connections made over a local area communication network, and even connections made over a wide area network such as the Internet. In various embodiments, the UI device set 623 may include components such as a display screen, speakers, microphones, wearable devices (such as goggles and smartwatches), keyboards, mice, printers, touchpads, game controllers, and haptic devices. The storage 624 may be external storage, such as an external hard drive, or insertable storage, such as an SD card. The storage 624 may be persistent and / or volatile. In some embodiments, storage 624 may take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer 601 is required to have a large amount of storage (e.g., computer 601 stores and manages large databases locally), this storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically distributed computers. IoT sensor set 625 consists of sensors that can be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.
[0054] The network module 615 is a collection of computer software, hardware, and firmware that enables the computer 601 to communicate with other computers over the WAN 602. The network module 615 may include hardware such as a modem or Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for communicating data over the Internet. In some embodiments, the network control and network forwarding functions of the network module 615 are performed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software-defined networking (SDN)), the control and forwarding functions of the network module 615 are performed on physically separate devices, such that the control function manages several different network hardware devices. Computer-readable program instructions for implementing the methods of the present invention can typically be downloaded to the computer 601 from an external computer or external storage device through a network adapter card or network interface included in the network module 615.
[0055] WAN 602 is any wide area network (e.g., the Internet) capable of communicating computer data over non-local distances by any technology for communicating computer data, now known or later developed. In some embodiments, a WAN may be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area, such as a Wi-Fi network. WANs and / or LANs typically include copper transmission cables, optical fiber transmissions, wireless transmissions, and computer hardware such as routers, firewalls, switches, gateway computers, and edge servers.
[0056] End-user device (EUD) 603 is any computer system used and controlled by an end user (e.g., a customer of the enterprise operating computer 601) and may take any of the forms discussed above in connection with computer 601. EUD 603 typically receives useful and useful data from the operation of computer 601. For example, in the hypothetical case where computer 601 is designed to provide recommendations to the end user, the recommendations would typically be communicated from computer 601's network module 615 over WAN 602 to EUD 603. In this manner, EUD 603 can display or otherwise present the recommendations to the end user. In some embodiments, EUD 603 may be a client device such as a thin client, a heavy client, a mainframe computer, a desktop computer, etc.
[0057] Remote server 604 is any computer system that provides at least some data and / or functionality to computer 601. Remote server 604 may be controlled and used by the same entity that operates computer 601. Remote server 604 represents a machine that collects and stores useful and useful data for use by other computers, such as computer 601. For example, in the hypothetical case where computer 601 is designed and programmed to provide recommendations based on historical data, then this historical data may be provided to computer 601 from remote database 630 of remote server 604.
[0058] Public cloud 605 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer functionality, particularly data storage (cloud storage) and computing power, without direct active management by users. Cloud computing typically leverages resource sharing to achieve coherence and economies of scale. Direct active management of public cloud 605 computing resources is performed by computer hardware and / or software in cloud orchestration module 641. Computing resources provided by public cloud 605 are typically implemented by virtual computing environments running on various computers comprising host physical machine set 642, the universe of physical computers in and / or available to public cloud 605. Virtual computing environments (VCEs) typically take the form of virtual machines from virtual machine set 643 and / or containers from container set 644. It is understood that these VCEs may be stored as images and can be transferred among and between various physical machine hosts, either as images or after instantiation of the VCEs. The cloud orchestration module 641 manages the transfer and storage of images, deploys new instantiations of the VCE, and manages active instantiations of VCE deployments. The gateway 640 is a collection of computer software, hardware, and firmware that enables the public cloud 605 to communicate over the WAN 602.
[0059] Some further description of virtualized computing environments (VCEs) is now provided. A VCE can be stored as an "image." A new, active instance of a VCE can be instantiated from the image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system-level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated user space instances called containers. These isolated user space instances typically behave as actual computers from the perspective of programs running in them. A computer program running on a normal operating system can utilize all of the computer's resources, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware features. However, a program running inside a container can only use the contents of the container and of the devices assigned to the container; this feature is known as containerization.
[0060] Private cloud 606 is similar to public cloud 605, except that the computing resources are available only for use by a single enterprise. While private cloud 606 is shown as communicating with WAN 602, in other embodiments, the private cloud may be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a composite of multiple clouds of different types (e.g., private, community, or public cloud types), often each implemented by a different vendor. While each of the multiple clouds remains a separate, discrete entity, the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the constituent clouds. In this embodiment, both public cloud 605 and private cloud 606 are part of a larger hybrid cloud.
[0061] The description of various embodiments of the present disclosure has been presented for purposes of illustration, but 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 described embodiments. The terminology used herein has been selected to explain the principles of the embodiments, practical applications, or technical improvements over technology found in the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
Claims
1. writing an end of data set (EOD) containing a high resolution tape directory (HRTD) on the tape adjacent to the last written user data set; and When appending a new user data set, writing the new user data set starting from a position adjacent to the end longitudinal position (LPOS) of the EOD to generate an overwritten EOD. A method comprising:
2. 2. The method of claim 1, wherein the EOD has a first dataset ID and a first tape write pass value, and the new dataset has the first dataset ID and a second tape write pass value that is greater than the first tape write pass value.
3. 10. The method of claim 1, further comprising recording information for locating the overwritten EOD in a cartridge memory.
4. 4. The method of claim 3, wherein the information includes a dataset ID for the overwritten EOD, a tape write pass value for the EOD, a wrap at which the EOD is recorded, and the beginning LPOS of the overwritten EOD.
5. reading the cartridge memory to obtain the information for locating the overwritten EOD; locating the overwritten EOD using the information from the cartridge memory; and Restoring the HRTD by reading the overwritten EOD. The method of claim 3 further comprising:
6. reading the cartridge memory to obtain the end of line position (LPOS) of the overwritten EOD; repositioning the tape head to the beginning LPOS; and reading from the beginning LPOS and restoring the HRTD from the overwritten EOD; The method of claim 4 further comprising:
7. reading a first data set; checking EOD information in cartridge memory in response to determining that the first data set is EOD; and reading a second data set by incrementing a tape write pass value in response to determining that the first data set has been overwritten based on EOD information in the cartridge memory. The method of claim 1 further comprising:
8. 1. A tape drive comprising: memory; and a controller communicatively coupled to the memory wherein the controller write an end of data set (EOD) containing a high resolution tape directory (HRTD) on the tape adjacent to the last written user data set; When appending a new user data set, the new user data set is written starting from a position adjacent to the end longitudinal position (LPOS) of the EOD to generate an overwritten EOD. The tape drive is configured as follows:
9. 9. The tape drive of claim 8, wherein the EOD has a first dataset ID and a first tape write pass value, and the new dataset has the first dataset ID and a second tape write pass value that is greater than the first tape write pass value.
10. 9. The tape drive of claim 8, wherein the controller is further configured to record information for locating the overwritten EOD in a cartridge memory.
11. 11. The tape drive of claim 10, wherein the information includes a dataset ID for the overwritten EOD, a tape write pass value for the EOD, a wrap at which the EOD is recorded, and the beginning LPOS of the overwritten EOD.
12. The controller reading the cartridge memory to obtain the information for locating the overwritten EOD; locating the overwritten EOD using the information from the cartridge memory; Recovering the HRTD by reading the overwritten EOD 11. The tape drive of claim 10, further configured to:
13. The controller reading the cartridge memory to obtain the end of line position (LPOS) of the overwritten EOD; repositioning the tape head to the beginning LPOS; Read from the beginning LPOS and restore the HRTD from the overwritten EOD.
13. The tape drive of claim 12, further configured to:
14. The controller Read the first data set; responsive to determining that the first data set is EOD, checking EOD information in cartridge memory; and reading a second data set by incrementing a tape write pass value in response to determining that the first data set has been overwritten based on EOD information in the cartridge memory.
9. The tape drive of claim 8, further configured to:
15. 1. A computer program product comprising a computer-readable storage medium having code embodied therein, the code causing a controller to: writing an end of data set (EOD) containing a high resolution tape directory (HRTD) on the tape adjacent to the last written user data set; When appending a new user data set, the new user data set is written starting from a position adjacent to the end longitudinal position (LPOS) of the EOD to generate an overwritten EOD. a computer program product executable by the controller to:
16. 16. The computer program product of claim 15, wherein the EOD has a first dataset ID and a first tape write pass value, and the new dataset has the first dataset ID and a second tape write pass value that is greater than the first tape write pass value.
17. 16. The computer program product of claim 15, wherein the code is further executable by the controller to cause the controller to record information for locating the overwritten EOD in a cartridge memory.
18. 18. The computer program product of claim 17, wherein the information includes a dataset ID for the overwritten EOD, a tape write pass value for the EOD, a wrap at which the EOD is recorded, and the beginning LPOS of the overwritten EOD.
19. The code causes the controller to: reading the cartridge memory to obtain the information for locating the overwritten EOD; locating the overwritten EOD using the information from the cartridge memory; The HRTD is restored by reading the overwritten EOD.
20. The computer program product of claim 17, further executable by the controller to:
20. The code causes the controller to: reading the cartridge memory to obtain the starting LPOS of the overwritten EOD; repositioning the tape head to the beginning LPOS; Read from the beginning LPOS and restore the HRTD from the overwritten EOD 20. The computer program product of claim 18, further executable by the controller to: