Method and apparatus for managing the placement of data in a storage system to achieve increased system performance
First Claim
1. A method of managing data storage in a computer system including a host computer and a storage system that is coupled to the host computer and stores data accessed by the host computer, the storage system defining a plurality of storage volumes including at least a first storage volume and a second storage volume, the storage system comprising a plurality of physical storage devices on which the plurality of storage volumes are stored, the plurality of physical storage devices including at least a first physical storage device and a second physical storage device, the method comprising steps of:
- (A) detecting, within the storage system, a performance condition wherein the performance of the computer system is impacted by a manner in which a subset of the data stored in the storage system is configured within the storage system; and
(B) in response to the step (A), reconfiguring the subset of data within the storage system to alleviate the performance condition and improve the performance of the computer system, wherein the step of reconfiguring includes at least one of;
moving at least some of the subset of data from the first storage volume to the second storage volume;
moving at least some of the subset of data from a first position within the first storage volume to a second position within the first storage volume; and
moving at least some of the subset of data from the first physical storage device to the second physical storage device.
9 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for managing data storage in a computer system including a host computer and a storage system that stores data accessed by the host computer. A performance condition that impacts system performance is detected, and in response thereto, the data within the storage system is reconfigured to improve system performance. In one aspect, this detection and reconfiguration is done automatically within the storage system in a manner transparent to the host computer. Examples of performance conditions that can be detected and alleviated include logical volumes including hot spots that are larger than the cache storage dedicated to the volumes, data segments that are accessed frequently by the host but not sufficiently frequently so that they remain in the cache between accesses, and large data segments that are accessed frequently and sequentially by the host and are stored on the same physical device within the storage system. Another aspect is directed to a computer system including multiple storage systems, and wherein a performance condition that can be detected and alleviated relates to the distribution of the system data between the multiple storage systems.
-
Citations
83 Claims
-
1. A method of managing data storage in a computer system including a host computer and a storage system that is coupled to the host computer and stores data accessed by the host computer, the storage system defining a plurality of storage volumes including at least a first storage volume and a second storage volume, the storage system comprising a plurality of physical storage devices on which the plurality of storage volumes are stored, the plurality of physical storage devices including at least a first physical storage device and a second physical storage device, the method comprising steps of:
-
(A) detecting, within the storage system, a performance condition wherein the performance of the computer system is impacted by a manner in which a subset of the data stored in the storage system is configured within the storage system; and
(B) in response to the step (A), reconfiguring the subset of data within the storage system to alleviate the performance condition and improve the performance of the computer system, wherein the step of reconfiguring includes at least one of;
moving at least some of the subset of data from the first storage volume to the second storage volume;
moving at least some of the subset of data from a first position within the first storage volume to a second position within the first storage volume; and
moving at least some of the subset of data from the first physical storage device to the second physical storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
the step (A) includes a step of detecting relative levels of busyness between the first and second storage systems in handling accesses from the host computer, such that the relative level of busyness is the performance condition impacting the performance of the computer system; and
the step (B) includes a step of moving the at least some of the subset of data from a busier of the first and second storage systems to a less busy of the first and second storage systems.
-
-
10. The method of claim 7, wherein:
-
the step (A) includes a step of detecting relative levels of I/O traffic between the host computer and each of the first and second storage systems, such that the relative levels of I/O traffic is the performance condition impacting the performance of the computer system; and
the step (B) includes a step of moving the at least some of the subset of data from one of the first and second storage systems that has a higher level of I/O traffic with the host computer to the other of the first and second storage systems.
-
-
11. The method of claim 1, wherein:
-
the storage system includes a cache having an amount of storage space dedicated to storing a volume of data;
the step (A) includes a step of detecting that the volume of data includes a large hot spot that is frequently accessed and that is larger than the amount of storage space dedicated to storing the volume of data, such that the large hot spot is the performance condition impacting the performance of the computer system; and
the step (B) includes a step of splitting the volume of data that includes the large hot spot into two or more smaller volumes of data.
-
-
12. The method of claim 11, wherein the cache includes an amount of storage space dedicated to storing each of the two or more smaller volumes of data, and wherein the step of splitting the volume of data that includes the large hot spot includes splitting the large hot spot into two or more smaller hot spots that each is included in a corresponding one of the two or more smaller volumes of data and is smaller than the amount of cache storage space dedicated to storing the corresponding one of the two or more smaller volumes of data.
-
13. The method of claim 12, further including a step of combining the smaller volumes of data into a single metavolume that is presented to the host computer as the volume of data including the large hot spot.
-
14. The method of claim 1, wherein:
-
the storage system includes a cache;
the step (A) includes a step of detecting at least two segments of data in the storage system that are accessed frequently by the host computer but not sufficiently frequently so that the at least two segments of data remain in the cache between accesses; and
the step (B) includes a step of combining the at least two segments of data to create a hot spot that will be accessed frequently enough to remain in the cache between accesses.
-
-
15. The method of claim 14, wherein the cache includes a plurality of slots, wherein the at least two segments of data are included within a single volume of data, and wherein the step (B) includes a step of moving at least one of the at least two segments of data internally within the volume so that the at least two data segments are located within a unit of data that is stored in the same cache slot.
-
16. The method of claim 14, wherein the step (B) includes a step of creating a new volume of data to include the at least two segments of data.
-
17. The method of claim 1, wherein:
-
the storage system includes a plurality of storage devices;
the step (A) includes a step of detecting a large data segment in the storage system that is accessed frequently and sequentially by the host computer; and
the step (B) includes a step of splitting the large data segment into at least two smaller data segments respectively stored on at least two of the plurality of storage devices, so that the at least two smaller data segments can be accessed in parallel from the at least two of the plurality of storage devices.
-
-
18. The method of claim 17, wherein the step (A) is performed during operation of an application program executing on the host computer, and is performed in a manner that is transparent to the application program.
-
19. The method of claim 17, wherein the step (B) is performed automatically by the storage system without requiring intervention by the host computer or a system operator.
-
20. The method of claim 17, wherein the step (B) includes a step of reconfiguring only the large data segment and leaving the remainder of the data stored on the storage system in its existing configuration.
-
21. The method of claim 11, wherein the step (A) is performed in a manner that is transparent to the host computer.
-
22. The method of claim 21, wherein the step (B) is performed automatically by the storage system without requiring intervention by the host computer or a system operator.
-
23. The method of claim 14, wherein the step (A) is performed in a manner that is transparent to the host computer.
-
24. The method of claim 23, wherein the step (B) is performed automatically by the storage system without requiring intervention by the host computer or a system operator.
-
25. A computer readable medium, encoded with a computer program, that when executed on a storage system, performs a method of managing data storage in a computer system including a host computer and the storage system, wherein the storage system is coupled to the host computer and stores data accessed by the host computer, wherein the storage system defines a plurality of storage volumes including at least a first storage volume and a second storage volume, wherein the storage system comprises a plurality of physical storage devices on which the plurality of storage volumes are stored, the plurality of physical storage devices including at least a first physical storage device and a second physical storage device, and wherein the method comprises steps of:
-
(A) detecting, within the storage system, a performance condition wherein the performance of the computer system is impacted by a manner in which a subset of the data stored in the storage system is configured within the storage system; and
(B) in response to the step (A), reconfiguring the subset of data within the storage system to alleviate the performance condition and improve the performance of the computer system, wherein the step of reconfiguring includes at least one of;
moving at least some of the subset of data from the first storage volume to the second storage volume;
moving at least some of the subset of data from a first position within the first storage volume to a second position within the first storage volume; and
moving at least some of the subset of data from the first physical storage device to the second physical storage device. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
the storage system includes a cache having an amount of storage space dedicated to storing a volume of data;
the step (A) includes a step of detecting that the volume of data includes a large hot spot that is frequently accessed and that is larger than the amount of storage space dedicated to storing the volume of data, such that the large hot spot is the performance condition impacting the performance of the computer system; and
the step (B) includes a step of splitting the volume of data that includes the large hot spot into two or more smaller volumes of data.
-
-
34. The computer readable medium of claim 33, wherein the cache includes an amount of storage space dedicated to storing each of the two or more smaller volumes of data, and wherein the step of splitting the volume of data that includes the large hot spot includes splitting the large hot spot into two or more smaller hot spots that each is included in a corresponding one of the two or more smaller volumes of data and is smaller than the amount of cache storage space dedicated to storing the corresponding one of the two or more smaller volumes of data.
-
35. The computer readable medium of claim 34, further including a step of combining the smaller volumes of data into a single metavolume that is presented to the host computer as the volume of data including the large hot spot.
-
36. The computer readable medium of claim 25, wherein:
-
the storage system includes a cache;
the step (A) includes a step of detecting at least two segments of data in the storage system that are accessed frequently by the host computer but not sufficiently frequently so that the at least two segments of data remain in the cache between accesses; and
the step (B) includes a step of combining the at least two segments of data to create a hot spot that will be accessed frequently enough to remain in the cache between accesses.
-
-
37. The computer readable medium of claim 36, wherein the cache includes a plurality of slots, wherein the at least two segments of data are included within a single volume of data, and wherein the step (B) includes a step of moving at least one of the at least two segments of data internally within the volume so that the at least two data segments are located within a unit of data that is stored in the same cache slot.
-
38. The computer readable medium of claim 36, wherein the step (B) includes a step of creating a new volume of data to include the at least two segments of data.
-
39. The computer readable medium of claim 25, wherein:
-
the storage system includes a plurality of storage devices;
the step (A) includes a step of detecting a large data segment in the storage system that is accessed frequently and sequentially by the host computer; and
the step (B) includes a step of splitting the large data segment into at least two smaller data segments respectively stored on at least two of the plurality of storage devices, so that the at least two smaller data segments can be accessed in parallel from the at least two of the plurality of storage devices.
-
-
40. The computer readable medium of claim 39, wherein the step (A) is performed during operation of an application program executing on the host computer, and is performed in a manner that is transparent to the application program.
-
41. The computer readable medium of claim 39, wherein the step (B) is performed automatically by the storage system without requiring intervention by the host computer or a system operator.
-
42. The computer readable medium of claim 39, wherein the step (B) includes a step of reconfiguring only the large data segment and leaving the remainder of the data stored on the storage system in its existing configuration.
-
43. The computer readable medium of claim 33, wherein the step (A) is performed in a manner that is transparent to the host computer.
-
44. The computer readable medium of claim 43, wherein the step (B) is performed automatically by the storage system without requiring intervention by the host computer or a system operator.
-
45. The computer readable medium of claim 36, wherein the step (A) is performed in a manner that is transparent to the host computer.
-
46. The computer readable medium of claim 45, wherein the step (B) is performed automatically by the storage system without requiring intervention by the host computer or a system operator.
-
47. A storage system for use in computer system including the storage system and a host computer coupled to the storage system, the storage system to define a plurality of storage volumes including at least a first storage volume and a second storage volume, the storage system comprising:
-
a plurality of physical storage devices to store the plurality of storage volumes and data accessible by the host computer, the plurality of physical storage devices including at least a first physical storage device and a second physical storage device; and
at least one controller to manage a configuration of the data in the storage system, the at least one controller being adapted to detect a performance condition wherein the performance of the computer system is impacted by a manner in which a subset of the data is configured within the storage system and, in response to detection of the performance condition, to reconfigure the subset of data within the storage system to alleviate the performance condition and improve the performance of the computer system, wherein the reconfiguration includes at least one of;
moving at least some of the subset of data from the first storage volume to the second storage volume;
moving at least some of the subset of data from a first position within the first storage volume to a second position within the first storage volume; and
moving at least some of the subset of data from the first physical storage device to the second physical storage device. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69)
wherein the at least one controller is adapted to detect that the volume of data includes a large hot spot that is frequently accessed and that is larger than the amount of storage space dedicated to storing the volume of data, such that the large hot spot is the performance condition impacting the performance of the computer system; and
wherein the at least one controller is adapted to reconfigure the subset of data by splitting the volume of data that includes the large hot spot into two or more smaller volumes of data.
-
-
56. The storage system of claim 55, wherein the cache includes an amount of storage space dedicated to storing each of the two or more smaller volumes of data, and wherein the at least one controller is adapted to reconfigure the subset of data by splitting the large hot spot into two or more smaller hot spots that each is included in a corresponding one of the two or more smaller volumes of data and is smaller than the amount of cache storage space dedicated to storing the corresponding one of the two or more smaller volumes of data.
-
57. The storage system of claim 56, wherein the at least one controller is adapted to combine the smaller volumes of data into a single metavolume that is presented to the host computer as the volume of data including the large hot spot.
-
58. The storage system of claim 47, wherein the storage device includes a cache;
-
wherein the at least one controller is adapted to detect at least two segments of data in the storage system that are accessed frequently by the host computer but not sufficiently frequently so that the at least two segments of data remain in the cache between accesses; and
wherein the at least one controller is adapted to reconfigure the subset of data by combining the at least two segments of data to create a hot spot that will be accessed frequently enough to remain in the cache between accesses.
-
-
59. The storage system of claim 58, wherein the cache includes a plurality of slots, wherein the at least two segments of data are included within a single volume of data, and wherein the at least one controller is adapted to reconfigure the subset of data by moving at least one of the at least two segments of data internally within the volume so that the at least two data segments are located within a unit of data that is stored in the same cache slot.
-
60. The storage system of claim 58, wherein the at least one controller is adapted to reconfigure the subset of data by creating a new volume of data to include the at least two segments of data.
-
61. The storage system of claim 47, wherein the at least one controller is adapted to detect a large data segment in the storage system that is accessed frequently and sequentially by the host computer, and wherein the at least one controller is adapted to reconfigure the subset of data by splitting the large data segment into at least two smaller data segments respectively stored on at least two of the plurality of storage devices, so that the at least two smaller data segments can be accessed in parallel from the at least two of the plurality of storage devices.
-
62. The storage system of claim 61, wherein the at least one controller is adapted to detect the performance condition during operation of an application program executing on the host computer and in a manner that is transparent to the application program.
-
63. The storage system of claim 61, wherein the at least one controller is adapted to automatically reconfigure the subset of data without requiring intervention by the host computer or a system operator.
-
64. The storage system of claim 61, wherein the at least one controller is adapted to reconfigure only the large data segment while leaving the remainder of the data stored on the storage system in its existing configuration.
-
65. The storage system of claim 55, wherein the at least one controller is adapted to detect the performance condition in a manner that is transparent to the host computer.
-
66. The storage system of claim 65, wherein the at least one controller is adapted to automatically reconfigure the subset of data without requiring intervention by the host computer or a system operator.
-
67. The storage system of claim 58, wherein the at least one controller is adapted to detect the performance condition in a manner that is transparent to the host computer.
-
68. The storage system of claim 67, wherein the at least one controller is adapted to automatically reconfigure the subset of data without requiring intervention by the host computer or a system operator.
-
69. The storage system of claim 47, wherein the at least one controller includes detecting means for detecting the performance condition and reconfiguring means for reconfiguring the subset of data.
-
70. A method of managing data storage in a computer system including a host computer and first and second storage systems that each is coupled to the host computer, the first and second storage systems collectively storing data accessed by the host computer, the method comprising steps of:
-
(A) detecting a performance condition wherein the performance of the computer system is impacted by a manner in which the data is configured between the first and second storage systems; and
(B) in response to the step (A), reconfiguring the data by moving at least some of the data from the first storage system to the second storage system to alleviate the performance condition and improve the performance of the computer system. - View Dependent Claims (71, 72, 73)
the step (A) includes a step of detecting relative levels of busyness between the first and second storage systems in handling accesses from the host computer, such that the relative level of busyness is the performance condition impacting the performance of the computer system; and
the step (B) includes a step of moving the at least some of the data from a busier of the first and second storage systems to a less busy of the first and second storage systems.
-
-
73. The method of claim 70, wherein:
-
the step (A) includes a step of detecting relative levels of I/O traffic between the host computer and each of the first and second storage systems, such that the relative levels of I/O traffic is the performance condition impacting the performance of the computer system; and
the step (B) includes a step of moving the at least some of the subset of data from one of the first and second storage systems that has a higher level of I/O traffic with the host computer to the other of the first and second storage systems.
-
-
74. A method of managing data storage in a computer system including a host computer and a storage system that is coupled to the host computer and stores data accessed by the host computer, wherein the storage system includes a cache having an amount of storage space dedicated to storing a volume of data, the method comprising steps of:
-
(A) detecting that the volume of data includes a large hot spot that is frequently accessed and that is larger than the amount of cache storage space dedicated to storing the volume of data; and
(B) in response to the step (A), splitting the volume of data that includes the large hot spot into two or more smaller volumes of data to improve the performance of the computer system. - View Dependent Claims (75, 76)
-
-
77. A method of managing data storage in a computer system including a host computer and a storage system that is coupled to the host computer and stores data accessed by the host computer, wherein the storage system includes a cache, the method comprising steps of:
-
(A) detecting at least two segments of data in the storage system that are accessed frequently by the host computer but not sufficiently frequently so that the at least two segments of data remain in the cache between accesses; and
(B) in response to the step (A), combining the at least two segments of data to create a hot spot that will be accessed frequently enough to remain in the cache between accesses to improve the performance of the computer system. - View Dependent Claims (78, 79)
-
-
80. A method of managing data storage in a computer system including a host computer and a storage system that is coupled to the host computer and stores data accessed by the host computer, wherein the storage system includes a plurality of storage devices, the method comprising steps of:
-
(A) detecting a large data segment in the storage system that is accessed frequently and sequentially by the host computer and that is stored on one of the plurality of storage devices; and
(B) in response to the step (A), splitting the large data segment into at least two smaller data segments respectively stored on at least two of the plurality of storage devices, so that the at least two smaller data segments can be accessed in parallel from the at least two of the plurality of storage devices to improve the performance of the computer system. - View Dependent Claims (81, 82, 83)
-
Specification