This invention relates to network packet communication systems and, more particularly, to load balancing within such communication systems.
Network packet communication systems include a variety of network-connected systems that facilitate, manage, or control network packet traffic within the communication system. These network-connected systems can include gateways, routers, switches, interfaces, and/or other network-connected devices or processing systems that operate at various processing levels within the communication system. With respect to these various processing levels, different packet communication protocols are often used that are not compatible with each other such that processing systems at one processing level within a packet network communication system may use protocols that are not understood by processing systems operating at other processing levels within the packet network communication system.
Network communications also include sessions and related packet flows associated with applications running on a wide variety of network-connected user devices. For example, within a network packet communication system, applications running on personal computers, mobile devices, and/or other processing platforms may form one or more communication sessions with a variety of network-connected systems, and each of these sessions can include multiple packet flows. Network management systems are often used to control various parameters associated with packet sessions and flows for applications running within a monitored network communication system. These parameters can include, for example, packet priority, bandwidth usage, and/or other session/flow parameters for the network communication system. As these application-based packet sessions/flows are often dynamic in nature, they are often formed and removed as user devices operate within the network packet communication system.
Network packet communication systems also often include network monitoring tools. These monitoring tools are used to monitor network traffic associated with the network packets being communicated within the network communication system on an ongoing basis. To meet these monitoring needs, copies of network packets can be forwarded to network packet analysis tools. Network packet analysis tools include a wide variety of devices that analyze packet traffic, including traffic monitoring devices, packet sniffers, data recorders, voice-over-IP monitors, intrusion detection systems, network security systems, application monitors and/or other network management or security devices or systems. Packets can be forwarded to these network analysis tools using network hubs, test access ports (TAPs), switched port analyzer (SPAN) ports available on network switches, and/or other techniques.
Network packet communication systems, therefore, include a wide variety of processing devices and systems that perform various functions within the network infrastructure. And these processing systems operate at different processing levels within the network packet communication system to provide a variety of operational functions for the network packet communication system. The packet protocols and packet related parameters used at these various processing levels are often significantly different and dependent upon the particular operational functions being implemented at these processing levels.
Load balancers are often used within a network communication system to balance workloads among a group of similar devices, systems, or components that perform the same or similar function. For example, a load balancer can be used to balance workloads among a group of gateway controllers; a separate load balancer can be used to balance workloads among a group of routers; and a further load balancer can be used to balance workloads among a group of network analysis tools. However, such existing load balancers have little, if any, visibility into overall network system functionality and performance. Rather, these existing load balancers are focused on balancing loads for the particular function being performed by the group of processing systems with respect to which the load balancers are balancing workloads.
Processing systems or components within a packet network communication system can also operate within virtual processing environments, such as virtual machine (VM) platforms hosted by one or more processing systems. For example, one or more of the eNodeB, MME, SGW, and/or PGW processing systems within embodiment 100 of
The VM host hardware system 300 also includes a hypervisor 352 that executes on top of the VM host operating system (OS) 354. This hypervisor 352 provides a virtualization layer including a plurality of VM platforms 356A, 356B, 356C . . . that emulate processing systems and provide related processing resources. As shown with respect to VM platform 356A, each of the VM platforms 356A, 356B, and 356C are configured to have one or more virtual hardware resources associated with it, such as a virtualized network interface card (NIC) 358A, a virtualized CPU 360A, a virtualized memory 362A, and/or other virtualized hardware resources. The VM host hardware system 300 hosts each of the VM platforms 356A, 356B, 356C . . . and makes their processing resources and results available to the external network 318 through the VM host operating system 354 and the hypervisor 352. As such, the hypervisor 352 provides a management and control virtualization interface layer for the VM platforms 356A-C. It is further noted that the VM host operating system 354, the hypervisor 352, the VM platforms 356A-C, and the virtualized hardware resources 358A/360A/362A can be implemented, for example, using computer-readable instructions stored in a non-transitory data storage medium that are accessed and executed by one or more processing devices, such as the CPU 302, to perform the functions for the VM host hardware system 300.
As indicated above, with respect to an LTE network, VM platforms within a virtualization layer can implement one or more processing systems to provide virtual functionality for a network packet communication system, such as an LTE network.
Similar to the load balancers described above with respect to
Systems and methods are disclosed for dynamic resource management for load balancing within network packet communication systems. In part, the disclosed embodiments receive operating performance information (e.g., key performance indicators (KPIs)) associated with processing systems within the packet network communication system, generate sets of load balancing rules based upon the operating performance information to adjust load balancing resources within the network packet communication system, apply the sets of load balancing rules to different load balancers within the network packet communication system, and use the load balancers to determine how packets are distributed within the network packet communication system. In addition, processing system resources can also be adjusted based upon the operating performance information (e.g., KPIs) received with respect to the processing systems and load balancers operating within the packet network communication system. Different features and variations can be implemented, as desired, and related systems and methods can be utilized, as well.
For one embodiment, a method to manage load balancing resources within a network packet communication system is disclosed that includes receiving operating performance information associated with processing systems at different processing levels within a packet network communication system, generating a plurality of sets of load balancing rules based upon the operating performance information to adjust load balancing resources within the network packet communication system where each set of load balancing rules is configured for a different load balancer within a plurality of load balancers within the network packet communication system, applying the plurality of sets of load balancing rules to the plurality of load balancers within the network packet communication system, and using the plurality of load balancers to determine how packets are distributed within the network packet communication system.
In further embodiments, at least one of the plurality of load balancers is associated with processing systems at each of the different processing levels within the network packet communication system. In still further embodiments, the method includes adjusting a number of load balancers operating within the network packet communication system based upon the operating performance information. In other embodiments, the method also includes increasing a number of load balancers operating at a first processing level and decreasing a number of load balancers operating at a second processing level based upon the operating performance information. In additional embodiments, the receiving, generating, applying, using, and adjusting steps occur within a virtual machine environment. Further, the method can also include operating at least one processing system to provide the virtual machine environment. Still further, the method can include operating a plurality of processing systems to provide the virtual machine environment.
In still further embodiments, the method includes adjusting a number of processing systems within the network packet communication system based upon the operating performance information. In other embodiments, the method includes increasing a number of processing systems operating at a first processing level and decreasing a number of processing systems operating at a second processing level based upon the operating performance information. In additional embodiments, the receiving, generating, applying, using, and adjusting steps occur within a virtual machine environment. Further, the method can include operating at least one processing system to provide the virtual machine environment. Still further, the method can include operating a plurality of processing systems to provide the virtual machine environment.
For another embodiment, a load balancing system for network packet communications is disclosed that includes a plurality of load balancers within a network packet communication system and a load balancer controller configured to manage load balancing resources. Each of the plurality of load balancers is configured to distribute packets within the network packet communication system based upon load balancing rules. The load balancer controller is configured to receive operating performance information associated with processing systems at different processing levels within the packet network communication system, to generate a plurality of sets of load balancing rules based upon the operating performance information, and to apply the plurality of sets of load balancing rules to the plurality of load balancers within the network packet communication system. Each set of load balancing rules is configured to adjust load balancing resources within the network packet communication system associated with a different load balancer within the plurality of load balancers within the network packet communication system.
In further embodiments, at least one of the plurality of load balancers is associated with processing systems at each of the different processing levels within the network packet communication system. In still further embodiments, the plurality of sets of load balancing rules are configured to adjust a number of load balancers operating within the network packet communication system based upon the operating performance information. In other embodiments, the plurality of sets of load balancing rules are configured to increase a number of load balancers operating at a first processing level and to decrease a number of load balancers operating at a second processing level based upon the operating performance information. In additional embodiments, the plurality of load balancers and the load balancer controller are configured to operate within a virtualization machine environment. Further, at least one processing device can be configured to provide the virtual machine environment. Still further, a plurality of processing devices can be configured to provide the virtual machine environment.
In still further embodiments, the plurality of sets of load balancing rules are configured to adjust a number of processing systems operating within the network packet communication system based upon the operating performance information. In other embodiments, the plurality of sets of load balancing rules are configured to increase a number of processing systems operating at a first processing level and to decrease a number of processing systems operating at a second processing level based upon the operating performance information. In additional embodiments, the plurality of load balancers and the load balancer controller are configured to operate within a virtualization machine environment. Further, at least one processing device is configured to provide the virtual machine environment. Still further, a plurality of processing devices are configured to provide the virtual machine environment.
Different and/or additional features, variations, and embodiments can also be implemented, as desired, and related systems and methods can be utilized, as well.
It is noted that the appended drawings illustrate only exemplary embodiments of the invention and are, therefore, not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
Systems and methods are disclosed for dynamic resource management for load balancing within network packet communication systems. In part, the disclosed embodiments receive operating performance information (e.g., key performance indicators (KPIs)) associated with processing systems within the packet network communication system, generate sets of load balancing rules based upon the operating performance information to adjust load balancing resources within the network packet communication system, apply the sets of load balancing rules to different load balancers within the network packet communication system, and use the load balancers to determine how packets are distributed within the network packet communication system. In addition, processing system resources can also be adjusted based upon the operating performance information (e.g., KPIs) received with respect to the processing systems and load balancers operating within the packet network communication system. Different features and variations can be implemented, as desired, and related systems and methods can be utilized, as well.
The dynamic resource management embodiments described herein adjust load balancing resources and/or other processing resources within a network packet communication system and can also utilize matrix load balancing to control the operation of load balancers within the network packet communication system. The matrix load balancing embodiments described herein provides significant flexibility in selecting and applying parameters for the load balancers operating within a network packet communication system. Instead of relying solely upon port numbers or IP (Internet Protocol) addresses within a packet, the matrix load balancer controller allows fields from multiple different sets of parameters associated with packet protocols, communication sessions/flows, applications running within the network, and/or other sets of parameters to be selected and used for load balancing. These selected parameters are used to generate a matrix of selected parameters, and this matrix of selected parameters is then used to generate load balancing rules, such as unique keys or signatures, that are applied to load balancers within the network packet communication system and used to identify and forward packets to desired network destinations. Rather than generate these unique matrix-based keys or signatures based upon one set of similar parameters (e.g., one packet protocol or one session/flow), the matrix load balancing embodiments described herein leverage a matrix of selectable parameters among a variety of sets of parameters (e.g., multiple protocols and/or sessions/flows) to allow different types of packet protocols, sessions/flows, applications, and/or other disparate packet-based parameters of the network to be forwarded to common or desired destinations based upon these unique matrix-based keys or signatures that can be generated, for example, using user selection of parameters among different sets of parameters.
The matrix load balancing embodiments will first be described in more detail with respect to
The dynamic resource management embodiments will then be described in more detail with respect to
Looking first to
For the example embodiment 500 depicted, input network packets 501 are received by a first load balancer 502. The load balancer 502 provides load balancing at a first level of processing among a first group of processing systems 504A, 504B, 504C . . . that operate to provide similar functions for this first level of processing. A second load balancer 506 receives packets from the processing system 504A, and the second load balancer 506 provides load balancing at a second level of processing among a second group of processing systems 508A, 508B, 508C . . . that operate to provide similar functions for this second level of processing. A third load balancer 510 receives packets from the processing system 508A, and the third load balancer 510 provides load balancing at a third level of processing among a third group of processing systems 512A, 512B, 512C . . . that operate to provide similar functions for this third level of processing. Although not shown, it is noted that each of the other first level processing systems 504B, 504C . . . can output packets to a separate load balancer and additional processing systems and that each of the other second level processing systems 508B, 508C . . . can output packets to a separate load balancer and additional processing systems. Other variations can also be implemented.
The matrix load balancer controller 520 communicates with each of the load balancers 502, 506, 510 . . . to provide control messages (CTRL) 524 that include load balancing rules that are applied to the load balancers 502, 506, 510 . . . to determine at least in part how the load balancers 502, 506, 510 . . . operate to distribute packets among the processing systems to which they are connected. These control messages 524 are based in part upon matrix load balancer (MX-LB) parameter selection inputs 522 that select and form a matrix of load balancing parameters that is used determine how the load balancers 502, 506, 510 . . . will work together to balance loads across the different processing levels of the embodiment 500. Further, the selected parameters can be linked by one or more Boolean operations (e.g., AND, OR, etc.) to provide greater flexibility in the control of the matrix load balancer controller 520. In addition, the matrix load balancer controller 520 also receives load balancer (LB) information 526 from each of the load balancers 502, 506, 510 . . . that can include operational information about the load balancers including the load balancing parameters used by the load balancers 502, 506, 510 . . . to determine how packets are distributed among the processing systems to which they are connected. The LB information 526 can be used by the matrix load balancer controller 520, for example, to determine sets of load balancing parameters from which parameters can be selected to form the matrix of load balancing parameters that is used to provide load balancing rules to the load balancers 502, 506, 510 . . . to control how packets are distributed, as described in more detail below. Although three groups of processing systems and three load balancers are depicted for embodiment 500, it is noted that other numbers of processing system groups and related load balancers can also be provided while still taking advantage of the matrix load balancing techniques described herein.
In operation, the matrix load balancer controller 520 provides significant flexibility in selecting and applying parameters for the load balancers it controls. Instead of relying solely upon port numbers or IP addresses within a packet, the matrix load balancer controller 520 allows any field in a packet or flow to be selected and used for load balancing. These parameter selections generate a matrix of selected parameters from various packet protocols and/or flows. This matrix of selected parameters is then used to generate a unique matrix-based key that can be used to identify packets to be forwarded to a particular destination by one or more load balancers being controlled by the matrix load balancer controller 520. Rather than generate this unique matrix-based key based upon any one packet protocol or any one flow, the matrix load balancer controller 520 leverages the matrix of selectable parameters among a variety of protocols and/or flows to allow different types of packets and flows to be forwarded to a common destination based upon these unique matrix-based keys that are generated using user selection of parameters.
For example, where load balancers are placed at different processing levels of a network, the different processing levels can employ different packet protocols and include different flows with respect to particular users. Through the matrix load balancer controller 520, as described in more detail below, a user can select parameters within the different packet protocols and packet flows that will be used to determine packets to forward to processing systems connected to the load balancers being controlled by the matrix load balancer controller 520. Further, identifiers generated for users can be dynamically determined and tracked by the matrix load balancer controller 520 through LB information 526 sent to the matrix load balancer controller 520 during operation. As such, the user can be tracked as different identifiers are generated and removed for different sessions and related flows with respect to the user. For example, temporary identifiers (IDs) generated for user equipment (UE) within an LTE network, such as a cell phone, can be tracked as they are generated, and packets having these tracked identifiers can be forwarded to a common destination by the load balancers. These identifiers can include identifiers associated with sessions between the UE and various websites or web applications (e.g., AMAZON session identifier, GOOGLE session identifier, FACEBOOK session identifier, etc.). By allowing selection of fields across various packet protocols and flows/sessions within the network packet communication system, the matrix load balancer controller 520 allows for packets associated with various flows and packet protocols within the network packet communication system to be tracked and forwarded to desired destinations connected to the load balancers being controlled by the matrix load balancer controller within the network.
It is noted that the matrix load balancer controller 520 can be implemented using one or more operational modules, and these operational modules can be operated on one or more separate processing devices or systems. For example, a portion of the operational modules for the matrix load balancer controller 520 could operate on one or more processing systems at a first geographic location, and another portion of the operational modules for the matrix load balancer controller 520 could operate on one or more processing systems at a second geographic location. The processing systems at the two different geographic locations can then communicate with each other to facilitate the overall operation of the matrix load balancer controller 520. As described further below, the matrix load balancer controller 520 can also be implemented as part of one or more virtual environments. Other variations could also be implemented.
As described above, the matrix load balancer controller 520 communicates with each of the load balancers 502, 506, 510 . . . to provide control messages (CTRL) 524 including load balancing rules that are applied to the load balancers 502, 506, 510 . . . to determine at least in part how the load balancers 502, 506, 510 . . . operate to distribute packets among the processing systems to which they are connected. As above, these control messages 524 are based in part upon matrix load balancer (MX-LB) parameter selection inputs 522 that select and form a matrix of load balancing parameters that is used determine how the load balancers 502, 506, 510 . . . will work together to balance loads across the different processing levels of the embodiment 600. Although three groups of processing systems and three load balancers are depicted for the LTE embodiment 600, it is noted that other numbers of processing system groups and related load balancers can also be provided while still taking advantage of the matrix load balancing embodiments techniques described herein.
As described above, the virtual matrix load balancer controller 520 communicates with each of the load balancers 502/506/510 to provide control messages (CTRL) 524 to the load balancers 502/506/510 to determine at least in part how the load balancers 502/506/510 operate to distribute packets among the processing systems to which they are connected. These control messages 524 are based in part upon matrix load balancer (MX-LB) parameter selection inputs 522 that select and form a matrix of load balancing parameters that is used determine how the load balancers 502, 506, 510 . . . will work together to balance loads across the different processing levels of the embodiment 700. Although two groups of processing systems and two load balancers are depicted for the virtual LTE processing embodiment 700, it is noted that other numbers of processing system groups and related load balancers can also be provided while still taking advantage of the matrix load balancing techniques described herein. It is further noted that processing system platforms 410 can be implemented, for example, using computer-readable instructions stored in a non-transitory data storage medium that are accessed and executed by one or more processing devices to perform the functions for the processing system platforms 410. It is also noted that the processing system platforms 410 can be implemented, for example, using one or more processing devices such as processors and/or configurable logic devices. Processors (e.g., microcontrollers, microprocessors, central processing units, etc.) can be programmed and used to control and implement the functionality described herein, and configurable logic devices such as CPLDs (complex programmable logic devices), FPGAs (field programmable gate arrays), and/or other configurable logic devices can also be programmed to perform desired functionality. Other variations could also be implemented.
As indicated above,
The matrix generator and LB rules engine 802 receives and processes the selected parameters 810A, 810B, 810C . . . to form a matrix of load balancing parameters and to generate control messages 524A, 524B, 524C that when applied to the load balancers will implement the load balancing selections made through the various parameter selection modules. As depicted, control messages 524A are applied to load balancers 502A, 502B, 502C . . . that are operating to perform processing at a first level; control messages 524B are applied to load balancers 506A, 506B, 506C . . . that are operating to perform processing at a second level; and control messages 524C are applied to load balancers 510A, 510B, 5102 . . . that are operating to perform processing at a third level. Different and/or additional control messages and load balancers could also be utilized while still taking advantage of the matrix load balancing techniques described herein.
As described above, it is also noted that the matrix load balancer controller 520 can receive load balancer information 526 from the load balancers 502A-C/506A-C/510A-C that includes operational information about the load balancers including parameters used by the load balancers during operation. Further, it is noted that the matrix load balancer controller 520 can use this load balancer information 526 to determine the parameters to make available for selection within the parameter selection modules 802A-C, 804A-C, and 806A-C. Other variations can also be implemented.
The matrix load balancer controller 520 can also provide a graphical user interface (GUI) 912, for example, as part of the matrix generator and LB rules engine 820. For example, selectable parameters for the selection modules 910 can be displayed to a user through the GUI 912, and the user can provide control inputs 522 that select one or more parameters within the selection modules 910. The selected parameters 810 can then be provided back to the parameter selection processor 902 which can store the selected parameters as one or more sets of matrix data 918A, 918B, 918C . . . within a matrix data storage system 916. As such, this matrix data 918A, 918B, 918C . . . can then be output as a matrix of LB parameters 920 to a rules engine as described below with respect to
The matrix load balancer controller 520, for example within the parameter selection processor 902, can further include a parameter tracking engine 908 that can be configured to track one or more parameters associated with the packet network communication system. For example, as described further below, it may be desirable to track user identification information that is generated and deleted with respect to user sessions and/or related packet flows within the packet network communication system. These parameters can be provided to the parameter tracking engine 908 as part of the LB information 526 communicated by the load balancers to the matrix load balancer controller 520. The parameter tracking engine 908 can further be used to adjust data stored in the matrix data storage system 916, and the matrix data 918A, 918B, 918C . . . stored for parameter selections made through the selection modules 910. In particular, the parameter tracking engine 908 can adjust the data within the matrix data 918A, 918B, 918C . . . , such as user ID information, as it changes dynamically over time within the packet network communication system.
As indicated above,
Looking back to
The matrix load balancer controller 520 communicates with each of the load balancers 1302, 1304, 1306 . . . to provide control messages (CTRL) 524 to the load balancers 1302, 1304, 1306 . . . to determine at least in part how the load balancers 1302, 1304, 1306 . . . operate to distribute packets among the processing systems to which they are connected, as described above. Further, the particular control messages 1312 to the load balancer 1302 in part determine a number (Z) of load balancers that will operate at a first processing level. The particular control messages 1314 to the load balancer 1304 in part determine a number (M) of load balancers that will operate at a second processing level. And the particular control messages 1316 to the load balancer 1306 in part determine a number (N) of load balancers that will operate at a third processing level. The resource manager 1325 determines the number of load balancer resources to utilize based upon resource control information 1322 received from the KPI processor 1320, and the resource manager 1325 sends the appropriate resource (UP/DOWN) instructions within control messages 1312, 1314, and 1316 to adjust the number of load balancers at the different processing levels. Although three groups of processing systems and three adjustable load balancers are depicted for embodiment 1300, it is noted that other numbers of processing system groups and related load balancers can also be provided while still taking advantage of the matrix load balancing techniques described herein.
The KPI processor 1320 can be configured to receive key performance information from a variety of operational nodes within the network packet communication system. As depicted, KPI information 1303 associated with the first level processing systems, KPI information 1305 associated with the second level processing systems, and KPI information 1307 associated with the third level processing systems are all provided to the KPI processor 1320. Load balancer KPI information 1308 associated with the operation of the load balancers 1302/1304/1306 can also be sent from the matrix load balancer controller 520 to the KPI processor. This load balancer KPI information 1308 can be received by the matrix load balancer controller 520 within the LB information 526 received from the load balancers 1302/1304/1306, and this load balancer (LB) KPI information 1308 can be then be forwarded to the KPI processor 1320. The KPI processor 1320 analyzes the KPI information and determines resource adjustments to facilitate more efficient load balancing for the packet processing within the network packet communication system. The KPI processor 1320 then outputs the resource control messages 1322 to the matrix load balancer controller 520 that then provides for adjustments to the load balancing and/or other processing resources through the control messages 524.
The KPI information associated with operation of the load balancers 1302/1304/1306 and the KPI information 1303/1305/1307 associated with operation of the processing systems can be any of a wide variety of performance information that is considered important, key, or otherwise relevant to the operation of the various components of the network packet communication system. For example, packet delay information, processing bandwidth, processing speed, processing delays, and/or other information can be used as key performance information (KPI) that is provided to the KPI processor 1320.
As described above, the matrix load balancer controller 520 communicates with each of the load balancers 1302/1304/1306 to provide control messages (CTRL) 524 to the load balancers 1302/1304/1306 . . . to determine at least in part how the load balancers 1302/1304/1306 operate to distribute packets among the processing systems to which they are connected. Further, the particular control messages 1312 to the load balancer 1302 determines a number (Z) of load balancers that will operate at this first processing level. The particular control messages 1314 to the load balancer 1304 determines a number (M) of load balancers that will operate at this second processing level. And the particular control messages 1316 to the load balancer 1306 determines a number (N) of load balancers that will operate at this third processing level. As described above, the resource manager 1325 determines the number of load balancer resources to utilize based upon resource control information 1322 received from the KPI processor 1320, and the resource manager 1325 sends the appropriate resource (UP/DOWN) instructions within control messages 1312, 1314, and 1316 to adjust the number of load balancers at the different processing levels. Although three groups of processing systems and three load balancers are depicted for the LTE embodiment 1400, it is noted that other numbers of processing system groups and related load balancers can also be provided while still taking advantage of the matrix load balancing embodiments techniques described herein.
Although not shown with respect to
The KPI processor 1320 is again configured to receive key performance information from a variety of operational nodes within the network packet communication system. As depicted, KPI information 1303 associated with the MME processing systems, KPI information 1305 associated with the SGW processing systems, and KPI information 1307 associated with the PGW processing systems are all provided to the KPI processor 1320. Load balancer KPI information 1308 associated with the operation of the load balancers 1302/1304/1306 can also be sent from the matrix load balancer controller 520 to the KPI processor. This load balancer KPI information can be received by the matrix load balancer controller 520 within the LB information 526 received from the load balancers 1302/1304/1306, and this KPI information can be then be forwarded to the KPI processor 1320. The KPI processor 1320 analyzes the KPI information and determines resource adjustments to facilitate more efficient packet processing within LTE network. The KPI processor 1320 then outputs the resource control messages 1322 to the matrix load balancer controller 520 that provides for adjustments to the load balancing and/or other resources through the control messages 524 and more particular, through the particular control messages 1312/1314/1316 to each of the load balancer processing levels.
As described above, the virtual matrix load balancer controller 520 communicates with each of the load balancers 1302/1304/1306 to provide control messages (CTRL) 524 to the load balancers 1302/1304/1306 to determine at least in part how the load balancers 1302/1304/1306 operate to distribute packets among the processing systems to which they are connected. Further, the particular control messages 1312 to the load balancer 1302 determines a number (Z) of load balancers that will operate at this first processing level. The particular control messages 1314 to the load balancer 1304 determines a number (M) of load balancers that will operate at this second processing level. And the particular control messages 1316 to the load balancer 1306 determines a number (N) of load balancers that will operate at this third processing level. As described above, the resource manager 1325 determines the number of load balancer resources to utilize based upon resource control information 1322 received from the KPI processor 1320, and the resource manager 1325 sends the appropriate resource (UP/DOWN) instructions within control messages 1312, 1314, and 1316 to adjust the number of load balancers at the different processing levels. Although two groups of processing systems and two load balancers are depicted for the virtual LTE processing embodiment 1500, it is noted that other numbers of processing system groups and related load balancers can also be provided while still taking advantage of the matrix load balancing techniques described herein.
As described above, the particular control messages 1312/1314/1316 also include resource control messages associated with the processing resources to which the load balancers are connected. As such, the load balancer 1302 for embodiment 1500 provides resource control messages 1422 to the processing systems 410 to which it is connected, and these resource control messages 1422 at least in part determine the number and types of processing resources put into operation by these processing systems. Similarly, the load balancer 1304 for embodiment 1500 provides resource control messages 1424 to the processing systems 708A, 708B . . . 708C to which it is connected, and these resource control messages 1424 at least in part determine the number and types of processing resources put into operation by these processing systems. Further, the load balancer 1306 for embodiment 1500 provides resource control messages 1426 to the processing systems 704A, 704B . . . 704C to which it is connected, and these resource control messages 1426 at least in part determine the number and types of processing resources put into operation by these processing systems. The processing resources at each of these processing levels can be adjusted, for example, to adjust a number of processing systems being used and/or to adjust an amount or types of resources being used by the processing systems.
The KPI processor 1320 is again configured to receive key performance information from a variety of operational nodes within the network packet communication system. As depicted, KPI information 1305 associated with the SGW processing systems, KPI information 1307 associated with the PGW processing systems, and/or other KPI information is provided to the KPI processor 1320. Load balancer KPI information 1308 associated with the operation of the load balancers 1302/1304/1306 can also be sent from the matrix load balancer controller 520 to the KPI processor. This load balancer KPI information can be received by the matrix load balancer controller 520 within the LB information 526 received from the load balancers 1302/1304/1306, and this KPI information can be then be forwarded to the KPI processor 1320. The KPI processor 1320 analyzes the KPI information and determines resource adjustments to facilitate more efficient packet processing within LTE network. The KPI processor 1320 then outputs the resource control messages 1322 to the matrix load balancer controller 520 that provides for adjustments to the load balancing and/or other resources through the control messages 524 and more particular, through the particular control messages 1312/1314/1316 to each of the load balancer processing levels.
It is noted that the operational and functional blocks described herein can be implemented using hardware, software or a combination of hardware and software, as desired. In addition, integrated circuits, discrete circuits or a combination of discrete and integrated circuits can be used, as desired, that are configured to perform the functionality described. Further, configurable logic devices can be used such as CPLDs (complex programmable logic devices), FPGAs (field programmable gate arrays), ASIC (application specific integrated circuit), and/or other configurable logic devices. In addition, one or more processors running software or firmware could also be used, as desired. For example, computer readable instructions embodied in a tangible medium (e.g., memory storage devices, FLASH memory, random access memory, read only memory, programmable memory devices, reprogrammable storage devices, hard drives, floppy disks, DVDs, CD-ROMs, and/or any other tangible storage medium) could be utilized including instructions that cause computer systems, processors, programmable circuitry (e.g., FPGAs, CPLDs), and/or other processing devices to perform the processes, functions, and capabilities described herein. It is further understood, therefore, that one or more of the tasks, functions, or methodologies described herein may be implemented, for example, as software or firmware and/or other instructions embodied in one or more non-transitory tangible computer readable mediums that are executed by a CPU (central processing unit), controller, microcontroller, processor, microprocessor, FPGA, CPLD, ASIC, or other suitable processing device or combination of such processing devices.
Further modifications and alternative embodiments of this invention will be apparent to those skilled in the art in view of this description. It will be recognized, therefore, that the present invention is not limited by these example arrangements. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the manner of carrying out the invention. It is to be understood that the forms of the invention herein shown and described are to be taken as the presently preferred embodiments. Various changes may be made in the implementations and architectures. For example, equivalent elements may be substituted for those illustrated and described herein, and certain features of the invention may be utilized independently of the use of other features, all as would be apparent to one skilled in the art after having the benefit of this description of the invention.
This application is related to the following concurrently filed patent application: U.S. patent application Ser. No. ______, which is entitled “MATRIX LOAD BALANCING WITHIN NETWORK PACKET COMMUNICATION SYSTEMS,” which is hereby incorporated by reference in its entirety.