System and method for providing implicit unmaps in thinly provisioned virtual tape library systems

The present invention is a system and method which allows for a VTL system that supports thin provisioning to implicitly unmap unused storage. Such unmap operations may occur even though the VTL system does not receive any explicit unmap requests from its initiators. For example, if a system administrator knows that once a virtual tape drive of the VTL system has been partially overwritten, all previously written data sets on that virtual tape drive will never again be accessed, the system administrator may configure the VTL system so that it unmaps the entire remainder of the virtual tape drive on the first data overwrite.

FIELD OF THE INVENTION

The present invention relates to the field of data management via data storage systems and particularly to a system and method for providing implicit unmaps in thinly provisioned virtual tape library systems.

BACKGROUND OF THE INVENTION

Currently available data storage systems/methods for providing data management in data storage systems may not provide a desired level of performance.

Therefore, it may be desirable to provide a data storage system/method(s) for providing data management in a data storage system which addresses the above-referenced shortcomings of currently available solutions.

SUMMARY OF THE INVENTION

Accordingly, an embodiment of the present invention is directed to a method for data handling in a thinly-provisioned virtual tape library (VTL) system, said method including: receiving a first write command; based upon said received first write command, writing a first data set to a first portion of Logical Block Addressing (LBA) space of a virtual tape drive of the VTL system; mapping the first portion of LBA space of the virtual tape drive to physical storage of the VTL system; receiving a second write command; based upon said received second write command, writing a second data set to a second portion of LBA space of the virtual tape drive of the VTL system; mapping the second portion of LBA space of the virtual tape drive to physical storage of the VTL system; receiving a third write command; based upon said received third write command, writing a third data set to the first portion of LBA space, wherein writing the third data set to the first portion of LBA space includes overwriting at least a portion of the first data set; and unmapping from physical storage at least one of: LBA space occupied by non-overwritten data of the first data set; and LBA space occupied by the second data set.

A further embodiment of the present invention is directed to a non-transitory computer-readable medium having computer-executable instructions for performing a method for data handling in a thinly-provisioned virtual tape library (VTL) system, said method including: receiving a first write command; based upon said received first write command, writing a first data set to a first portion of Logical Block Addressing (LBA) space of a virtual tape drive of the VTL system; mapping the first portion of LBA space of the virtual tape drive to physical storage of the VTL system; receiving a second write command; based upon said received second write command, writing a second data set to a second portion of LBA space of the virtual tape drive of the VTL system; mapping the second portion of LBA space of the virtual tape drive to physical storage of the VTL system; receiving a third write command; based upon said received third write command, writing a third data set to the first portion of LBA space, wherein writing the third data set to the first portion of LBA space includes overwriting at least a portion of the first data set; and unmapping from physical storage at least one of: LBA space occupied by non-overwritten data of the first data set; and LBA space occupied by the second data set.

A still further embodiment of the present invention is directed to a thinly-provisioned virtual tape library (VTL) system which is configured for providing implicit unmapping based upon partial overwriting of data sets of the VTL system.

DETAILED DESCRIPTION OF THE INVENTION

Virtual tape library (VTL) systems emulate tape storage systems, using disk drives for their storage. Thin provisioning is a technology used in storage systems to allow an administrator to configure more storage than is actually available. When a thinly provisioned volume is first created, it typically starts out with all of its storage unmapped, meaning that its Logical Block Addressing (LBA) space is not backed by any physical storage. As the LBA space in the thinly provisioned volume is written, it is mapped to underlying physical storage. As time goes on and more areas of the LBA space receive write commands, increasing amounts of the LBA space become mapped to underlying physical storage. Because of the desire to conserve physical storage space, it is advantageous to have as little physical storage space mapped to LBA space as possible. For this reason, many interfaces used to access thinly provisioned storage devices include commands which allow LBA space to become unmapped from physical storage. After it is unmapped, physical storage space may be added back to the storage system's free pool. This action makes the physical storage space available to be remapped later, possibly for a different LBA range or set of LBA ranges. Depending on the configuration, this unmapped physical storage may even be remapped to different volumes found within the storage system. The SCSI Stream Commands (SSC) specification, which is a specification that is followed by tape storage systems (and thus, by the VTL systems which emulate them), does not provide support for unmapping LBA space from physical storage space. This approach makes sense for physical tape drive storage systems, but for VTL systems, there may be an opportunity to unmap unused storage space. For example, a VTL system (ex.—VTL storage system) implementing thin provisioning may have difficulty unmapping unused storage space because the tape interface it exports to initiators does not support thin provisioning. In such cases, the VTL storage system may be able to recognize that an overwrite at the beginning of a data set typically invalidates some additional data on the remainder of the virtual tape. Thus, the VTL system may then be able to implicitly unmap the newly invalidated data.

The system(s) and method(s) of the present invention disclosed herein may allow for a VTL system that supports thin provisioning to implicitly unmap unused storage. Such unmap operations may occur even though the VTL system does not receive any explicit unmap requests from its initiators.

