LOGICAL BLOCK PROTECTION FOR TAPE INTERCHANGE
20170017541 ยท 2017-01-19
Inventors
- Kevan Flint Rehm (Brooklyn Park, MN, US)
- Judith Ann Schmitz (Edina, MN, US)
- Joseph Carl Nemeth (Fort Collins, CO, US)
- John Michael Sygulla (Chippewa Falls, WI, US)
Cpc classification
G11B20/1833
PHYSICS
G06F3/0619
PHYSICS
International classification
G06F11/10
PHYSICS
G11B20/18
PHYSICS
Abstract
A two part process is used for modifying records to be written and retrieved from tape devices. A record is appended with a cyclic redundancy check and a string of zeros. Submitting the entire record to tape drives which are logical block protection enabled will result in no change. For drives that are not LBP enabled, the string of zeros at the end of the record is removed. In addition to determining whether a drive is LBP compliant, a determination may be made as to whether a drive is a linear tape open drive from a particular manufacturer. Linear tape open drives may behave similarly as drives which may not be enabled with logical block protection.
Claims
1. (canceled)
2. A method for storing data on tape media, the method comprising: identifying that a first tape drive supports logical block protection (LBP), wherein a first tape media resides at the first tape drive; issuing a read command to the first tape drive to read a first record stored at the first tape media; receiving the first data record and data associated with the first record stored at the first tape media, wherein the data associated with the first record stored at the first tape media includes a field of zeros associated with the first record; receiving updated data to write to the first record at the first tape media; appending a field of zeros to the updated data that are associated with the updated data; issuing a write command to the first tape drive to write updated data with the appended field of zeros to the first data record stored at the first tape media, and sending the updated data with the appended field of zeros to the first tape drive, wherein the first tape drive writes the updated data with the appended field of zeros to the first data record at the first tape media.
3. The method of claim 2, wherein the data read from the first data record also has cyclic redundancy check (CRC) bytes appended to the first data record, and the method further comprising: stripping the CRC bytes from the first data record after receiving the first data record and the data associated with the first data record; performing an error check of the first data record, wherein error check of the first data record is performed via the CRC bytes stripped from the first data record; and identifying that the first data record read from the first tape drive does not include an error based on the error check; and providing the first data record to an application program based on the first data record not including an error.
4. The method of claim 2, further comprising: creating a CRC to append to the updated data record; and appending the CRC to the updated data record before sending the updated data with the appended CRC and the appended field of zeros to the first tape drive.
5. The method of claim 2, further comprising receiving the update data record from an application program.
6. The method of claim 4, further comprising: identifying that a second tape drive does not support LBP after the first tape media has been interchanged into the second tape drive sending a read command to the second tape drive to read the updated first data record stored at the first tape media; receiving the updated data record and associated data from the second tape drive, wherein the data associated with the updated data record received from the second tape drive does not include the field of zeros associated with the updated data record based on the second tape drive not supporting LBP, and the data associated with the updated data record also include the CRC associated with the updated data record; appending a field of zeros to the updated first data record based on the second tape drive not supporting LBP; stripping the CRC associated with the updated data record; performing an error check of the data record according the CRC bytes associated with the updated data record; identifying that the first data record read from the second tape drive does not include an error; and providing the first data record to an application program based on the first data record not including an error.
7. The method of claim 6, further comprising: receiving a second updated data record of the first record from the application program to write the first data record at the first tape media when the first tape media resides at the second tape drive; generating an updated CRC based on the second updated data record; and sending the second updated data record and other data to the second tape drive, wherein the other data includes the updated CRC and does not include a field of zeros appended to the second updated data record and the updated CRC, and the second updated data record and the updated CRC are written to the first data record of the first tape media.
8. A non-transitory computer readable storage medium having embodied thereon a program executable by a processor implementing a method for storing data on tape media, the method comprising: identifying that a first tape drive supports logical block protection (LBP), wherein a first tape media resides at the first tape drive; issuing a read command to the first tape drive to read a first record stored at the first tape media; receiving the first data record and data associated with the first record stored at the first tape media, wherein the data associated with the first record stored at the first tape media includes a field of zeros associated with the first record; receiving updated data to write to the first record at the first tape media; appending a field of zeros to the updated data that are associated with the updated data; issuing a write command to the first tape drive to write updated data with the appended field of zeros to the first data record stored at the first tape media, and sending the updated data with the appended field of zeros to the first tape drive, wherein the first tape drive writes the updated data with the appended field of zeros to the first data record at the first tape media.
9. The non-transitory computer readable storage medium of claim 8, wherein the data read from the first data record also has cyclic redundancy check (CRC) bytes appended to the first data record, and the program is further executable to: strip the CRC bytes from the first data record after receiving the first data record and the data associated with the first data record; perform an error check of the first data record, wherein error check of the first data record is performed via the CRC bytes stripped from the first data record; and identify that the first data record read from the first tape drive does not include an error based on the error check; and provide the first data record to an application program based on the first data record not including an error.
10. The non-transitory computer readable storage medium of claim 8, the program is further executable to: create a CRC to append to the updated data record; and append the CRC to the updated data record before sending the updated data with the appended CRC and the appended field of zeros to the first tape drive.
11. The non-transitory computer readable storage medium of claim 8, the program is further executable to receive the update data record from an application program.
12. The non-transitory computer readable storage medium of claim 11, the program further executable to: identify that a second tape drive does not support LBP after the first tape media has been interchanged into the second tape drive send a read command to the second tape drive to read the updated first data record stored at the first tape media; receive the updated data record and associated data from the second tape drive, wherein the data associated with the updated data record received from the second tape drive does not include the field of zeros associated with the updated data record based on the second tape drive not supporting LBP, and the data associated with the updated data record also include the CRC associated with the updated data record; append a field of zeros to the updated first data record based on the second tape drive not supporting LBP; stripping the CRC associated with the updated data record; perform an error check of the data record according the CRC bytes associated with the updated data record; identify that the first data record read from the second tape drive does not include an error; and provide the first data record to an application program based on the first data record not including an error.
13. The non-transitory computer readable storage medium of claim 12, the program further executable to: receive a second updated data record of the first record from the application program to write the first data record at the first tape media when the first tape media resides at the second tape drive; generate an updated CRC based on the second updated data record; and send the second updated data record and other data to the second tape drive, wherein the other data includes the updated CRC and does not include a field of zeros appended to the second updated data record and the updated CRC, and the second updated data record and the updated CRC are written to the first data record of the first tape media.
14. A system for storing data on tape media, the system comprising: a first tape drive of a plurality of tape drives; a second tape drive of the plurality of tape drives; a memory; and a processor, wherein the processor executing instructions out of the memory: identifies that the first tape drive supports logical block protection (LBP), wherein a first tape media resides at the first tape drive, issues a read command to the first tape drive to read a first record stored at the first tape media, receives the first data record and data associated with the first record stored at the first tape media, wherein the data associated with the first record stored at the first tape media includes a field of zeros associated with the first record, receives updated data to write to the first record at the first tape media; appending a field of zeros to the updated data that are associated with the updated data, issues a write command to the first tape drive to write updated data with the appended field of zeros to the first data record stored at the first tape media, and sends the updated data with the appended field of zeros to the first tape drive, wherein the first tape drive writes the updated data with the appended field of zeros to the first data record at the first tape media.
15. The system of claim 14, wherein: the data read from the first data record also has cyclic redundancy check (CRC) bytes appended to the first data record, the CRC bytes are stripped from the first data record after receiving the first data record and the data associated with the first data record, an error check of the first data record is performed error via the CRC bytes stripped from the first data record, the first data record read from the first tape drive is identified as not including an error based on the error check, and the first data record is provided to an application program based on the first data record not including an error.
16. The system of claim 14, wherein: a CRC is created to append to the updated data record, and the CRC is appended to the updated data record before sending the updated data with the appended CRC and the appended field of zeros to the first tape drive.
17. The system of claim 14, wherein the updated data record is received from an application program.
18. The system of claim 16, wherein the processor: identifies that a second tape drive does not support LBP after the first tape media has been interchanged into the second tape drive, sends a read command to the second tape drive to read the updated first data record stored at the first tape media, receives the updated data record and associated data from the second tape drive, wherein the data associated with the updated data record received from the second tape drive does not include the field of zeros associated with the updated data record based on the second tape drive not supporting LBP, and the data associated with the updated data record also include the CRC associated with the updated data record, appends a field of zeros to the updated first data record based on the second tape drive not supporting LBP, strips the CRC associated with the updated data record, performs an error check of the data record according the CRC bytes associated with the updated data record, identifies that the first data record read from the second tape drive does not include an error, and provides the first data record to an application program based on the first data record not including an error.
19. The system of claim 18, wherein the processor: receives a second updated data record of the first record from the application program to write the first data record at the first tape media when the first tape media resides at the second tape drive, generates an updated CRC based on the second updated data record, and sends the second updated data record and other data to the second tape drive, wherein the other data includes the updated CRC and does not include a field of zeros appended to the second updated data record and the updated CRC, and the second updated data record and the updated CRC are written to the first data record of the first tape media.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0009]
[0010]
[0011]
[0012]
DETAILED DESCRIPTION
[0013] A two part process is used for modifying records to be written and retrieved from tape devices to ensure the records are accurate when received and written to different tape devices having different error checking methods. A record is first accessed and a cyclic redundancy check is appended to the end of the record. After appending the CRC, a string of zeros is appended to the end of the CRC as part of the record. The record, with an additional CRC and the string of zeros, may then be submitted to tape drives which are logical block protection enabled. Drives which are logical block protection (LBP) enabled will not remove any of the digits from the record.
[0014] For drives that are not LBP enabled, the string of zeros at the end of the record is removed prior to sending the record, and restored after receiving the data on read back. This is done because non-LBP enabled drives will add a string of zeros themselves. Thus, there would be too much information appended to the drive if the zeros were left in the record. Similarly, the non-LBP enabled drives will strip the drive-appended zeros on read back, and would thus return too little information. In some embodiments, drives other than IBM LTO (Linear Open Tape) tape drives may behave in a manner similar to IBM LTO tape drives as described above, and will be handled in a similar manner, depending on whether these drives support LBP.
[0015]
[0016] Data storage manager 110 includes application 115. Application 115 may access tape storage devices on tape storage systems 120-140, determine whether drives within the storage systems are LBP compliant, determine if the drives are LTO drives by IBM or other manufacturers, append the records to be written and read from the drives with data, and perform other data storage management functions. Application 115 may perform the functionality described herein and is stored in memory on a data storage manager 110 and executed by a data storage manager processor.
[0017]
[0018]
[0019]
[0020] The components shown in
[0021] Mass storage device 430, which may be implemented with a magnetic disk drive or an optical disk drive, is a non-volatile storage device for storing data and instructions for use by processor unit 410. Mass storage device 430 can store the system software for implementing embodiments of the present invention for purposes of loading that software into main memory 420.
[0022] Portable storage device 440 operates in conjunction with a portable non-volatile storage medium, such as a floppy disk, compact disk or Digital video disc, to input and output data and code to and from the computer system 400 of
[0023] Input devices 460 provide a portion of a user interface. Input devices 460 may include an alpha-numeric keypad, such as a keyboard, for inputting alpha-numeric and other information, or a pointing device, such as a mouse, a trackball, stylus, or cursor direction keys. Additionally, the system 400 as shown in
[0024] Display system 470 may include a liquid crystal display (LCD) or other suitable display device. Display system 470 receives textual and graphical information, and processes the information for output to the display device.
[0025] Peripherals 480 may include any type of computer support device to add additional functionality to the computer system. For example, peripheral device(s) 480 may include a modem or a router.
[0026] The components contained in the computer system 400 of
[0027] The foregoing detailed description of the technology herein has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the technology to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The described embodiments were chosen in order to best explain the principles of the technology and its practical application to thereby enable others skilled in the art to best utilize the technology in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the technology be defined by the claims