Storage management system and method for increasing capacity utilization of nonvolatile storage devices using partially filled substitute storage devices for continuing write operations
First Claim
1. A method for increasing capacity utilization of non-volatile storage devices within a group of non-volatile storage devices used to store data from at least one attached system, comprising the steps of:
- (a) writing a group of data sets to a first storage device as part of a write operation;
(b) designating a plurality of storage devices partially filled with data as substitute storage devices;
(c) receiving a request to read a data set stored in the first storage device while the write operation is continuing; and
(d) after receiving the read request directed toward the first storage device, performing the steps of;
(i) suspending the write operation to the first storage device;
(ii) selecting a second storage device from the plurality of substitute storage devices;
(iii) continuing the write operation by writing data sets from the group of data sets included in the write operation that were not written to the first storage device to the selected second storage device; and
(iv) reading the requested data set from the first storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for increasing capacity utilization of non-volatile storage devices within a group of non-volatile storage devices used to store data from at least one attached system are disclosed. A group of data sets is written to a first storage device as part of a write operation such as migration. A plurality of storage devices partially filled with data are designated as substitutes. The write operation to the first storage device is suspended upon receiving a request to read a data set stored in the first storage device, such as occurs in a recall operation. A second storage device is then selected from the plurality of substitute storage devices. The write operation is continued by writing data sets from the group of data sets included in the write operation that were not written to the first storage device to the selected second storage device. The requested data is then read from the first storage device. After data has been read from the first storage device, the first storage device may be designated as a substitute storage device so that the partially filled first storage device may be selected for continuing write operations. Data sets from substitute storage devices may be transferred or merged into a lesser number of storage devices during recycle operations to prevent the number of substitute storage devices from increasing beyond a predetermined limit or goal. Recycling operations in which data sets from different storage devices are transferred or merged may be performed by building a first queue including a list of filled tapes ordered according to the least amount of valid data and a second queue including all unassociated partially filled storage devices ordered by the amount of available storage space, and merging. The non-volatile storage devices may include tapes or tape libraries.
130 Citations
23 Claims
-
1. A method for increasing capacity utilization of non-volatile storage devices within a group of non-volatile storage devices used to store data from at least one attached system, comprising the steps of:
-
(a) writing a group of data sets to a first storage device as part of a write operation;
(b) designating a plurality of storage devices partially filled with data as substitute storage devices;
(c) receiving a request to read a data set stored in the first storage device while the write operation is continuing; and
(d) after receiving the read request directed toward the first storage device, performing the steps of;
(i) suspending the write operation to the first storage device;
(ii) selecting a second storage device from the plurality of substitute storage devices;
(iii) continuing the write operation by writing data sets from the group of data sets included in the write operation that were not written to the first storage device to the selected second storage device; and
(iv) reading the requested data set from the first storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
designating the first storage device a substitute storage device after reading the requested data from the first storage device;
writing an additional group of data sets to a third storage device as part of an additional write operation;
receiving an additional request to read a data set stored in the third storage device; and
after receiving the additional read request, performing the steps of;
(i) suspending the additional write operation to the third storage device;
(ii) selecting the first storage device from the plurality of substitute storage devices;
(iii) continuing the write operation by writing data sets from the additional group of data sets included in the additional write operation that were not written to the third storage device to the selected first storage device; and
(iv) reading the requested data set from the third storage device as part of the additional read request.
-
-
3. The method of claim 1, wherein the step of selecting a second storage device further comprises the steps of:
-
locating a substitute storage device among the plurality of substitute storage devices that has a least amount of unused data storage space; and
selecting the located substitute storage device.
-
-
4. The method of claim 1, further comprising the steps of:
-
selecting a group of substitute storage devices as input to a recycling operation; and
transfering data sets from the group of substitute storage devices to at least one storage device designated as an output storage devices to the recycling operation.
-
-
5. The method of claim 4, wherein the step of selecting a group of substitute storage devices comprises the steps of:
-
selecting a goal value of substitute storage devices; and
excluding from the group of substitute storage devices a number of substitute storage devices equal to the goal value, wherein the excluded substitute storage devices include a least amount of unused storage space among all substitute storage devices.
-
-
6. The method of claim 4, wherein the output storage device is a substitute storage devices not included in the group of substitute storage device.
-
7. The method of claim 1, wherein a plurality of storage libraries each include a plurality of storage devices, wherein a storage drive in one of the libraries is allocated to the write operation, wherein the step of selecting a second storage device from the plurality of substitute storage devices comprises the steps of:
-
selecting a second storage device from the plurality of substitute storage devices;
determining whether the selected second storage device is located in the storage library including the allocated storage drive; and
selecting another substitute storage device as the second storage device upon determining that the selected second storage device is not located in the storage library including the allocated storage drive.
-
-
8. A storage management system for increasing capacity utilization, comprising:
-
(a) a storage subsystem;
(b) a plurality of storage devices, including a plurality of storage devices designated as substitutes, wherein the storage subsystem manages the storage devices;
(c) a host system connected to the storage subsystem and in data communication with the storage devices; and
(d) program means for;
(i) controlling a write operation in which a group of data sets are written from the host system to a first storage device;
(ii) processing a request to read a data set stored in the first storage device while the write operation is continuing;
(iii) suspending the write operation to the first storage device after processing the read request;
(iv) selecting a second storage device from the plurality of substitute storage devices after suspending the write operation;
(v) continuing the write operation by writing data sets from the group of data sets included in the write operation that were not written to the first storage device to the selected second storage device; and
(vi) reading the requested data set from the first storage device. - View Dependent Claims (9, 10, 11)
a plurality of storage subsystems, wherein each storage subsystem includes a plurality of storage devices and at least one storage drive into which one storage device is capable of being inserted in order to perform read/write operations with respect to the storage device, and an allocated storage drive included in one of the storage subsystems allocated to the write operation, and wherein the program means is further capable of determining whether a selected substitute storage device is located in the storage subsystem including one allocated storage drive and selecting another substitute storage device as the substitute storage device upon determining that the selected storage device is not located in the storage subsystem including the allocated storage drive.
-
-
12. An article of manufacture for use in programming a computer system to control a plurality of non-volatile storage devices that store data, wherein the computer system is in data communication with the storage devices, the article of manufacture comprising a computer readable storage device including a computer program embedded therein that causes the computer system to perform the steps of:
-
(a) causing the writing of a group of data sets to a first storage device as part of a write operation;
(b) designating a plurality of storage devices partially filled with data as substitute storage devices;
(c) processing a request to read a data set stored in the first storage device while the write operation is continuing; and
(d) after processing the read request directed toward the first storage device, performing the steps of;
(i) suspending the write operation to the first storage device;
(ii) selecting a second storage device from the plurality of substitute storage devices;
(iii) continuing the write operation by causing the writing of data sets from the group of data sets included in the write operation that were not written to the first storage device to the selected second storage device; and
(iv) reading the requested data set from the first storage device. - View Dependent Claims (13, 14, 15, 16, 17, 18)
designating the first storage device a substitute storage device after the requested data has been read from the first storage device;
causing the writing of an additional group of data sets to a third storage device as part of an additional write operation;
processing an additional request to read a data set stored in the third storage device; and
after processing the additional read request, performing the steps of;
(i) suspending the additional write operation to the third storage device;
(ii) selecting the first storage device from the plurality of substitute storage devices;
(iii) continuing the write operation by causing the writing of data sets from the additional group of data sets included in the additional write operation that were not written to the third storage device to the selected first storage device; and
(iv) reading the data set from the third storage device as part of the additional read request.
-
-
14. The article of manufacture of claim 12, wherein when the computer program causes the computer system to perform the step of selecting a second storage device, the computer program causes the computer system to perform the steps of:
-
locating a substitute storage device among the plurality of substitute storage devices that has a least amount unused storage space; and
selecting the located substitute storage device.
-
-
15. The article of manufacture of claim 12, wherein the computer program included in the computer readable storage device further causes the computer system to perform the steps of:
-
selecting a group of substitute storage devices as input to a recycling operation; and
transferring data sets from the group of substitute storage devices to at least one storage device designated as an output storage device to the recycling operation.
-
-
16. The article of manufacture of claim 15, wherein when the computer program causes the computer system to perform the step of selecting a group of substitute storage devices, the computer program causes the computer system to perform the steps of:
-
selecting a goal value of substitute storage devices; and
excluding from the group of substitute storage devices a number of substitute storage devices equal to the goal value, wherein the excluded substitute storage devices include a least amount of unused storage space among all substitute storage devices.
-
-
17. The article of manufacture of claim 15, wherein the output storage device is a substitute storage device not included in the group of substitute storage devices.
-
18. The article of manufacture of claim 12, wherein a plurality of storage libraries each include a plurality of storage devices, wherein a storage drive in one of the libraries is allocated to the write operation, wherein when the computer program causes the computer system to perform the step of selecting a second storage device from the plurality of substitute storage devices, the computer program causes the computer system to perform the steps of:
-
selecting a second storage device from the plurality of substitute storage devices;
determining whether the selected second storage device is located in the storage library including the allocated storage drive; and
selecting another substitute storage device as the second storage device upon determining that the selected second storage device is not located in the storage library including the allocated storage drive.
-
-
19. A computer readable storage medium for storing data accessible by at least one storage management program being executed on a computer system, wherein the computer system is capable of controlling a plurality of non-volatile storage devices, comprising:
-
a data structure stored in the computer readable storage medium, the data structure including information used by the storage management program and including;
(i) a plurality of data objects, wherein each data object identifies a storage device;
(ii) status information for each data object, wherein at least one data object includes status information identifying the storage device represented by the data object as a substitute storage device, wherein the storage management program processes the data objects and status information therein to select a second storage device from substitute storage devices after processing a read request directed toward a first storage device while a group of data sets are being written to a first storage device as part of a write operation, and wherein the storage management program suspends writing of the group of data sets to the first storage device and continues the write operation by directing the group of data sets not written to the first storage device to the selected second storage device; and
(iii) location information for each data object, wherein the storage management program processes the location information to determine the location of the selected second storage device represented by the data object. - View Dependent Claims (20, 21, 22, 23)
-
Specification