Referring toFIG. 1, a computer system100in accordance with an exemplary embodiment of the present invention is shown. In current exemplary embodiments of the present invention, the computer system100may include a primary memory102. For example, the primary memory102may be Random Access Memory (RAM), Flash memory, a plurality of hard disk drives, and/or the like. In further embodiments of the present invention, the computer system100may further include a secondary memory104. For instance, the secondary memory104may be a Virtual Tape Library (VTL) system104. In still further embodiments of the present invention, the secondary memory104(ex.—the VTL system104) and the primary memory102may be communicatively coupled to each other via a storage interface106.

In exemplary embodiments of the present invention, the VTL system104(as shown inFIG. 2) may include a plurality of hard disk drives108. For example, the plurality of hard disk drives108of the may include Parallel Advanced Technology Attachment (PATA) disk drives, Serial Advanced Technology Attachment disk drives, and/or the like. In further embodiments of the present invention, the VTL system104further includes a storage controller110, said storage controller110being connected to the plurality of hard disk drives108of the VTL system104, said storage controller110being connected to the primary memory102via the storage interface106.

In current exemplary embodiments of the present invention, the computer system100may be configured for backing up data which is stored in the primary memory102by directing write commands to the secondary memory104(ex.—the VTL system104). In further embodiments, the write commands include requests for data blocks included in said data to be written to the secondary memory104. In still further embodiments of the present invention, the VTL system104(as shown inFIG. 3) is configured for presenting its storage component (ex.—the plurality of disk drives108) to the computing system100(ex.—to the primary memory102) as one or more virtual tape drives112. In further embodiments, the plurality of disk drives108may be presented to the computing system100as a series of contiguous addresses which form a Logical Block Addressing (LBA) space114of the tape drive112(as shown inFIG. 3).

