Load balancing in a storage network
First Claim
1. A method for use in a system for storing and accessing data, the system including at least one initiator, at least one target, and at least one switch, the method comprising:
- providing a plurality of paths to the target from the initiator, each path passing through the switch;
dynamically load balancing amongst the paths by the switch.
2 Assignments
0 Petitions
Accused Products
Abstract
A system in accordance with an embodiment of the invention provides Quality of Service (QoS) for Storage Access. Such QoS is partially enabled in one embodiment by the automatic pooling of storage devices and provisioning virtual targets from those pools. QoS is enforced in one embodiment by keeping the bandwidth for each connection within a specified range, and particularly, by controlling the number of allowed concurrent requests from an initiator. Load balancing is also provided in one embodiment, improving response times for requests, further easing the ability to provide QoS.
-
Citations
26 Claims
-
1. A method for use in a system for storing and accessing data, the system including at least one initiator, at least one target, and at least one switch, the method comprising:
-
providing a plurality of paths to the target from the initiator, each path passing through the switch;
dynamically load balancing amongst the paths by the switch. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. The method of 1, wherein the switch includes a plurality of ports and wherein load balancing is performed by respective circuitry affiliated with each respective port.
-
8. A method for use in a storage network including an initiator, a storage device, and a switch, the method comprising:
-
providing a plurality of paths from the storage device to the initiator, each path passing through the switch;
determining a respective average response time for each path;
passing a request received by the switch from the initiator to the storage device along the path with the shortest average response time.
-
-
9. A method for use in a storage network including an initiator, a mirrored virtual target having a plurality of members, and a switch, the method comprising:
-
providing a path from each member of the mirrored virtual target to the initiator, each path passing through the switch;
determining a respective average response time for each path;
passing a request received by the switch from the initiator to the member with the shortest average response time. - View Dependent Claims (10)
-
-
11. A method for use in a storage network including a switch, a plurality of initiators, and a plurality of targets, wherein some of the targets are mirrored targets with a plurality of members and some of the targets are physical storage devices, the method comprising:
-
providing a plurality of paths from a first initiator to a physical storage device via the switch;
providing a respective path from a second initiator to each member of a mirrored target via the switch;
determining a respective average response time for each path from the first initiator to the physical storage device and for each path from the second initiator to each member of the mirrored target;
passing a first request received by the switch from the initiator to the physical storage device along the path to the physical storage device with the shortest average response time;
passing a second request received by the switch from the initiator to the member of the mirrored target with the shortest average response time. - View Dependent Claims (12, 13, 14)
-
-
15. A switch for use in a storage network, comprising:
-
a plurality of ports, load balancing circuitry affiliated with each of the ports. - View Dependent Claims (16)
-
-
17. A switch for use in a storage network, the network including an initiator and a target in communication with the initiator by a plurality of paths, each path passing through the switch, the switch comprising:
-
a plurality of ports;
means for load balancing amongst the paths. - View Dependent Claims (18)
-
-
19. A storage network, including:
-
an initiator;
a target;
a switch;
a plurality of paths from the initiator to the target via the switch;
wherein the switch includes statistical information regarding the response time for each path; and
wherein the switch is designed to forward a request from the initiator to the target along the path with the shortest response time. - View Dependent Claims (20, 21, 22)
-
-
23. A machine readable media which has instructions stored thereon, which when executed by a switch in a storage network causes the switch to perform the following steps:
-
providing a plurality of paths to a target from an initiator, each path passing through the switch;
determining a respective response time of each path;
passing a request received by the switch from the initiator to the target along the path with the shortest average response time. - View Dependent Claims (24, 25, 26)
-
Specification