Load balancing and failover
First Claim
1. A method for static load balancing, comprising:
- receiving input parameters of a list of data paths in a network adapter team, a total number of bytes transferred across the data paths in the network adapter team, a load balancing share of each data path, and a number of bytes transferred on each data path, wherein the load balancing share represents a percentage of a total read or write workload that a given data path in the network adapter team can take, wherein the load balancing share for at least one data path is different for a read workload and a write workload, wherein the load balancing share is specified by a user;
for each data path in a network adapter team, computing a load balancing value by;
dividing the total number of bytes by the number of bytes transferred on the data path to generate a first value; and
multiplying the first value by the load balancing share of the data path;
determining a maximum value of the computed load balancing values; and
selecting a data path with the maximum value for use in routing data.
2 Assignments
0 Petitions
Accused Products
Abstract
Provided are techniques for static load balancing. For each data path in a network adapter team, a load balancing value is computed. A maximum value of the computed load balancing values is determined. A data path with the maximum value is selected for use in routing data. Also provided are techniques for dynamic load balancing in which, when a load balancing share of a data path is less than an actual load balancing share, the load balancing share of the data path is adjusted. Furthermore, provided are techniques for failover processing in which a command is routed through a second network adapter in response to determining that the command may not be routed through a first network adaptor.
-
Citations
27 Claims
-
1. A method for static load balancing, comprising:
-
receiving input parameters of a list of data paths in a network adapter team, a total number of bytes transferred across the data paths in the network adapter team, a load balancing share of each data path, and a number of bytes transferred on each data path, wherein the load balancing share represents a percentage of a total read or write workload that a given data path in the network adapter team can take, wherein the load balancing share for at least one data path is different for a read workload and a write workload, wherein the load balancing share is specified by a user; for each data path in a network adapter team, computing a load balancing value by; dividing the total number of bytes by the number of bytes transferred on the data path to generate a first value; and multiplying the first value by the load balancing share of the data path; determining a maximum value of the computed load balancing values; and selecting a data path with the maximum value for use in routing data.
-
-
2. A method for dynamic load balancing, comprising:
-
receiving input parameters of a list of data paths in the network adapter team, a total number of bytes transferred by the network adapter team in a last time frame, a load balancing share of each data path in the last time frame, and a number of bytes transferred on each data path in the last time frame; computing an actual load balancing share for each data path in a network adapter team by dividing the number of bytes transferred on that data path by a total number of bytes transferred by the network adapter team in the last time frame; computing a difference load balancing value for each data path in the network adapter team by subtracting the load balancing share of the data path from the actual load balancing share of the data path; for each data path, determining whether the load balancing share for the data path in the last time frame is less than the actual load balancing share for the data path; and in response to determining that the load balancing share is less than the actual load balancing share, adjusting the load balancing share of the data path by; determining whether a difference between the load balancing share and the actual load balancing share is less than a change threshold; and in response to determining that the difference between the load balancing share and the actual load balancing share is less than the change threshold, reducing the load balancing share of the data path; selecting another data path based on the difference load balancing value of each data path; and increasing the load balancing share of the selected data path. - View Dependent Claims (3, 4, 5)
-
-
6. A method for failover processing, comprising:
under control of a failover component, intercepting a command issued to a target; determining whether a mode is failover mode or failover and load balancing mode, wherein a first network adapter in a network adapter team is used to route data to the target and a second network adapter in the network adapter team is quiescent with respect to the target in the failover mode, and wherein the first network adapter and the second network adapter are used to route data to the target in the failover and load balancing mode; in response to determining that the mode is the failover and load balancing mode, working with a load balancing component to perform load balancing based on load balancing shares of data paths in the network adapter team; determining whether the command is capable of being routed through a first network adapter in the network adapter team to the target; routing the command through the first network adapter in response to determining that the command is capable of being routed through the first network adapter; routing the command through a second network adapter in the network adapter team in response to determining that the command is not capable of being routed through the first network adapter; and determining whether to switch between the failover mode and the failover and load balancing mode based on the load balancing shares of data paths between the network adapters in the network adapter team and the target, wherein, when one data path has a hundred percent load balancing share, then failover mode is used. - View Dependent Claims (7, 8, 9)
-
10. A system for static load balancing, comprising:
-
multiple data paths forming a network adapter team; and circuitry, in a load balancing component that is coupled to a bus, operable to; receive input parameters of a list of data paths in a network adapter team, a total number of bytes transferred across the data paths in the network adapter team, a load balancing share of each data path, and a number of bytes transferred on each data path, wherein the load balancing share represents a percentage of a total read or write workload that a given data path in the network adapter team can take, wherein the load balancing share for at least one data path is different for a read workload and a write workload, wherein the load balancing share is specified by a user; for each data path in a network adapter team, compute a load balancing value by; dividing the total number of bytes by the number of bytes transferred on the data path to generate a first value; and multiplying the first value by the load balancing share of the data path; determine a maximum value of the computed load balancing values; and select a data path with the maximum value for use in routing data.
-
-
11. A system for dynamic load balancing, comprising:
-
multiple data paths forming a network adapter team; and circuitry, in a load balancing component that is coupled to a bus, operable to; receive input parameters of a list of data paths in the network adapter team, a total number of bytes transferred by the network adapter team in a last time frame, a load balancing share of each data path in the last time frame, and a number of bytes transferred on each data path in the last time frame; compute an actual load balancing share for each data path in a network adapter team by dividing the number of bytes transferred on that data path by a total number of bytes transferred by the network adapter team in the last time frame; compute a difference load balancing value for each data path in the network adapter team by subtracting the load balancing share of the data path from the actual load balancing share of the data path; for each data path, determine whether the load balancing share for the data path in the last time frame is less than the actual load balancing share for the data path; and in response to determining that the load balancing share is less than the actual load balancing share, adjust the load balancing share of the data path by; determining whether a difference between the load balancing share and the actual load balancing share is less than a change threshold; and in response to determining that the difference between the load balancing share and the actual load balancing share is less than the change threshold, reducing the load balancing share of the data path; selecting another data path based on the difference load balancing value of each data path; and increasing the load balancing share of the selected data path. - View Dependent Claims (12, 13, 14)
-
-
15. A system for failover processing, comprising:
-
a first network adapter in a network adapter team; a second network adapter in the network adapter team; a failover component; a load balancing component; and circuitry, in the failover component coupled to a bus, operable to; intercept a command issued to a target; determine whether a mode is failover mode or failover and load balancing mode, wherein the first network adapter is used to route data to the target and the second network adapter is quiescent with respect to the target in the failover mode, and wherein the first network adapter and the second network adapter are used to route data to the target in the failover and load balancing mode; in response to determining that the mode is the failover and load balancing mode, work with a load balancing component to perform load balancing based on load balancing shares of data paths in the network adapter team; determine whether the command is capable of being routed through the first network adapter to the target; route the command through the first network adapter in response to determining that the command is capable of being routed through the first network adapter; route the command through the second network adapter in response to determining that the command is not capable of being routed through the first network adapter; and determine whether to switch between the failover mode and the failover and load balancing mode based on the load balancing shares of data paths between the network adapters in the network adapter team and the target, wherein, when one data path has a hundred percent load balancing share, then failover mode is used. - View Dependent Claims (16, 17, 18)
-
-
19. An article of manufacture comprising a computer readable medium storing code for static load balancing, wherein the code, when executed on a processor, is operable to:
-
receive input parameters of a list of data paths in a network adapter team, a total number of bytes transferred across the data paths in the network adapter team, a load balancing share of each data path, and a number of bytes transferred on each data path, wherein the load balancing share represents a percentage of a total read or write workload that a given data path in the network adapter team can take, wherein the load balancing share for at least one data path is different for a read workload and a write workload, wherein the load balancing share is specified by a user; for each data path in a network adapter team, compute a load balancing value by; dividing the total number of bytes by the number of bytes transferred on the data path to generate a first value; and multiplying the first value by the load balancing share of the data path; determine a maximum value of the computed load balancing values; and select a data path with the maximum value for use in routing data.
-
-
20. An article of manufacture comprising a computer readable medium storing code for dynamic load balancing, wherein the code, when executed on a processor, is operable to:
-
receive input parameters of a list of data paths in the network adapter team, a total number of bytes transferred by the network adapter team in a last time frame, a load balancing share of each data path in the last time frame, and a number of bytes transferred on each data path in the last time frame; compute an actual load balancing share for each data path in a network adapter team by dividing the number of bytes transferred on that data path by a total number of bytes transferred by the network adapter team in the last time frame; compute a difference load balancing value for each data path in the network adapter team by subtracting the load balancing share of the data path from the actual load balancing share of the data path; for each data path, determine whether the load balancing share for the data path in the last time frame is less than the actual load balancing share for the data path; and in response to determining that the load balancing share is less than the actual load balancing share, adjust the load balancing share of the data path by; determining whether a difference between the load balancing share and the actual load balancing share is less than a change threshold; and in response to determining that the difference between the load balancing share and the actual load balancing share is less than the change threshold, reducing the load balancing share of the data path; selecting another data path based on the difference load balancing value of each data path; and increasing the load balancing share of the selected data path. - View Dependent Claims (21, 22, 23)
-
-
24. An article of manufacture comprising a computer readable medium storing code for failover processing, wherein the code, when executed on a processor, is operable to:
under control of a failover component, intercept a command issued to a target; determine whether a mode is failover mode or failover and load balancing mode, wherein a first network adapter in a network adapter team is used to route data to the target and a second network adapter in the network adapter team is quiescent with respect to the target in the failover mode, and wherein the first network adapter and the second network adapter are used to route data to the target in the failover and load balancing mode; in response to determining that the mode is the failover and load balancing mode, work with a load balancing component to perform load balancing based on load balancing shares of data paths in the network adapter team; determine whether the command is capable of being routed through a first network adapter in the network adapter team to the target; route the command through the first network adapter in response to determining that the command is capable of being routed through the first network adapter; route the command through a second network adapter in the network adapter team in response to determining that the command is not capable of being routed through the first network adapter; and determine whether to switch between the failover mode and the failover and load balancing mode based on the load balancing shares of data paths between the network adapters in the network adapter team and the target, wherein, when one data path has a hundred percent load balancing share, then failover mode is used. - View Dependent Claims (25, 26, 27)
Specification