In exemplary embodiments of the present invention, the VTL system104(as shown inFIG. 3) may be configured for supporting thin provisioning (ex.—may present its storage108as a thinly provisioned virtual tape drive112. In further embodiments of the present invention, the thinly provisioned virtual tape drive112may start out with all of its LBA space114unmapped. (ex.—the thinly provisioned virtual tape drive112may initially be in a state of operation where none of its LBA space114is mapped to the disk drives108of the VTL system104) (as shown inFIG. 3). In still further embodiments of the present invention, the VTL system104may be configured for receiving a plurality of write commands from the computer system100, said write commands requesting that data from the primary memory102be written to the VTL system104. In further embodiments of the present invention, based upon the received write commands, the VTL system104may write data from the primary memory102to the LBA space114of the thinly-provisioned VTL tape drive112. For instance, writes operations (ex.—writes) performed by the VTL system104may start at a beginning of the virtual tape drive112and may continue sequentially until the virtual tape drive112is filled with data (ex.—until an amount of data equal to a maximum data capacity of the LBA space114has been written to the LBA space114).

In current exemplary embodiments of the present invention, the writes performed by the VTL system104may be divided into one or more sequentially written data sets, each data set spanning some non-zero number of adjacent blocks (ex.—data blocks) in the LBA space114of the virtual tape drive112. For example, a first write operation performed by the VTL system104may include writing a first data set (“Data Set0”) to LBA space114(as shown inFIG. 4). In further embodiments of the present invention, after the first data set (“Data Set0”) is written to the LBA space114, or alternatively, as the first data set (“Data Set0”) is being written to the LBA space114, the VTL system104may be configured for mapping the LBA space114occupied by the first data set to the underlying physical storage (ex.—the hard disk drives108) of the VTL system104. In still further embodiments of the present invention, the VTL system104may perform further write operations for writing additional data sets (“Data Set1”, Data Set2″ and “Data Set3”) to the LBA space114of the virtual tape drive (as shown inFIGS. 5 and 6). In further embodiments of the present invention after the additional data sets (“Data Set1”, Data Set2″ and “Data Set3”) are written to the LBA space114, or alternatively, as the additional data sets (“Data Set1”, Data Set2″ and “Data Set3”) are being written to the LBA space114, the VTL system104may be configured for mapping the LBA space114occupied by the additional data sets to the underlying physical storage (ex.—the hard disk drives108) of the VTL system104. In still further embodiments of the present invention, once the virtual tape drive112has been filled (ex.—fully written), the end result is that all of the LBA space114of the virtual tape drive112is mapped (ex.—will have been mapped) to the underlying physical storage108of the VTL system104(as shown inFIG. 6). In further embodiments of the present invention, the VTL system104may be further configured for writing the data sets from the virtual tape drive112to the hard drives108of the VTL system104.

A typical usage pattern for tapes is to write some number of data sets to them, then to store them in case the data contained in those data sets is needed. After some time has elapsed, and subsequent backups have been made to other tapes, the tape may be re-used. This is done by simply overwriting the existing data sets found on the tape. In exemplary embodiments of the present invention, the thinly provisioned VTL system104may be configured for determining that, when a data set is partially overwritten (some but not all of the data in that data set is overwritten), the rest of the data in that data set may be invalid. Consequently, the VTL system104may be configured for determining that because the rest of the data in that data set is invalidated due to the partial overwrite of that data set, that said VTL system104can go ahead and implicitly unmap LBA space114occupied by the remaining data in that data set from the underlying physical storage108of the VTL system104. For example, in one embodiment of the present invention, (as shown inFIG. 7) an overwrite may be performed by the VTL system104in which an additional data set (ex.—an overwrite data set (“New Data Set0”)) is written to the LBA space114of the virtual tape drive112(ex.—a filled or fully-written virtual tape drive112). For instance, the overwrite data set (“New Data Set0”) may fully overwrite the first data set (“Data Set0”) (ex.—may overwrite or span all of the LBA space114which was previously occupied by the first data set (“Data Set0”) and may partially overwrite the second data set (“Data Set1”) (ex.—may partially overwrite or partially span LBA space which was previously occupied by the second data set (“Data Set1”).

In further embodiments of the present invention (as shown inFIG. 8), the VTL system104may be configured for determining when a data set has been partially overwritten (and/or when LBA space114occupied by the data set has been partially overwritten) and may further be configured, based upon said determination, for unmapping the non-overwritten data of the partially overwritten data set from the physical storage108(or unmapping LBA space114occupied by the non-overwritten data of the partially overwritten data set from the physical storage108). In alternative embodiments of the present invention (as shown inFIG. 9), the VTL system104may be configured for determining when a data set has been partially overwritten (or when LBA space114occupied by the data set has been partially overwritten) and may further be configured, based upon said determination, for unmapping all of the non-overwritten data of the virtual tape drive (and/or unmapping all of the LBA space114of the virtual tape drive112which is occupied by the non-overwritten data) from the underlying physical storage108. For example, as shown inFIG. 9, if the virtual tape drive112is filled (ex.—fully written) with the four data sets (“Data Set0”, “Data Set1”, “Data Set2” and “Data Set3”), and a fifth data set (“New Data Set0” is written to the virtual tape drive112, said fifth data set completely overwriting the first data set (“Data Set0”) and partially overwriting the second data set (“Data Set1”), the VTL system104may be configured for unmapping not only the LBA space114occupied by the partially overwritten second data set (“Data Set1”), but also the LBA space114occupied by the remaining (ex.—non-overwritten) data sets on the virtual tape drive112(ex.—the third data set (“Data Set2”) and the fourth data set (“Data Set3”)). Such configuration may be advantageous when a system administrator knows beforehand that any partial overwrite to the virtual tape drive112will result in all previously written data sets on that virtual tape drive112never again being accessed.

Referring toFIG. 10, a flowchart is provided which illustrates a method for data handling in a virtual tape library (VTL) system in accordance with an exemplary embodiment of the present invention. In a current exemplary embodiment of the present invention, the method1000may include the step of receiving a first write command1002. The method1000may further include the step of, based upon said received first write command, writing a first data set to a first portion of Logical Block Addressing (LBA) space of a virtual tape drive of the VTL system1004. The method1000may further include the step of mapping the first portion of LBA space of the virtual tape drive to physical storage of the VTL system1006. The method1000may further include the step of receiving a second write command1008. The method1000may further include the step of, based upon said received second write command, writing a second data set to a second portion of LBA space of the virtual tape drive of the VTL system1010. The method1000may further include the step of mapping the second portion of LBA space of the virtual tape drive to physical storage of the VTL system1012. The method1000may further include the step of receiving a third write command1014. The method1000may further include the step of, based upon said received third write command, writing a third data set to the first portion of LBA space, wherein writing the third data set to the first portion of LBA space includes overwriting at least a portion of the first data set1016. The method1000may further include the step of unmapping from physical storage at least one of: LBA space occupied by non-overwritten data of the first data set; and LBA space occupied by the second data set1018.

It is to be noted that the foregoing described embodiments according to the present invention may be conveniently implemented using conventional general purpose digital computers programmed according to the teachings of the present specification, as will be apparent to those skilled in the computer art. Appropriate software coding may readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.

It is to be understood that the present invention may be conveniently implemented in forms of a software package. Such a software package may be a computer program product which employs a computer-readable storage medium including stored computer code which is used to program a computer to perform the disclosed function and process of the present invention. The computer-readable medium/computer-readable storage medium may include, but is not limited to, any type of conventional floppy disk, optical disk, CD-ROM, magnetic disk, hard disk drive, magneto-optical disk, ROM, RAM, EPROM, EEPROM, magnetic or optical card, or any other suitable media for storing electronic instructions.

It is understood that the specific order or hierarchy of steps in the foregoing disclosed methods are examples of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the scope of the present invention. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.