Method, system, program, and data structures for mapping logical units to a storage space comprises of at least one array of storage units
First Claim
Patent Images
1. A method for mapping logical units to a storage space comprised of at least one array of storage units, comprising:
- reading configuration information stored in one array indicating a first mapping of logical units to storage locations in the array; and
generating a second mapping of logical units to storage locations in multiple arrays by processing the configuration information read from the array, wherein each logical unit is assigned to only one of the arrays.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a method, system, program, and data structures for mapping logical units, such as logical unit numbers (LUNs), to a storage space comprised of at least one array of storage units, e.g., hard disk drives. Configuration information stored in one array indicating a first mapping of logical units to storage locations in the array is read. A second mapping of logical units to storage locations in multiple arrays is generated using the configuration information read from the array. Each logical unit is assigned to only one of the arrays.
168 Citations
38 Claims
-
1. A method for mapping logical units to a storage space comprised of at least one array of storage units, comprising:
-
reading configuration information stored in one array indicating a first mapping of logical units to storage locations in the array; and
generating a second mapping of logical units to storage locations in multiple arrays by processing the configuration information read from the array, wherein each logical unit is assigned to only one of the arrays. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
receiving a request to add a logical unit that maps to a range of blocks in a target array;
determining one logical unit in the second mapping that does not map to a storage location in one array;
modifying the first mapping to indicate that the determined logical unit maps to a range of blocks in the target array; and
modifying the second mapping to indicate that the determined logical unit maps to the target array.
-
-
3. The method of claim 1, further comprising:
-
reading the configuration information for each array in the storage space, wherein generating the second mapping further comprises;
for each array, determining each logical unit in the first mapping that maps to a storage location in the array; and
assigning the determined logical unit in the second mapping to map to the storage location in the array as indicated in the first mapping if the second mapping does not already assign the determined logical unit to map to another array.
-
-
4. The method of claim 3, wherein generating the second mapping further comprises:
assigning an unassigned logical unit in the second mapping to map to the storage location in the array if the second mapping assigns the determined logical unit from the first mapping to map to a storage location in another array.
-
5. The method of claim 4, further comprising:
modifying the first mapping to indicate that the assigned logical unit maps to the storage location and that the determined logical unit does not map to the storage location if the second mapping assigns the determined logical unit to map to another array.
-
6. The method of claim 3, wherein the configuration information is read from each array in response to a coldstart operation, further comprising setting the values in the second mapping for each assigned logical unit.
-
7. The method of claim 3, further comprising:
detecting a change in the arrays included in the storage space, wherein the configuration information is read from each array in response to detecting the change.
-
8. The method of claim 7, wherein the determined logical unit in the first mapping is assigned to map to the storage location in the array if the second mapping already assigns the determined logical unit to map to the storage location in the array.
-
9. The method of claim 8, further comprising assigning an unassigned logical unit in the second mapping to map to the storage location in the array if the second mapping assigns the determined logical unit from the first mapping to map to a storage location in another array.
-
10. The method of claim 7, wherein the change to the arrays comprises the removal of at least one array from the storage space, further comprising:
modifying the second mapping to indicate that logical units that map to storage locations in each removed array no longer map to the storage locations in each removed array.
-
11. The method of claim 1, wherein the first mapping comprises:
- (i) a control block for each logical unit that maps to a storage location in the array indicating the logical unit and storage location in the array assigned to the logical unit and (ii) a logical unit mapping of logical units to control blocks, and wherein generating the second mapping further comprises;
adding the control blocks to the second mapping to associate each assigned logical unit with one control block, wherein the logical unit in the control block is the same as the logical unit associated with the control block in the first mapping.
- (i) a control block for each logical unit that maps to a storage location in the array indicating the logical unit and storage location in the array assigned to the logical unit and (ii) a logical unit mapping of logical units to control blocks, and wherein generating the second mapping further comprises;
-
12. A system for mapping logical units, comprising:
-
a storage space comprised of at least one array of storage units;
means for reading configuration information stored in one array indicating a first mapping of logical units to storage locations in the array; and
means for generating a second mapping of logical units to storage locations in multiple arrays by processing the configuration information read from the array, wherein each logical unit is assigned to only one of the arrays. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
means for receiving a request to add a logical unit that maps to a range of blocks in a target array;
means for determining one logical unit in the second mapping that does not map to a storage location in one array;
means for modifying the first mapping to indicate that the determined logical unit maps to a range of blocks in the target array; and
means for modifying the second mapping to indicate that the determined logical unit maps to the target array.
-
-
14. The system of claim 12, further comprising:
-
means for reading the configuration information for each array in the storage space, wherein the means for generating the second mapping further comprises;
for each array, determining each logical unit in the first mapping that maps to a storage location in the array; and
assigning the determined logical unit in the second mapping to map to the storage location in the array as indicated in the first mapping if the second mapping does not already assign the determined logical unit to map to another array.
-
-
15. The system of claim 14, wherein the means for generating the second mapping further comprises:
assigning an unassigned logical unit in the second mapping to map to the storage location in the array if the second mapping assigns the determined logical unit from the first mapping to map to a storage location in another array.
-
16. The system of claim 15, further comprising:
means for modifying the first mapping to indicate that the assigned logical unit maps to the storage location and that the determined logical unit does not map to the storage location if the second mapping assigns the determined logical unit to map to another array.
-
17. The system of claim 14, wherein the configuration information is read from each array in response to a coldstart operation, further comprising means for setting the values in the second mapping for each assigned logical unit.
-
18. The system of claim 14, further comprising:
means for detecting a change in the arrays included in the storage space, wherein the configuration information is read from each array in response to detecting the change.
-
19. The system of claim 18, wherein the determined logical unit in the first mapping is assigned to map to the storage location in the array if the second mapping already assigns the determined logical unit to map to the storage location in the array.
-
20. The system of claim 19, further comprising means for assigning an unassigned logical unit in the second mapping to map to the storage location in the array if the second mapping assigns the determined logical unit from the first mapping to map to a storage location in another array.
-
21. The system of claim 18, wherein the change to the arrays comprises the removal of at least one array from the storage space, further comprising:
means for modifying the second mapping to indicate that logical units that map to storage locations in each removed array no longer map to the storage locations in each removed array.
-
22. The system of claim 12, wherein the first mapping comprises:
- (i) a control block for each logical unit that maps to a storage location in the array indicating the logical unit and storage location in the array assigned to the logical unit and (ii) a logical unit mapping of logical units to control blocks, and wherein generating the second mapping further comprises;
adding the control blocks to the second mapping to associate each assigned logical unit with one control block, wherein the logical unit in the control block is the same as the logical unit associated with the control block in the first mapping.
- (i) a control block for each logical unit that maps to a storage location in the array indicating the logical unit and storage location in the array assigned to the logical unit and (ii) a logical unit mapping of logical units to control blocks, and wherein generating the second mapping further comprises;
-
23. An electronically accessible information bearing medium including code for use in mapping logical units to a storage space comprised of at least one array of storage units, wherein the code causes a processor to perform:
-
reading configuration information stored in one array indicating a first mapping of logical units to storage locations in the array; and
generating a second mapping of logical units to storage locations in multiple arrays by processing the configuration information read from the array, wherein each logical unit is assigned to only one of the arrays. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
receiving a request to add a logical unit that maps to a range of blocks in a target array;
determining one logical unit in the second mapping that does not map to a storage location in one array;
modifying the first mapping to indicate that the determined logical unit maps to a range of blocks in the target array; and
modifying the second mapping to indicate that the determined logical unit maps to the target array.
-
-
25. The information bearing medium of claim 23, wherein the code further causes the processor to perform:
-
reading the configuration information for each array in the storage space, wherein generating the second mapping further comprises;
for each array, determining each logical unit in the first mapping that maps to a storage location in the array; and
assigning the determined logical unit in the second mapping to map to the storage location in the array as indicated in the first mapping if the second mapping does not already assign the determined logical unit to map to another array.
-
-
26. The information bearing medium of claim 25, wherein generating the second mapping further comprises:
assigning an unassigned logical unit in the second mapping to map to the storage location in the array if the second mapping assigns the determined logical unit from the first mapping to map to a storage location in another array.
-
27. The information bearing medium of claim 26, wherein the code further causes the processor to perform:
modifying the first mapping to indicate that the assigned logical unit maps to the storage location and that the determined logical unit does not map to the storage location if the second mapping assigns the determined logical unit to map to another array.
-
28. The information bearing medium of claim 25, wherein the configuration information is read from each array in response to a coldstart operation, and wherein the code further causes the processor to perform setting the values in the second mapping for each assigned logical unit.
-
29. The information bearing medium of claim 25, wherein the code further causes the processor to perform:
detecting a change in the arrays included in the storage space, wherein the configuration information is read from each array in response to detecting the change.
-
30. The information bearing medium of claim 29, wherein the determined logical unit in the first mapping is used to map to the storage location in the array if the second mapping already assigns the determined logical unit to map to the storage location in the array.
-
31. The information bearing medium of claim 30, wherein the code further causes the processor to perform assigning an unassigned logical unit in the second mapping to map to the storage location in the array if the second mapping assigns the determined logical unit from the first mapping to map to a storage location in another array.
-
32. The information bearing medium of claim 29, wherein the change to the arrays comprises the removal of at least one array from the storage space, and wherein the code further causes the processor to perform:
modifying the second mapping to indicate that logical units that map to storage locations in each removed array no longer map to the storage locations in each removed array.
-
33. The information bearing medium of claim 23, wherein the first mapping comprises:
- (i) a control block for each logical unit that maps to a storage location in the array indicating the logical unit and storage location in the array assigned to the logical unit and (ii) a logical unit mapping of logical units to control blocks, and wherein generating the second mapping further comprises;
adding the control blocks to the second mapping to associate each assigned logical unit with one control block, wherein the logical unit in the control block is the same as the logical unit associated with the control block in the first mapping.
- (i) a control block for each logical unit that maps to a storage location in the array indicating the logical unit and storage location in the array assigned to the logical unit and (ii) a logical unit mapping of logical units to control blocks, and wherein generating the second mapping further comprises;
- 34. A computer readable storage array for adding to a storage device accessible to a controller, wherein the storage array includes configuration information indicating a first mapping of logical units to storage locations in the array, wherein the controller generates a second mapping of logical units to storage locations in multiple arrays by processing the configuration information read from the array, wherein each logical unit is assigned to only one of the arrays.
Specification