Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes
First Claim
1. A method of accessing a logical data volume in a storage area network having a plurality of host devices and a storage array, the storage array having a plurality of array controllers, the logical data volume being present on the storage array, the plurality of host devices accessing the logical data volume through the plurality of array controllers, comprising the steps of:
- receiving at a first array controller a request to access the logical data volume when a second array controller currently has ownership of the logical data volume, the access request requiring a transfer of the ownership of the logical data volume from the second array controller to the first array controller, the access request being issued by one of the plurality of host devices;
determining whether the ownership of the logical data volume by the second array controller is within an exclusive period of time;
upon a determination that the ownership of the logical data volume by the second array controller is within the exclusive period of time, denying the transfer of the ownership of the logical data volume from the second array controller to the first array controller;
upon a determination that the ownership of the logical data volume by the second array controller is not within the exclusive period of time, granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller;
upon the determination that ownership of the logical data volume by the second array controller is not within the exclusive period of time, determining whether the transfer of the ownership of the logical data volume to the first array controller would eliminate access to the logical data volume for a second one of the plurality of host devices to the extent that the physical connections of the second one of the plurality of host devices would not include a connection to any array controller that would have permission to access the logical data volume; and
upon a determination that the transfer of the ownership of the logical data volume to the first array controller would not eliminate access to the logical data volume for the second one of the plurality of host devices, granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller.
2 Assignments
0 Petitions
Accused Products
Abstract
In a storage environment or storage area network having multiple host devices and at least one storage array, the host devices access logical data volumes stored on the storage array through array controllers disposed in the storage array. Multiple host devices can request access to shared ones of the logical data volumes through multiple paths to multiple array controllers, but each logical data volume is controlled or owned by only one array controller at a time. Thus, ownership of shared logical data volumes is transferred between the array controllers as necessary on behalf of the requesting host devices. To prevent ownership transfers from occurring too often, however, ownership of the logical data volumes is made exclusive, or “sticky,” for a period of time after each transfer. During the exclusive ownership period of time, the ownership cannot be transferred. After expiration of the exclusive ownership period of time, ownership of the affected logical data volume is transferred if the transfer does not cause another host device to lose access to the same logical data volume, unless priorities between competing host devices permit one host device to take access away from the other host device.
-
Citations
21 Claims
-
1. A method of accessing a logical data volume in a storage area network having a plurality of host devices and a storage array, the storage array having a plurality of array controllers, the logical data volume being present on the storage array, the plurality of host devices accessing the logical data volume through the plurality of array controllers, comprising the steps of:
-
receiving at a first array controller a request to access the logical data volume when a second array controller currently has ownership of the logical data volume, the access request requiring a transfer of the ownership of the logical data volume from the second array controller to the first array controller, the access request being issued by one of the plurality of host devices;
determining whether the ownership of the logical data volume by the second array controller is within an exclusive period of time;
upon a determination that the ownership of the logical data volume by the second array controller is within the exclusive period of time, denying the transfer of the ownership of the logical data volume from the second array controller to the first array controller;
upon a determination that the ownership of the logical data volume by the second array controller is not within the exclusive period of time, granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller;
upon the determination that ownership of the logical data volume by the second array controller is not within the exclusive period of time, determining whether the transfer of the ownership of the logical data volume to the first array controller would eliminate access to the logical data volume for a second one of the plurality of host devices to the extent that the physical connections of the second one of the plurality of host devices would not include a connection to any array controller that would have permission to access the logical data volume; and
upon a determination that the transfer of the ownership of the logical data volume to the first array controller would not eliminate access to the logical data volume for the second one of the plurality of host devices, granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
upon granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller, starting a second exclusive period of time in addition to the exclusive period of time first aforesaid.
-
-
3. A method as defined in claim 1 further comprising the step of:
upon granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller, informing the plurality of host devices that the first array controller has ownership of the logical data volume.
-
4. A method as defined in claim 1, further comprising the step of:
upon the determination that the ownership of the logical data volume by the second array controller is within the exclusive period of time, sending information to the one of the plurality of host devices that issued the access request that the second array controller has exclusive ownership of the logical data volume.
-
5. A method as defined in claim 4 further comprising the steps of:
-
issuing the access request from the one of the plurality of host devices to the first array controller;
receiving at the one of the plurality of host devices the information that the second array controller has exclusive ownership of the logical data volume; and
re-issuing the access request from the one of the plurality of host devices to the second array controller.
-
-
6. A method as defined in claim 1 further comprising the step of:
sending a query to each of the host devices from the first and second array controllers to determine which of the host devices have access to the first and second array controllers prior to determining whether the transfer of ownership would eliminate access to the logical data volume for the second host device.
-
7. A method as defined in claim 1 further comprising the steps of:
-
upon a determination that the transfer of the ownership of the logical data volume to the first array controller would eliminate access to the logical data volume for the second one of the plurality of host devices, determining whether the first one of the plurality of host devices can access the logical data volume through the second array controller; and
upon a determination that the first one of the plurality of host devices can access the logical data volume through the second array controller, informing the first one of the plurality of host devices that the second array controller has exclusive ownership of the logical data volume.
-
-
8. A method as defined in claim 7 further comprising the steps of:
-
upon a determination that the first one of the plurality of host devices cannot access the logical data volume through the second array controller, determining whether the first one of the plurality of host devices has priority over the second one of the plurality of host devices for accessing the logical data volume; and
upon a determination that the first one of the plurality of host devices has priority over the second one of the plurality of host devices for accessing the logical data volume, granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller.
-
-
9. A method as defined in claim 8 further comprising the step of:
upon a determination that the first one of the plurality of host devices does not have priority over the second one of the plurality of host devices for accessing the logical data volume, denying the transfer of the ownership of the logical data volume from the second array controller to the first array controller.
-
10. A method of accessing a logical data volume in a storage area network having a plurality of host devices and a storage array, the storage array having a plurality of array controllers and storing the logical data volume, wherein the plurality of host devices access the logical data volume through the plurality of array controllers, comprising the steps of:
-
issuing a request to access the logical data volume from a first host device to a first array controller;
receiving by the first array controller the access request, a second array controller currently having ownership of the logical data volume, the access request requiring a transfer of the ownership of the logical data volume from the second array controller to the first array controller;
determining whether the transfer of the ownership of the logical data volume to the first array controller would eliminate access to the logical data volume for a second host device to the extent that the physical connections of the second host device would not include a connection to any array controller that would have permission to access the logical data volume;
upon a determination that the transfer of the ownership of the logical data volume to the first array controller would eliminate access to the logical data volume for the second host device, denying the transfer of the ownership of the logical data volume from the second array controller to the first array controller; and
upon a determination that the transfer of the ownership of the logical data volume to the first array controller would not eliminate access to the logical data volume for the second host device, granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller. - View Dependent Claims (11, 12, 13, 14)
sending a query to each of the host devices from the first and second array controllers to determine which of the host devices have access to the first and second array controllers prior to determining whether the transfer of ownership would eliminate access to the logical data volume for the second host device.
-
-
12. A method as defined in claim 10 further comprising the steps of:
-
upon a determination that the transfer of the ownership of the logical data volume to the first array controller would eliminate access to the logical data volume for the second host device, determining whether the first host device can access the logical data volume through the second array controller; and
upon a determination that the first host device can access the logical data volume through the second array controller, informing the first host device that the second array controller has exclusive ownership of the logical data volume.
-
-
13. A method as defined in claim 12 further comprising the steps of:
-
upon a determination that the first host device cannot access the logical data volume through the second array controller, determining whether the first host device has priority over the second host device for accessing the logical data volume; and
upon a determination that the first host device has priority over the second host device for accessing the logical data volume, granting the transfer of the ownership of the logical data volume from the second array controller to the first array controller.
-
-
14. A method as defined in claim 13 further comprising the step of:
upon a determination that the first host device does not have priority over the second host device for accessing the logical data volume, denying the transfer of the ownership of the logical data volume from the second array controller to the first array controller.
-
15. A storage area network having a storage array having a plurality of array controllers and containing a plurality of logical data volumes storing data and the storage area network also having a plurality of host devices for accessing the logical data volumes through the array controllers, comprising:
-
first and second array controllers disposed in the storage array and controlling access to the logical data volumes, each array controller operative to have ownership of one or more of the logical data volumes, each logical data volume being owned by only one of the array controllers, the ownership of each logical data volume being exclusive for an exclusive period of time, each array controller further operative to transfer the ownership of a shared one of the logical data volumes from the other array controller to itself after expiration of the exclusive period of time for the shared logical data volume and upon receiving a request to access the shared logical data volume;
a first host device connected to the storage array at the first array controller, the first host device operative to access the shared logical data volume, the first host device further operative to issue a first request to access the shared logical data volume to the first array controller; and
a second host device connected to the storage array at the second array controller, the second host device operative to access the shared logical data volume, the second host device further operative to issue a second request to access the shared logical data volume to the second array controller; and
wherein;
the first array controller is further operative to establish ownership of the shared logical data volume upon receiving the first request to access the shared logical data volume and to start the exclusive period of time upon the establishment of ownership of the shared logical data volume; and
the second array controller is further operative to determine whether the ownership of the shared logical data volume is exclusive to the first array controller upon receiving the second request to access the shared logical data volume, to reject the second request to access the shared logical data volume if ownership is exclusive, and to transfer ownership of the shared logical data volume to the second array controller if the exclusive period of time has expired, wherein if the exclusive period of time has expired, the second array controller is further operative to determine whether transfer to itself of the ownership of the shared logical data volume would eliminate access to the shared logical data volume for the first host device to the extent that the physical connections of the first host device would not include a connection to any array controller that would have permission to access the logical data volume; and
wherein the second array controller is further operative to transfer ownership of the shared logical data volume to itself upon a determination that the transfer of the ownership of the shared logical data volume to itself would not eliminate access to the shared logical data volume for the first host device. - View Dependent Claims (16, 17, 18, 19, 20, 21)
the second array controller is further operative to restart the exclusive period of time upon transferring ownership of the shared logical data volume to the second array controller.
-
-
17. A storage area network as defined in claim 16 wherein:
the second array controller is further operative to notify the first and second host devices of the exclusive ownership of the shared logical data volume by the second array controller.
-
18. A storage area network as defined in claim 15 wherein:
the first and second array controllers are further operative to send a query to each of the host devices to determine which of the host devices have access to the first and second array controllers and to determine whether the transfer of ownership would eliminate access to the logical data volume for the first host device.
-
19. A storage area network as defined in claim 15 wherein:
the second array controller is further operative to determine whether the second host device can access the shared logical data volume through the first array controller upon a determination that the transfer of the ownership of the shared logical data volume to the second array controller would eliminate access to the shared logical data volume for the first host device.
-
20. A storage area network as defined in claim 19 wherein:
the second array controller is further operative to reject the second request to access the shared logical data volume upon a determination that the second host device can access the shared logical data volume through the first array controller.
-
21. A storage area network as defined in claim 20 wherein:
the second array controller is further operative to determine whether the second host device has priority over the first host device for accessing the shared logical data volume upon a determination that the second host device cannot access the shared logical data volume through the first array controller; and
the second array controller is further operative to transfer ownership of the shared logical data volume to itself upon a determination that the second host device has priority over the first host device for accessing the shared logical data volume.
Specification