Four way support for dynamic mirror service policy
First Claim
1. A method executed in a computer system for selecting a mirror device from a plurality of mirror devices for a logical volume comprising:
- collecting activity data of said at least one logical volume;
determining an activity level of each of said plurality of mirror devices;
selecting one of said plurality of mirror devices to service said logical volume in accordance with a load balancing policy of said mirror devices, said logical volume being one of a plurality of logical volumes; and
performing seek minimization processing that includes swapping first and second mirror devices in accordance with predetermined criteria, said first mirror device being selected to service requests of a first logical volume and said second mirror device being selected to service requests of a second logical volume, said predetermined criteria including a first identifier associated with said first mirror device that does not correspond to a second identifier associated with a first portion of said first mirror device, said first portion identifying a location at which a mirrored portion of said first logical volume is to be stored, a third identifier associated with said second mirror device that does not correspond to a fourth identifier associated with a second portion of said second mirror device, said second portion identifying a location at which a mirrored portion of said second logical volume is to be stored, said third identifier corresponding to said second identifier.
9 Assignments
0 Petitions
Accused Products
Abstract
Described are techniques for use in determining a dynamic mirror service policy (DMSP) for a plurality of mirror devices. The DMSP determines which of the plurality of mirror devices services I/O operations associated with a logical volume (LV), such as a read operation, at a particular point in time. The particular DMSP may subsequently be recalculated using device statistics from a different time interval. Part of determining a DMSP includes using device statistics to determine the activity level of each LV. The activity levels of multiple LVs may be combined to determine the activity level associated with a particular mirror device. A mirror device is selected if it has the minimum activity of all the plurality of mirror devices. Seek minimization processing is performed to minimize the distance between LVs stored on a single mirror device. Parameters used in connection with determining a DMSP may be stored in a configuration file and may be dynamically modified. Techniques described may also be used in an embodiment having a static MSP.
-
Citations
38 Claims
-
1. A method executed in a computer system for selecting a mirror device from a plurality of mirror devices for a logical volume comprising:
-
collecting activity data of said at least one logical volume;
determining an activity level of each of said plurality of mirror devices;
selecting one of said plurality of mirror devices to service said logical volume in accordance with a load balancing policy of said mirror devices, said logical volume being one of a plurality of logical volumes; and
performing seek minimization processing that includes swapping first and second mirror devices in accordance with predetermined criteria, said first mirror device being selected to service requests of a first logical volume and said second mirror device being selected to service requests of a second logical volume, said predetermined criteria including a first identifier associated with said first mirror device that does not correspond to a second identifier associated with a first portion of said first mirror device, said first portion identifying a location at which a mirrored portion of said first logical volume is to be stored, a third identifier associated with said second mirror device that does not correspond to a fourth identifier associated with a second portion of said second mirror device, said second portion identifying a location at which a mirrored portion of said second logical volume is to be stored, said third identifier corresponding to said second identifier. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 12, 13, 27, 37)
using a threshold value in determining whether the activity levels of said first and second logical volumes are approximately the same.
-
-
4. The method of claim 3, wherein said threshold value is dynamic and is modifiable periodically.
-
5. The method of claim 4, further comprising:
specifying a value for said threshold in a configuration file.
-
6. The method of claim 4, further comprising:
specifying a value for a location on each mirror device in said configuration file.
-
7. The method of claim 3, further comprising:
recalculating an assignment of mirror devices to logical volumes at a later time using new activity data collected during a time period subsequent to a prior assignment of said mirror devices to said logical volumes.
-
8. The method of claim 3, further comprising:
determining an activity level of a logical volume using statistics in connection with at least one of read operations, write operations, and prefetched data.
-
12. The method of claim 1, said at least one logical volume is a plurality of logical volumes, and the method further includes:
sorting said plurality of logic at volumes in accordance with said activity data of each logical volume in decreasing order of activity level.
-
13. The method of claim 1, wherein said mirror device for a logical volume is dynamically determined and the method further comprises:
determining another mirror device for said logical volume at a predetermined point in time in response to at least one statistic about activity level of devices in said computer system.
-
27. The method of claim 1, wherein at least one of said first portion and said second portion identifies a portion of a mirror device within which a plurality of logical volumes are stored.
-
37. The method of claim 1, further comprising:
-
for said first of said plurality of logical volumes having said first identifier and said second identifier, determining if said first identifier corresponds to said second identifier;
if said first identifier does not correspond to said second identifier, determining for said second of said plurality of logical volumes having said third and said fourth identifiers, if said third identifier corresponds to said fourth identifier, if said second identifier corresponds to said third identifier, and if said activity levels of said first and second logical volumes are within a predetermined threshold; and
if said third identifier does not correspond to said fourth identifier, said second identifier does correspond to said third identifier, and said activity levels of said first and second logical volumes are approximately the same, determining that said first mirror device is a preferred mirror device for said second logical volume and that said second mirror device is a preferred mirror device for said first logical volume.
-
-
9. A method executed in a computer system for selecting a mirror device from a plurality of mirror devices for a logical volume comprising:
-
collecting activity data of said at least one logical volume;
determining an activity level of each of said plurality of mirror devices;
selecting one of said plurality of mirror devices to service said logical volume in accordance with a load balancing policy of said mirror devices, said logical volume being one of a plurality of logical volumes;
performing seek minimization processing that includes swapping first and second mirror devices in accordance with predetermined criteria, said first mirror device being selected to service requests of a first logical volume and said second mirror device being selected to service requests of a second logical volume, said predetermined criteria including a first identifier associated with said first associated mirror device that does not correspond to a second identifier associated with a location on said first mirror device identifying a location at which a mirrored portion of said first logical volume is to be stored and a third identifier associated with said second mirror device that does not correspond to a fourth identifier associated with a location on said second mirror device identifying a location at which a mirrored portion of said second logical volume is to be stored, and said third identifier corresponds to said second identifier, and activity levels associated with said first and second logical volumes being approximately the same;
using a threshold value in determining whether the activity levels of said first and second logical volumes are approximately the same;
determining an activity level of a logical volume using statistics in connection with at least one of read operations, write operations, and prefetched data; and
determining said activity level of a particular logical device as;
- View Dependent Claims (10, 11, 28, 29, 30, 31)
-
-
14. A computer program product for selecting a mirror device from a plurality of mirror devices for a logical volume comprising machine executable code for:
-
collecting activity data of said at least one logical volume;
determining an activity level of each of said plurality of mirror devices;
selecting one of said plurality of mirror devices to service said logical volume in accordance with a load balancing policy of said mirror devices, said logical volume being one of a plurality of logical volumes; and
performing seek minimization processing that includes swapping first and second mirror devices in accordance with predetermined criteria, said first mirror device being selected to service requests of a first logical volume and said second mirror device being selected to service requests of a second logical volume, said predetermined criteria including a first identifier associated with said first mirror device that does not correspond to a second identifier associated with a first portion of said first mirror device identifying a location at which a mirrored portion of said first logical volume is to be stored, a third identifier associated with said second mirror device that does not correspond to a fourth identifier associated with a second portion of said second mirror device identifying a location at which a mirrored portion of said second logical volume is to be stored, said third identifier corresponding to said second identifier. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 25, 26, 32, 38)
machine executable code using a threshold value in determining whether activity levels of said first and second logical volumes are approximately the same.
-
-
17. The computer program product of claim 16, wherein said threshold value is dynamic and is modifiable periodically.
-
18. The computer program product of claim 17, further comprising:
machine executable code for obtaining said threshold value from a configuration file.
-
19. The computer program product of claim 17, further comprising:
machine executable code for obtaining a value for a location on each mirror device from said configuration file.
-
20. The computer program product of claim 16, further comprising:
machine executable code for recalculating an assignment of mirror devices to logical volumes at a later time using new activity data collected during a time period subsequent to a prior assignment of said mirror devices to said logical volumes.
-
21. The computer program product of claim 16, further comprising:
machine executable code for determining an activity level of a logical volume using statistics in connection with at least one of read operations, write operations, and prefetched data.
-
25. The computer program product of claim 14, wherein said at least one logical volume is a plurality of logical volumes, and the computer program product further includes machine executable code for:
sorting said plurality of logical volumes in accordance with said activity data of each logical volume in decreasing order of activity level.
-
26. The computer program product of claim 14, further comprising:
-
machine executable code for dynamically determining said mirror device for said logical volume, and the computer program product further includes machine executable code for;
determining another mirror device for said logical volume at a predetermined point in time in response to at least one statistic about activity level of devices in said computer system.
-
-
32. The computer program product of claim 14, wherein at least one of said first portion and said second portion identifies a portion of a mirror device within which a plurality of logical volumes are stored.
-
38. The computer program product of claim 14, further comprising:
-
machine executable code that, for said first of said plurality of logical volumes having said first identifier and said second identifier, determines if said first identifier corresponds to said second identifier;
machine executable code that, if said first identifier does not correspond to said second identifier, determines for said second of said plurality of logical volumes having said third and said fourth identifiers, if said third identifier corresponds to said fourth identifier, if said second identifier corresponds to said third identifier, and if said activity levels of said first and second logical volumes are within a predetermined threshold; and
machine executable code that, if said third identifier does not correspond to said fourth identifier, said second identifier does correspond to said third identifier, and said activity levels of said first and second logical volumes are approximately the same, determines that said first mirror device is a preferred mirror device for said second logical volume and that said second mirror device is a preferred mirror device for said first logical volume.
-
-
22. A computer program product for selecting a mirror device from a plurality of mirror devices for a logical volume comprising machine executable code for:
-
collecting activity data of said at least one logical volume;
determining an activity level of each of said plurality of mirror devices;
selecting one of said plurality of mirror devices to service said logical volume in accordance with a load balancing policy of said mirror devices, said logical volume being one of a plurality of logical volumes; and
performing seek minimization processing that includes swapping first and second mirror devices in accordance with predetermined criteria, said first mirror device being selected to service requests of a first logical volume and said second mirror device being selected to service requests of a second logical volume, said predetermined criteria including a first identifier associated with said first associated mirror device that does not correspond to a second identifier associated with a location on said first mirror device identifying a location at which a mirrored portion of said first logical volume is to be stored, a third identifier associated with said second mirror device that does not correspond to a fourth identifier associated with a location on said second mirror device identifying a location at which a mirrored portion of said second logical volume is to be stored, and said third identifier corresponds to said second identifier, and activity levels associated with said first and second logical volumes being approximately the same;
using a threshold value in determining whether activity levels of said first and second logical volumes are approximately the same;
determining an activity level of a logical volume using statistics in connection with at least one of read operations, write operations, and prefetched data; and
determining said activity level of a particular logical device as;
- View Dependent Claims (23, 24, 33, 34, 35, 36)
-
Specification