A tape drive method and apparatus is disclosed wherein payload data is sent from a host computer device to a tape drive data storage device in data block sizes which are specified by the host computer, for example in the case of a tape drive presenting a cd-ROM image, in 2 kbyte blocks, whereas the tape drive writes to tape media in an optimal block size required to keep the tape media streaming across the tape heads, for example 8 kbyte blocks. Conversion between block size is achieved by buffering incoming payload data in a buffer, and by reading or writing to the tape media in the optimum block size.
|
9. A method of transferring data to a cd image format of a host computer from a digital tape medium, the cd image formatted data being in first blocks having a number of bytes substantially less than the number of bytes in second blocks which enable data to stream from the digital tape medium, the method comprising successively reading an integral number of the second blocks from the tape medium to a buffer so the blocks stream from the tape medium to the buffer, and reading the second blocks stored in the buffer to the host computer in successive blocks having the size of the first blocks.
1. A method of transferring data in a cd image format in a host computer to a digital tape medium, the cd image format data being in first blocks having a number of bytes substantially less than the number of bytes in second blocks which enable data to stream to the digital tape medium, the method comprising successively storing to a buffer a plurality of the first blocks in the host computer, and supplying the first blocks stored in the buffer to the tape medium in a format compatible with streaming data to the tape medium in response to the number of bytes of the first blocks stored in the buffer equaling or exceeding the number of bytes in at least one of the second blocks.
16. A computer system comprising a host computer arranged to have data in a cd formatted image, a digital tape medium transducer, the cd image formatted data being in first blocks having a number of bytes substantially less than the number of bytes in second blocks which enable data to stream to the digital tape medium, a buffer, the computer system being arranged for (a) transferring data to the cd image format of the host computer from the digital tape medium transducer by successively streaming an integral number of the second blocks from the tape medium to the buffer, and (b) reading the second blocks stored in the buffer to the host computer in successive blocks having the size of the first blocks.
12. A computer system comprising a host computer arranged to have data in a cd format image, a digital tape medium transducer, the cd image formatted data being in first blocks having a number of bytes substantially less than the number of bytes in second blocks which enable data to stream to the digital tape medium, a buffer, the computer system being arranged for: (a) successively storing to the buffer the plurality of the first blocks in the host computer, and (b) streaming the first blocks stored in the buffer to the tape medium in a format compatible with data streaming to the tape medium in response to the number of bytes of the first blocks stored in the buffer equaling or exceeding the number of bytes in at least one of the second blocks.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
10. The method of
11. The method of
13. The computer system of
14. The computer system of
15. The computer system according to
17. The computer system according to
18. The computer system according to
|
The present invention relates to data storage devices and particularly, although not exclusively to a method and apparatus for managing data block sizes in a data storage device.
Historically, conventional personal computers (PC) have not been able to boot their operating systems from a tape data storage back up device. Conventionally, PCs are booted from either an operating system stored on a hard disk drive, a floppy disk drive, or a CD ROM drive.
Conventionally, Unix based operating systems, have been able to boot their operating system from a tape based data storage device.
In WO 00/08561, published Feb. 17, 2000, there is disclosed a tape data storage device configured to operate as a bootable device for a Personal Computer (PC), where the tape data storage device emulates a CD-ROM drive.
In a first mode of operation, the tape data storage device operates for file system data back up.
In a second mode of operation, the tape data storage device emulates a CD-ROM drive and can be used in configuration with application software to cause a host computer running the software to generate a bootable image containing operating system, including the PC's hardware configuration, and data recovery application software suitable for rebuilding the PC in the event of a disaster. The image is stored on tape in front of an actual file system back up data set. In the second mode of operation, the tape drive can be used to boot the PC and restore the operating system and application software of the PC.
The significance of the methods and apparatus disclosed in WO 00/08561, is that it enables a PC with a tape device, which presents an image of a CD ROM drive media to the host computer, which enables all of the items necessary for a full system recovery, including operating system recovery, into one image on a tape data storage back up device within a PC environment.
Because the tape data storage device is emulating a CD-ROM drive, the storage capacity is accessed in 2 kbyte block sizes, according to the ISO9660 CD-ROM standard as extended by the El Torito bootable CD-ROM format specification, version 1.0, Jan. 25, 1995. The prior art assumes that 2 kbyte records have to be written to a tape storage device, where the tape data storage device is presenting an image of a CD-ROM drive to a host computer.
Conventional tape data storage devices are configured to be written to in one of two modes: fixed block sized mode, or variable block size mode. In a fixed block size mode configuration, a fixed block size is set as part of an initialization process of a host computer communicating with a tape data storage device. Every block of data written to a tape media thereafter is set at that fixed block size. In the conventional variable block size mode, each write operation from a host computer has a block size of the actual data payload, which can be any size, and is not necessarily a multiple of a fixed block size.
Some prior art tape devices are intolerant of block size differences and will not stream (that is they will continuously reposition the media backwards and forwards as opposed to just forwards in tape direction) unless they receive a certain minimum block size per write command from the host computer. However, this precludes the use of some application programs which have to have set block sizes. For example, CD-ROM images need to be accessible in 2 kbyte chunks in order for a host computer to access them.
Therefore, there is a problem that in making a recovery data set for storage on a tape data storage device, in CD-ROM format, the host personal computer assumes a 2 kbyte data format, whereas this is an inefficient block size for operating a conventional tape data storage device, and this problem is not addressed in prior art systems.
One overall objective of the specific implementations of the present invention is to ameliorate the problem of a tape data storage device presenting a fixed format piece of data storage media in a predetermined block size format, which is incompatible with optimum performance of the tape data storage device.
In a specific implementation of the present invention, upon receiving a write command from a host computer, a payload block of data is compared to an ideal block size of data for a class of data storage device to which the payload is to be stored. An ideal data block size value is pre-stored in a tape device firmware, so that a received payload data block, subject of a write command, can be compared to the ideal data block size value. If the payload data block to be written is of a different size to the ideal data block size value, then the payload data block is written to a data storage media in a more optimal block size for that data storage media. The payload data block is padded for capacity if necessary in order to maintain the optimum data block size for the data storage media. Padding is achieved by using a marker data, which may be unique to a vendor media type, to indicate a boundary of an actual payload of data within the optimum block size.
Upon receiving a read command from a host computer, a nearest optimal amount of block sized data is read back from the tape data storage media.
Specific implementations according to the present invention allow the invention to be implemented either as firmware resident in a PC architecture or in a tape data storage architecture, or as an item of application software in the host computer.
Whilst the invention can be implemented either in firmware or in software, implementing the invention in software has the advantage that a conventional tape data storage device can be used without any modification.
According to a first aspect of the present invention there is provided a method of converting a data set from a first data block format acceptable to a host computer, to a second data block format acceptable by a tape data storage device, said method comprising the steps of:
receiving a payload of data comprising data blocks sized according to said first format;
comparing said data blocks of said payload in said first data format with a preferred data block size of said second format;
determining a number of data blocks of said second format into which said payload data can be contained; and
converting said payload data in said first format into a said determined number of data blocks of second format.
According to a second aspect of the present invention there is provided a method of converting a data set from a second data block format, optimised for storage in a tape data storage device, to a first data block format acceptable to a host computer device, said method comprising the steps of:
reading an integral number of blocks of said second data block format from a tape media;
storing said plurality of second format size data blocks in a buffer;
converting data contained within said plurality of second format data blocks into a plurality of first format data blocks; and
sending said plurality of first format data blocks to said host computer.
According to a third aspect of the present invention there is provided an apparatus for converting a data set from a first data block format acceptable to host computer, to a second data block format acceptable by a tape drive mechanism, said apparatus comprising:
a buffer for storing data blocks of a second data block format;
an algorithm for comparing said data blocks of said payload in said first data format with said preferred data block size of said second format;
an algorithm for determining a number of data blocks of said second format into which said payload data can be contained; and
an algorithm for converting said payload data in said first format into a said determined number of data blocks of said second format within said buffer.
The invention includes an apparatus for converting a data set from a second data block format, optimised for storage in a tape data storage device, to a first data block format acceptable to a host computer device, said method comprising the steps of:
reading an integral number of blocks of said second data block format from a tape media;
storing said plurality of second format size data blocks in a buffer;
converting data contained within said plurality of second format data blocks into a plurality of first format data blocks; and
sending said plurality of first format data blocks to said host computer.
For a better understanding of the invention and to show how the same may be carried into effect, there will now be described by way of example only, specific embodiments, methods and processes according to the present invention with reference to the accompanying drawings in which:
There will now be described by way of example the best mode contemplated by the inventors for carrying out the invention. In the following description numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent however, to one skilled in the art, that the present invention may be practiced without limitation to these specific details. In other instances, well known methods and structures have not been described in detail so as not to unnecessarily obscure the present invention.
Referring to
Host computer 100 comprises a central processing unit 101; a random access memory 102; a read only memory 103; a permanent data storage device in the form of a hard disk drive 104; a removable data storage device, for example a floppy disk drive 105; an input/output interface 106; an internal bus 107, connecting the processor, RAM 102, ROM 103, and interface 106; and a small computer system interface (SCSI) 108.
The tape data storage back up device 140 comprises a tape drive mechanism 141 having a removable tape data storage media 142; a set of read\write heads 143; a read\write interface 144, for reading and writing to the tape drive mechanism 141; a buffer memory 145 for locally buffering blocks of data read from and written to the tape drive mechanism 141; a formatter component 146 for formatting the data into data blocks; a controller 147 for controlling the tape drive mechanism; firmware 148, in the form of an application specific integrated circuit (ASIC) containing algorithms for converting block sizes of data; a host interface 149 for communicating with the host computer 100, and an internal bus 150 via which the controller and firmware control operations of the buffer 145 and tape mechanism 141.
The tape data storage back up mechanism 141 may comprise for example a known DDS (digital data storage) tape device, a known DLT (digital linear tape) tape device or any other known tape media device.
The tape drive 140 is connected to host computer 100 via an interface, for example a small computer system interface (SCSI) interface 151, or an IDE interface.
Conventional modern PC operating systems cannot boot from a conventional data back up port, but must boot from a CD-ROM interface. The operating system 202 assumes that data must be written to the tape data storage device in 2 kbyte blocks, in order for the system to boot up, because the tape data storage device is presenting a CD-ROM image.
With some digital linear tape drives, driving the tape drive with a smaller than optimal block size, for example a 2 kilobyte block size, results in a performance level which is an order of magnitude lower than if the tape drive is feed with an optimal block size for tape drive. Therefore use of a digital linear tape to be driven via a standard CD-ROM interface using 2 kilobyte block sizes severely degrades the performance of some digital linear tape devices.
In the best mode described herein, the tape data storage device 140 presents itself to host 100 as if device 140 were a CD-ROM drive in accordance with ISO 9660 and ECMA 119 and transliterates any commands sent from the host computer to the tape data storage device 140 into the equivalent CD-ROM data format having a 2 kilobyte block size. This enables the host computer 100 to boot from the tape data storage device, using the CD-ROM format.
Referring to
Specific methods and processes according the present invention can be implemented as one or more software modules in the applications programs 201 in a first implementation, in an operating system 202 in a second implementation, or as firmware 148 in a tape data storage device 140, as a third implementation.
In a preferred implementation, the invention is implemented in terms of firmware in a tape data storage device. This has the advantage that a user does not have to provide any reconfiguration for the host computer, in order to access the functionality provided.
Referring to
A best mode specific implementation of the invention, in which the invention is implemented in firmware 148 of the tape data storage device 140 will now be described. It will be appreciated by those skilled in the art, that alternative implementations are possible in which specific processes and methods according to the present invention are implemented as either an application, or as an operating sub system within the conventional host computer architecture.
Specific implementations according to the present invention allow a tape data storage device to present a fixed block size format, such as required to mimic a CD ROM drive, and which is inconsistent with optimum access and retrieval times from the tape data storage device, whilst at the same time allowing the tape data storage device to store and retrieve data in a block size which is closer to an optimum data block size required by the tape data storage device for optimization of storage and retrieval times, and enabling the tape data storage device to maintain streaming, with minimized interruption.
Referring to
The media 503 can be written to in one of two formats as described previously herein, either firstly in a fixed block size mode, in which blocks of data of a fixed size are written and read from the media, or in a variable block size mode, in which data blocks of size which vary from block to block are written to and read from the media. The firmware 502 operates to determine the mode in which the tape mechanism is operating.
In the variable mode, the write command defines how many bytes are to be transferred as the payload. In fixed mode, the tape data storage mechanism presupposes that the host computer has sent a command defining a block size, and the write command defines how many blocks are to be transferred. The firmware then calculates the payload size by multiplying the predetermined block size, by the number of blocks requested in the write command.
Upon receipt of any number of payload bytes defined by the write command in variable mode, or calculated from the write command in fixed mode, the firmware determines whether this payload size is an integral number of bytes which fits in with a optimum block size for optimum performance of the tape mechanism. For example if a payload is written from the host computer, and has 4 data blocks each of 2 kbytes, and if 2 kbytes is an acceptable block size for writing directly to the tape media, then this may be written as a single larger data block size to the tape media of, for example, 8 k bytes.
The firmware 502 implements a write algorithm, which recognizes an optimal block size, recognizes a write request requesting writing of block sizes which are less than the optimal size, and converts the sub optimally sized data blocks received from the host 500, to one or more optimally sized data blocks for writing to the tape media 503.
Referring to
Writing to the tape media 503 in smaller than optimal amounts (in this case smaller than 8 kbyte blocks) is prohibited. Therefore, in this example if the payload were 3 kbytes, the payload would be stored in a buffer, awaiting further data in order to obtain the minimum 8 kbyte optimum block size required to write to the tape media.
In the event where the payload data is buffered, because there is not enough payload data received from the host computer to assemble an optimal block size, then the stored payload data in the buffer can be written to the tape media under circumstances such as media repositioning. In this case, the payload data stored in the buffer is assembled into a data block of the optimal size, by padding the extra space available in the data block with padding bytes, and marking the end of the payload within the optimal data block by a file mark or other tape recording format unique means.
Each time the host computer backs up a data set, the data block conversion module may select a different block size of the second data format, for writing the data set to the tape media. For example on a first back up of a first data set, the block conversion module may select an 8 kbyte data block for the second data format for writing to the data media. On a subsequent data set back up operation, where a larger volume of data is available in the payload received from the host computer, the block conversion module may select a larger 16 kbyte data block after minimum block size for writing to the tape media. Thus, the data block conversion module selects an optimum data block size for writing to the tape data storage medium, taking into account the overall amount of data in the payload received from the host computer. This optimum data block size in the second data format may vary for different data payload sizes received from the host computer. Different sessions are delineated on the tape data storage media by file marks, as illustrated in
The minimum block size which is optimum for a particular tape device is set in the firmware as a default factory preset value, being a minimum block size required to keep the tape device streaming. Otherwise, in other implementations, the minimum default block size may be user set, however this is not an optimum implementation.
Referring to
In step 701, with the block size set for a host payload write to the tape drive, the host requests a write of a block of data to the tape drive. This block of data is written to the tape drive in the specified block size. For example where the specified block size is 2 kbytes, and the payload data is 31 kbytes length, then the data will be written from the host to the tape drive in 16 blocks of 2 kbytes each. All of the data is sent in one event from the host to the tape drive. In step 702, the firmware re-blocks the data to blocks of optimum block size, by storing the payload data in a buffer, and reformatting the data into blocks of data of the optimum block size. For example where the optimum block size is 8 kbytes, and the original payload data was of 31 kbytes length (received as 16 blocks of 2 kbytes), then the re-blocked data is arranged as 4 blocks of 8 kbytes, where the final 1 kbyte of the second comprises padding bytes. In step 703, the data is then written to the tape media in the optimum block size, in this example, of 4 blocks each of 8 kbytes.
Alternatively, in step 704, where the host write request allows disconnection of the host during communication of the payload data, that is the write from host becomes interrupted, then the whole of the payload data will not be received by the buffer in a single transmission. This interrupt may occur to allow other devices access to the same peripheral bus as used for the tape drive. Thus in step 704, the tape drive may be aware that the host has requested transfer of 32 kbytes of payload data, but that data has not yet been received, or has been only partially received due to an interrupt on the peripheral bus. Under these circumstances, in step 705, the tape drive waits until the full payload specified by the host has been received in the buffer, and then proceeds to write the data to tape in the optimum block size in step 703.
Referring to
Referring to
During the read operation, the host expects the entire payload data. The host adapter interface 108 will wait until all the data payload has been received from the tape data storage device, in the block size for transmission, which is previously set.
The write and read operations illustrated with reference to
Referring to
Referring to
Referring to
In the case where an integral optimum size data block does not exist on the tape, the data will have been written to the tape in block sizes which are sub-optimal, but with the minimum number of different block sizes within a sub-optimal block size. For example where the optimal block size is 8 kbytes, but there is not enough room on the tape to fit an 8 kbyte data block at the end of tape, then to fit in 5 kbytes of data, the device may write a 4 kbyte block, followed by a 2 kbyte block, where the 2 kbyte block is the minimum block size which can be written to the tape, and which is set as default. Within the 2 kbyte block size, only 1 kbyte of payload data exists, the remaining bytes being delineated by a file marker, and the remaining space being filled with padding bytes.
The minimum optimum block size is determined by the firmware itself, and can be factory preset as default, to be the minimum data block size which is necessary to keep the tape moving across the tape head without stopping, and without having to reposition. The optimum block size is device specific to each tape drive mechanism, and will be of a fixed size. For example with certain types of linear tape drives, reading or writing to the tape drive in a block size of less than 8 kbytes gives poor performance, no matter what the payload data size. Therefore the optimum minimum block size may be set at 8 kbytes for such a particular type of linear tape drive.
The host computer is not able to "see" the optimum block size, but writes to the tape device in standard block size, which can be less than the optimum block size, for example 2 kbytes, in the case of a tape device presenting a CD-ROM image to the host computer. Conversion between the transmission block size and the optimum block size is taken care of by storing data in the buffer in the tape drive firmware. For example where the tape drive is presenting a CD-ROM image, the host must be able to access that tape drive in 2 kbyte block size, otherwise the tape drive cannot present a CD-ROM image.
Specific implementations according to the present invention may allow a host device to access a tape drive using a block size which is less than the optimum block size to which a tape media can be written to directly by a tape mechanism, by buffering payload data before writing to the tape media, and by buffering data read from the tape media prior returning to a host computer device.
Patent | Priority | Assignee | Title |
6983344, | Feb 27 2003 | American Megatrends, Inc. | Methods, computer systems, and device for utilizing pointers of a ROM image that may be stored in various formats |
7117302, | Feb 28 2005 | GOOGLE LLC | Boot techniques involving tape media |
7139873, | Jun 08 2001 | Maxtor Corporation | System and method for caching data streams on a storage media |
7831793, | Mar 01 2006 | Quantum Corporation | Data storage system including unique block pool manager and applications in tiered storage |
8190834, | Jun 15 2007 | EMC IP HOLDING COMPANY LLC | Process for contiguously streaming data from a content addressed storage system |
8626741, | Jun 15 2007 | EMC IP HOLDING COMPANY LLC | Process for cataloging data objects backed up from a content addressed storage system |
Patent | Priority | Assignee | Title |
4947367, | Mar 28 1988 | EMC CORPORATION, A MA CORP | System for converting digital data from magnetic tape format apparatus and method for converting a sequentially accessible magnetic tape data format to directly accessible write-once disk data format to worm optical disk format |
5335328, | Jun 28 1989 | International Business Machines Corporation | Methods for recording and reading data from a record member having data in any one of a plurality of block formats including determining length of records being transferred |
5519869, | Nov 09 1992 | International Business Machines Corporation | Multi-density data storage backup allowing bootstrap image storage in density required by initial boot code and other system images at higher densities |
5612829, | Jul 22 1991 | Fujitsu Limited | Data recording control method of magnetic tape |
5717951, | Aug 07 1995 | Method for storing and retrieving information on a magnetic storage medium via data blocks of variable sizes | |
5920893, | Jun 04 1996 | Hitachi, Ltd. | Storage control and computer system using the same |
6041386, | Feb 10 1998 | International Business Machines Corporation | Data sharing between system using different data storage formats |
WO8561, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 10 2001 | Hewlett-Packard Limited | Hewlett-Packard Company | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 011478 | /0957 | |
Jan 18 2001 | Hewlett-Packard Development Company, L.C. | (assignment on the face of the patent) | / | |||
Sep 26 2003 | Hewlett-Packard Company | HEWLETT-PACKARD DEVELOPMENT COMPANY L P | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014061 | /0492 | |
Oct 27 2015 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Hewlett Packard Enterprise Development LP | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 037079 | /0001 |
Date | Maintenance Fee Events |
Oct 09 2007 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Oct 15 2007 | REM: Maintenance Fee Reminder Mailed. |
Sep 23 2011 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Sep 24 2015 | M1553: Payment of Maintenance Fee, 12th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 06 2007 | 4 years fee payment window open |
Oct 06 2007 | 6 months grace period start (w surcharge) |
Apr 06 2008 | patent expiry (for year 4) |
Apr 06 2010 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 06 2011 | 8 years fee payment window open |
Oct 06 2011 | 6 months grace period start (w surcharge) |
Apr 06 2012 | patent expiry (for year 8) |
Apr 06 2014 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 06 2015 | 12 years fee payment window open |
Oct 06 2015 | 6 months grace period start (w surcharge) |
Apr 06 2016 | patent expiry (for year 12) |
Apr 06 2018 | 2 years to revive unintentionally abandoned end. (for year 12) |