Load balancing in a storage system
First Claim
Patent Images
1. An apparatus comprising:
- a port task scheduler to maintain a list of tasks associated with a remote storage device each task involving a data transfer using a serial storage protocol between a local initiator port in a storage Input/Output controller and the remote storage device over at least one of a plurality of physical links, the port task scheduler to include a load balancer to schedule tasks from among the list of tasks by scheduling the data transfer over at least one of the plurality of physical links associated with a connection established between the remote storage device and the local initiator port, the load balancer to provide a fair share of link servicing to each of a plurality of remote storage devices sharing the plurality of physical links such that each remote storage device receives a fair share of communication bandwidth, the load balancer to maintain a load balancing timeout timer associated with a connection established between the remote storage device and the local initiator port, the load balancer to count frames transferred over the connection and decrement the load balancing timeout timer only while frames are being transferred over the connection, the load balancer to cause the connection to be closed when the load balancing timeout timer expires, the load balancer to return a partially completed task to the list of tasks when the load balancing timeout timer expires and there are pending tasks in the list of tasks, the partially completed task to be re-scheduled by the load balancer.
1 Assignment
0 Petitions
Accused Products
Abstract
Link level load balancing is provided based on time utilization of a link or workload utilization of a device. Time utilization achieves load balancing by giving each device the same amount of connection time to perform Input/Output tasks. Workload utilization achieves load balancing by managing a number of frames or bytes transmitted to each device.
17 Citations
22 Claims
-
1. An apparatus comprising:
a port task scheduler to maintain a list of tasks associated with a remote storage device each task involving a data transfer using a serial storage protocol between a local initiator port in a storage Input/Output controller and the remote storage device over at least one of a plurality of physical links, the port task scheduler to include a load balancer to schedule tasks from among the list of tasks by scheduling the data transfer over at least one of the plurality of physical links associated with a connection established between the remote storage device and the local initiator port, the load balancer to provide a fair share of link servicing to each of a plurality of remote storage devices sharing the plurality of physical links such that each remote storage device receives a fair share of communication bandwidth, the load balancer to maintain a load balancing timeout timer associated with a connection established between the remote storage device and the local initiator port, the load balancer to count frames transferred over the connection and decrement the load balancing timeout timer only while frames are being transferred over the connection, the load balancer to cause the connection to be closed when the load balancing timeout timer expires, the load balancer to return a partially completed task to the list of tasks when the load balancing timeout timer expires and there are pending tasks in the list of tasks, the partially completed task to be re-scheduled by the load balancer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A method comprising:
-
storing, by a storage controller, a list of tasks associated with a remote storage device each task involving a data transfer using a serial storage protocol between a local initiator port in the storage controller and the remote storage device over at least one of a plurality of physical links; and scheduling tasks, by the storage controller, the storage controller scheduling the data transfer over at least one of the plurality of physical links associated with a connection established between the remote device and the local initiator port, the storage controller to provide a fair share of link servicing to each of a plurality of remote storage devices sharing the plurality of physical links such that each remote storage device receives a fair share of communication bandwidth, the storage controller to maintain a load balancing timeout timer associated with a connection established between the remote storage device the local initiator port, the storage controller to count frames transferred over the connection and decrement the load balancing timeout timer only while frames are being transferred over the connection, the storage controller to close the connection when the load balancing timeout timer expires, the storage controller to return a partially completed task to the list of tasks when the load balancing timeout timer expires and there are pending tasks in the list of tasks, the partially completed task to be re-scheduled by the storage controller. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer usable non-transitory medium including a computer readable code stored thereon having associated information, wherein the information, when accessed, results in a storage controller performing:
-
storing a list of tasks associated with a remote storage device, each task involving a data transfer using a serial storage protocol between a local initiator port and the remote storage device over at least one of a plurality of physical links; and scheduling tasks by scheduling the data transfer over at least one of the plurality of physical links associated with a connection established between the remote device and the local initiator port, to provide a fair share of link servicing to each of a plurality of remote ports sharing the plurality of physical links such that each remote storage device receives a fair share of communication bandwidth, the storage controller to maintain a load balancing timeout timer associated with a connection established between the remote storage device and the local initiator port, the storage controller to count frames transferred over the connection and decrement the load balancing timeout timer only while frames are being transferred over the connection, the storage controller to close the connection when the load balancing timeout timer expires, the storage controller to return a partially completed task to the list of tasks when the load balancing timeout timer expires and there are pending tasks in the list of tasks, the partially completed task to be re-scheduled by the storage controller. - View Dependent Claims (20)
-
-
21. A system comprising:
-
a disk drive; and a storage I/O controller comprising; a port task scheduler to maintain a list of tasks associated with a remote storage device each task involving a data transfer using a serial storage protocol between a local initiator port in a storage Input/Output controller and the remote storage device over at least one of a plurality of physical links; and a load balancer to schedule tasks from among the list of tasks by scheduling the data transfer over at least one of the plurality of physical links associated with a connection established between the remote device and the local initiator port, the load balancer to provide a fair share of link servicing to each of a plurality of remote storage devices sharing the plurality of physical links such that each remote storage device receives a fair share of communication bandwidth, the load balancer to maintain a load balancing timeout timer associated with a connection established between the remote storage device and the local initiator port, the load balancer to count frames transferred over the connection and decrement the load balancing timeout timer only while frames are being transferred over the connection, the load balancer to cause the connection to be closed connection when the load balancing timeout timer expires, the load balancer to return a partially completed task to the list of tasks when the load balancing timeout timer expires and there are pending tasks in the list of tasks, the partially completed task to be re-scheduled by the load balancer. - View Dependent Claims (22)
-
Specification