Failover and load balancing
First Claim
1. A method for static load balancing implemented in a filter driver, wherein the filter driver performs:
- determining a data quota for each of multiple data paths, wherein the data quota is determined for each of the multiple data paths by calculating;
mean data length for a data path*(load balancing share for the data path/minimal load balancing share in the multiple data paths);
identifying a maximum number of commands for a target logical unit; and
selecting a data path on which to send a packet based on the data quota and the maximum number of commands.
0 Assignments
0 Petitions
Accused Products
Abstract
Provided are techniques for static load balancing implemented in a filter driver. The filter driver determines a data quota for each of multiple data paths. The filter driver identifies a maximum number of commands for a target logical unit. The filter driver selects a data path on which to send a packet based on the data quota and the maximum number of commands. Also, provided are techniques for dynamic load balancing implemented in a filter driver. The filter driver determines a data transfer speed for each of multiple data paths. The filter driver updates a load balancing share for each of the multiple data paths based on the data transfer speed of each of the multiple data paths. The filter driver selects a data path on which to send a packet based on the load balancing share of each of the multiple data paths.
86 Citations
18 Claims
-
1. A method for static load balancing implemented in a filter driver, wherein the filter driver performs:
-
determining a data quota for each of multiple data paths, wherein the data quota is determined for each of the multiple data paths by calculating; mean data length for a data path*(load balancing share for the data path/minimal load balancing share in the multiple data paths); identifying a maximum number of commands for a target logical unit; and selecting a data path on which to send a packet based on the data quota and the maximum number of commands. - View Dependent Claims (2, 3)
-
-
4. A method for dynamic load balancing implemented in a filter driver, wherein the filter driver performs:
-
determining a data transfer speed for each of multiple data paths; updating a load balancing share for each of the multiple data paths opportionally to the data transfer speed of each of the multiple data paths by calculating; a data transfer speed for a selected data path divided by a data transfer speed of the multiple data paths; and selecting a data path on which to send a packet based on the load balancing share of each of the multiple data paths. - View Dependent Claims (5, 6)
-
-
7. A system coupled to a network and data storage, comprising:
-
a host computer; a storage controller managing Input/Output (I/O) access to the data storage, wherein the storage controller is coupled to the host computer; and a filter driver for determining a data quota for each of multiple data paths wherein the data quota is determined for each of the multiple data paths by calculating; mean data length for a data path*(load balancing share for the data path/minimal load balancing share in the multiple data paths), identifying a maximum number of commands for a target logical unit, and selecting a data path on which to send a packet based on the data quota and the maximum number of commands. - View Dependent Claims (8, 9)
-
-
10. A system coupled to a network and data storage, comprising:
-
a host computer; a storage controller managing Input/Output (I/O) access to the data storage, wherein the storage controller is coupled to the host computer; and a filter driver for; determining a data transfer speed for each of multiple data paths, updating a load balancing share for each of the multiple data path proportionally to the data transfer speed of each of the multiple data paths by calculating; a data transfer speed for a selected data path divided by a data transfer, and selecting a data path on which to send a packet based on the load balancing share of each of the multiple data paths. - View Dependent Claims (11, 12)
-
-
13. An article of manufacture comprising a storage medium having stored therein instructions that when executed by a computing device results in the following:
-
determining a data quota for each of multiple data paths wherein the data quota is determined for each of the multiple data paths by calculating; mean data length for a data path*(load balancing share for the data path/minimal load balancing share in the multiple data paths); identifying a maximum number of commands for a target logical unit; and selecting a data path on which to send a packet based on the data quota and the maximum number of commands. - View Dependent Claims (14, 15)
-
-
16. An article of manufacture comprising a storage medium having stored therein instructions that when executed by a computing device results in the following:
-
determining a data transfer speed for each of multiple data paths; updating a load balancing share for each of the multiple data paths proportionally to the data transfer speed of each of the multiple data paths by calculating; a data transfer speed for a selected data path divided by a data transfer speed of the multiple data paths; and selecting a data path on which to send a packet based on the load balancing share of each of the multiple data paths. - View Dependent Claims (17, 18)
-
Specification