System and method for performing high-speed tape positioning operations
First Claim
1. A method of performing tapemark relative commands issued by a host computer to a virtual tape drive server module, with the host transferring blocks of data and requesting that tapemarks be inserted into written data streams to mark certain boundaries of block groups for the later convenience of the host in positioning within data, with the virtual tape drive server for receiving commands from the host to store and retrieve data from nonphysical virtual tape volumes, for storing metadata describing the actual storage of the virtual tape volume contents, and with the virtual tape drive server module including an extent buffer for buffering data received from the host or requested by the host, said method comprising:
- storing a sequences of blocks of data in a virtual volume into the extent buffer;
building an extent header identifying the location of tapemarks within the extent buffer and including an extent ID number;
storing the sequence of blocks and the extent header as an extent;
building a record in the meta-database including the extent ID number and the number of tapemarks included in the extent;
receiving a tapemark relative command specifying a desired number of tapemarks;
examining the extent header of a current extent stored in the extent buffer to determine the number of tapemarks in the extent following a current block;
if the number of tapemarks determined is greater than the desired number, accessing the block in the current extent following the desired number of tapemarks displaced from the current block;
if the number determined is less than the desired number, examining the meta-database to identify the extent storing a desired block following the desired number of tapemarks displaced from the current block;
reading the identified extent into the extent buffer;
accessing the desired block following the desired number of tapemarks displaced from the current block.
23 Assignments
0 Petitions
Accused Products
Abstract
An improved virtual tape storage device executes tapemark relative commands by examining metadata describing virtual tape volumes. The metadata includes information identifying groups of blocks in the virtual volume and whether a particular group of blocks includes a tapemark.
-
Citations
3 Claims
-
1. A method of performing tapemark relative commands issued by a host computer to a virtual tape drive server module, with the host transferring blocks of data and requesting that tapemarks be inserted into written data streams to mark certain boundaries of block groups for the later convenience of the host in positioning within data, with the virtual tape drive server for receiving commands from the host to store and retrieve data from nonphysical virtual tape volumes, for storing metadata describing the actual storage of the virtual tape volume contents, and with the virtual tape drive server module including an extent buffer for buffering data received from the host or requested by the host, said method comprising:
-
storing a sequences of blocks of data in a virtual volume into the extent buffer; building an extent header identifying the location of tapemarks within the extent buffer and including an extent ID number; storing the sequence of blocks and the extent header as an extent; building a record in the meta-database including the extent ID number and the number of tapemarks included in the extent; receiving a tapemark relative command specifying a desired number of tapemarks; examining the extent header of a current extent stored in the extent buffer to determine the number of tapemarks in the extent following a current block; if the number of tapemarks determined is greater than the desired number, accessing the block in the current extent following the desired number of tapemarks displaced from the current block; if the number determined is less than the desired number, examining the meta-database to identify the extent storing a desired block following the desired number of tapemarks displaced from the current block; reading the identified extent into the extent buffer; accessing the desired block following the desired number of tapemarks displaced from the current block.
-
-
2. A method of performing tapemark relative commands issued by a host computer to a virtual tape drive server module, with the host transferring blocks of data and requesting that tapemarks be inserted into written data streams to mark certain boundaries of block groups for the later convenience of the host in positioning within data, with the virtual tape drive server for receiving commands from the host to store and retrieve data from non-physical virtual tape volumes, for storing metadata describing the actual storage of the virtual tape volume contents, and with the virtual tape drive server module including an extent buffer for buffering data received from the host or requested by the host, said method comprising:
-
storing a sequences of blocks of data in a virtual volume into the extent buffer; building an extent header identifying the location of tapemarks within the extent buffer and including an extent ID number; storing the sequence of blocks and the extent header as an extent; building a tapemark table in the meta-database identifying all staged extents including tapemarks; receiving a tapemark relative command specifying a desired number of tapemarks; examining the extent header of a current extent stored in the extent buffer to determine the number of tapemarks in the extent following a current block; if the number of tapemarks determined is greater than the desired number, establishing a position at the block in the current extent following the desired number of tapemarks displaced from the current block; if the number determined is less than the desired number, examining the tapemark table in the meta-database to identify the extent storing a desired block following the desired number of tapemarks displaced from the current block; reading the identified extent into the extent buffer; establishing a position at the desired block following the desired number of tapemarks displaced from the current block.
-
-
3. A system for executing tapemark relative commands issued by a host computer, the system including a virtual tape drive server module, with the host transferring blocks of data and requesting that tapemarks be inserted into written data streams to mark certain boundaries of block groups for the later convenience of the host in positioning within data, said system comprising:
-
a channel interface, included in the virtual tape drive server and coupled to the host computer, for receiving commands from the host to store and retrieve data from nonphysical virtual tape volumes, and including a channel interface (CIF) controller for executing a tape drive emulation (TDE) process; a database store for storing metadata describing the actual storage of the virtual tape volume contents; an extent buffer, included in the virtual tape drive server, for buffering data received from the host or requested by the host, said extent buffer for storing a sequence of blocks of data in a virtual volume into the extent buffer, identifying the location of tapemarks within the extent buffer and including an extent ID number; with said CIF controller executing a TDE process for; storing the sequence of blocks and the extent header as an extent; building a record in the meta-database including the extent ID number and the number of tapemarks included in the extent; receiving a tapemark relative command specifying a desired number of tapemarks; examining the extent header of a current extent stored in the extent buffer to determine the number of tapemarks in the extent following a current block; if the number of tapemarks determined is greater than the desired number, establishing a position at the block in the current extent following the desired number of tapemarks displaced from the current block; if the number determined is less than the desired number, examining the meta-database to identify the extent storing a desired block following the desired number of tapemarks displaced from the current block; reading the identified extent into the extent buffer; establishing a position at the desired block following the desired number of tapemarks displaced from the current block.
-
Specification