Methods, systems, and program products for performing inbound load balancing
Patent Information
- Application Number
- CN202180027440.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-04-09
- Filing Date
- 2021-03-04
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2041-03-04
Smart Images

Figure CN115380279B_ABST
Abstract
Description
Background Technology
[0001] The embodiments described herein generally relate to processing systems, and more specifically, to inbound traffic in processing systems that dynamically balance multiple network interfaces.
[0002] Processing systems (e.g., laptop computing systems, desktop computing systems, server computing systems, tablet computing systems, etc.) may include one or more network interface cards (NICs) that enable the processing system to communicate with other processing systems. In some cases, one or more NICs enable the processing system to connect to a network (e.g., the Internet, local area network, wide area network, etc.). Summary of the Invention
[0003] Embodiments of the present invention relate to inbound traffic in a processing system that dynamically balances and enables multiple network interfaces.
[0004] One non-limiting example computer-implemented method includes registering at least one of a plurality of Virtual Internet Protocol Addresses (VIPAs) with each of a plurality of network adapters. The method also includes allocating inbound data among the plurality of network adapters using Address Resolution Protocol (ARP).
[0005] Other embodiments of the present invention implement the features of the above-described method in computer systems and computer program products.
[0006] Additional technical features and benefits are achieved through the technology of this invention. Embodiments and aspects of the invention are described in detail herein and are considered part of the claimed subject matter. For a better understanding, refer to the detailed description and accompanying drawings. Attached Figure Description
[0007] To facilitate identification of any particular element or action being discussed, the highest significant digit in the reference numerals refers to the drawing number in which the element was first introduced.
[0008] Figure 1 A block diagram of a processing system according to one or more embodiments described herein is shown.
[0009] Figure 2 A method for performing inbound load balancing according to one embodiment is shown.
[0010] Figure 3 A block diagram of a processing system having multiple Open System Adapters according to one or more embodiments described herein is shown. The Open System Adapters have virtual Internet Protocol addresses assigned to them according to a polling technique.
[0011] Figure 4A block diagram of a processing system having multiple Open System Adapters according to one or more embodiments described herein is shown. The Open System Adapters have virtual Internet Protocol addresses assigned to them according to a polling technique.
[0012] Figure 5 One or more embodiments according to the description herein are shown. Figure 4 The diagram shows the processing system block diagram, where the Open Systems Adapter has virtual Internet Protocol addresses that are reassigned to it according to load balancing technology.
[0013] Figure 6 A block diagram of a processing system for implementing the presently described technology, according to one or more embodiments described herein, is shown.
[0014] The schematic diagrams shown herein are illustrative. Many variations may be made to the schematic diagrams or operations described therein without departing from the scope of the invention. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. Furthermore, the term "coupling" and its variations describe a communication path between two elements and do not imply a direct connection between the elements without any intermediate elements / connections between them. All such variations are considered part of the specification. Detailed Implementation
[0015] One or more embodiments of the present invention provide dynamic balancing of inbound traffic in a processing system with multiple network interfaces enabled. In some environments, the processing system is configured with multiple network interface cards (NICs) on a virtual local area network (VLAN) for redundancy; NICs are also referred to as network adapters. Network adapters such as those described herein can utilize Address Resolution Protocol (ARP) offloading support. As an example, IBM's z / OS network environment utilizes Open Systems Adapters (OSAs) as network adapters. In some environments, multiple Virtual Internet Protocol Addresses (VIPAs) represent multiple applications and prevent connection loss in the event of network adapter (i.e., network adapter) failure.
[0016] Figure 1 A block diagram of a processing system 102 according to aspects of this disclosure is depicted. This example processing system 102 includes a processing device 104 and a memory 106. According to aspects of this disclosure, the techniques described herein can be implemented using a combination of hardware and programming. The program can be processor-executable instructions stored in tangible memory, and the hardware can include the processing device 104 for executing those instructions. Therefore, the system memory (e.g., memory 106) can store program instructions that, when executed by the processing device 104, implement the techniques described herein.
[0017] Processing system 102 may also include one or more network adapters (e.g., Figure 6 Network adapter 616). In Figure 1 In this example, processing system 102 includes two network adapters, referred to as Open Systems Adapters (OSA), as follows: network adapter 108 and network adapter 110. Each of network adapters 108 and 110 is communicatively connected to network device 116 via network 112, such as... Figure 1 The arrows indicate wired and / or wireless links. It should be understood that this technology can be used with other numbers and / or types of network adapters; for example, additional OSAs can be used, including three, four, five, six, etc. For instance, utilizing more than one network adapter for redundancy can be useful, providing load balancing, resilience, etc. In a load-balancing scenario, network traffic can be distributed across multiple interfaces, and in a resilient scenario, a network adapter failure will not cut off network access to the processing system because another network adapter can support network communication.
[0018] Network 112 represents any one or a combination of different types of suitable communication networks, such as cable networks, public networks (e.g., the Internet), private networks, wireless networks, cellular networks, or any other suitable private and / or public networks. Furthermore, network 112 may have any suitable communication range associated with it and may include, for example, global networks (e.g., the Internet), metropolitan area networks (MANs), wide area networks (WANs), local area networks (LANs), or personal area networks (PANs). Additionally, network 112 may include any type of medium capable of carrying network traffic, including but not limited to coaxial cable, twisted pair, optical fiber, hybrid fiber-coaxial (HFC) media, microwave terrestrial transceivers, radio frequency communication media, satellite communication media, or any combination thereof. In some examples, network 112 includes a switching structure 114 that exchanges network services / data between devices, such as between processing system 102 and network device 116.
[0019] exist Figure 1In the example shown, the processing system 102, configured and arranged as illustrated, utilizes network adapters 108 and 110 on the same subnet. This configuration is useful for static routing (i.e., when dynamic routing is not used). This enables the use of a flat Layer 2 network. The processing system 102 can utilize a multihomed approach, where each interface (i.e., network adapters 108 and 110) is provided as a separate Internet Protocol (IP) interface to the stack and network 112 executing on the processing system 102. In such an example, the network layer of each stack sees multiple IP interfaces, which can be accessed and controlled individually. Network 112 also sees multiple IP interfaces, which can be routed to individually. Each IP interface uses its own IP address. In other examples, the processing system 102 can utilize network adapters 108 and 110 on different subnets. This approach is useful when dynamic routing is used.
[0020] In an IBM z / OS network environment, it might be desirable to configure multiple network adapters (e.g., network adapter 108, network adapter 110) on a single Virtual Local Area Network (VLAN) for redundancy. It would also be desirable to use multiple Virtual IP Addresses (VIPAs) to represent multiple applications and prevent connection loss in the event of a network adapter failure. This is efficient because each VIPA on the stack can be reached from any network adapter (e.g., any one of network adapters 108, 110). When a VIPA is defined in the same subnet as one of network adapters 108, 110, or 110, network adapter 110 is responsible for responding to Address Resolution Protocol (ARP) requests and sending gratuitous ARPs for the VIPA. This network adapter (e.g., one of network adapters 108, 110) is referred to as the "VIPA owner," and because it is the VIPA owner, its MAC address (virtual or real) is perceived by the rest of network 112 as the MAC address of each VIPA registered to it.
[0021] Because a single network adapter acts as the owner of a VIPA, all inbound packets destined for any VIPA will pass through that network adapter, excluding any other OSAs that would otherwise be available for inbound traffic on the same subnet. This can overload the single network adapter, leading to potential packet loss, performance issues, and unbalanced use of the network adapter.
[0022] Some traditional methods utilize link aggregation. However, link aggregation is not a feature supported by IBM on z / OS. Other traditional methods use Layer 3 dynamic routing protocols such as Open Shortest Path First (OSPF) to advertise VIPA addresses through each OSA. However, this solution is undesirable in smaller, less complex networks due to the processing and management burden imposed on z / OS by implementing dynamic routing.
[0023] Therefore, this technology addresses these and other drawbacks of conventional methods by providing a technique for balancing inbound traffic across OSA in a z / environment. More specifically, the VIPA owner function is implemented by registering each VIPA (using Transmission Control Protocol / Internet Protocol (TCP / IP)) to a single qualified network adapter that exists in the same subnet as the VIPA. According to one or more embodiments described herein, inbound traffic is distributed across available network adapters by registering applicable VIPAs on qualified network adapters. For example, applicable VIPAs can be registered evenly on qualified network adapters (e.g., for 100 VIPAs and 4 OSA adapters in the same subnet, 25 VIPAs are registered / assigned to each network adapter). In some examples, the inbound packet count or data count for each VIPA is monitored, for example, at set time intervals, and individual VIPAs can be re-registered to different OSA to better balance the packet / data counts on the network adapters.
[0024] Figure 2 A method 200 for performing inbound load balancing according to one embodiment is shown. Method 200 can be performed by any suitable processing system (e.g., processing system 102, processing system 600, etc.), any suitable processing device (e.g., processing device 104, processing device 602, etc.), and / or combinations thereof. Reference Figure 1 , Figure 3 , Figure 4 and Figure 5 Method 200 is described, but not limited to it. In particular, Figure 3 , Figure 4 and Figure 5 Various embodiments of four network adapters having seven VIPAs registered therein are described. Referring to these three figures, the first digit of the component numbers differs from the figure numbers, but these three figures otherwise depict and refer to the same network adapter / VIPA. For example, in different embodiments, VIPA 310, VIPA 410, and VIPA 510 are the same VIPA. Similarly, in different embodiments, network adapter 302, network adapter 402, and network adapter 502 are the same OSA.
[0025] In box 202, method 200 includes processing system 102 registering at least one of a plurality of Virtual Internet Protocol Addresses (VIPAs) to each of a plurality of Open Systems Adapters (OSAs). Registration means that the OSA interface of the network adapter will send gratuitous ARP packets and respond to ARP requests for the registered VIPA address. In box 204, method 200 includes distributing inbound data among the plurality of network adapters by each of the plurality of network adapters using Address Resolution Protocol (GRP) (gratuitous and responding). Now refer to Figure 3 , Figure 4 and Figure 5 Describe the features and functions of boxes 202 and 204.
[0026] refer to Figure 3 As an example, a block diagram of a processing system 300 with four open system adapters (i.e., network adapter 302, network adapter 304, network adapter 306, and network adapter 308) is depicted. The processing system 300 also includes seven virtual IP addresses (i.e., VIPA 310, VIPA 312, VIPA 314, VIPA 316, VIPA 318, VIPA 320, and VIPA 322), which are registered to network adapters 302, 304, 306, and 308 as shown. In this example, according to one or more embodiments described herein, VIPA is registered based on round-robin registration. That is, VIPA 310 is assigned to network adapter 302, then VIPA 312 is registered to network adapter 304, VIPA 314 is registered to network adapter 306, and VIPA 316 is registered to network adapter 308. Once each network adapter has a VIPA registered to it, the polling registration of additional VIPAs is repeated: VIPA 318 is registered to network adapter 302, VIPA 320 is registered to network adapter 304, and VIPA 322 is registered to network adapter 306.
[0027] According to another embodiment, byte count registration is performed. Byte count registration begins with polling registration (see...). Figure 3Then, the inbound byte count is measured at set time intervals. After the set time intervals, the inbound byte count for each OSA is compared. For example, if the difference between the totals exceeds a threshold, a rebalancing is initiated. During rebalancing, one or more VIPAs can move their registrations to different network adapters, thus more evenly balancing the VIPA's intra-byte count across network adapters. In some examples, the inbound byte count may take into account non-VIPA packets. In some examples, moving a VIPA causes the network adapter it moves to to perform gratuitous ARPs, causing the VIPA's inbound traffic to start flowing to it instead of its previous owner.
[0028] Figure 4 and Figure 5 A block diagram of a processing system 400 with four open system adapters (i.e., network adapter 402 / 502, network adapter 404 / 504, network adapter 406 / 506, and network adapter 408 / 508) is shown together. Figure 3 The example is similar; first, register using the polling registration method described here. Figure 4 The network adapter in the example. However, in this example, inbound data for each of VIPA 410, VIPA 412, VIPA 414, VIPA 416, VIPA 418, VIPA 420, and VIPA 422 is monitored at set time intervals (e.g., 20 seconds, 45 seconds, 1 minute, 2 minutes, 5 minutes, etc.).
[0029] In other words, such as Figure 2 As shown in block 204, method 200 includes processing system 102 distributing inbound data among a plurality of OSAs (i.e., network adapters 402 / 502, 404 / 504, 406 / 506, 408 / 508). While inbound data is distributed among each of the plurality of OSAs, processing system 102 monitors how much inbound data is received at each VIPA (e.g., VIPA 410, VIPA 412, VIPA 414, VIPA 416, VIPA 418, VIPA 420, VIPA 422). Figure 4 and Figure 5 In this context, the inbound data volume (i.e., inbound byte count) is determined and displayed for each VIPA. After a set time interval (which can be adjusted), the VIPA can re-register with other network adapters to provide a balanced load for each network adapter. For example, as... Figure 4As shown, network adapter 406 has two registered VIPAs: VIPA 414 (with an inbound byte count of 600MB of inbound data) and VIPA 422 (with an inbound byte count of 300MB of inbound data). As can be observed, these represent the two VIPAs with the largest inbound byte counts. As a result, network adapter 406 is overloaded relative to network adapters 402, 404, and 405. Therefore, Figure 4 VIPA instances can be re-registered based on their respective inbound byte counts to balance inbound data, such as Figure 5 As shown, in some examples, re-registration occurs based on the total amount of incoming data received (e.g., per 1 GB), time, network conditions, detected fault conditions, and other triggers.
[0030] According to one or more embodiments described herein, each of the plurality of network adapters resides on a public Internet Protocol stack. Furthermore, in some examples, each of the plurality of network adapters is configured on a public subnet or virtual local area network, such as Figure 3 , Figure 4 and Figure 5 As shown.
[0031] It is understood that one or more embodiments described herein can be implemented in conjunction with any other type of computing environment now known or to be developed in the future. For example, Figure 6 A block diagram of a processing system 600 for implementing the techniques described herein is shown. In an example, the processing system 600 has a processing device 602, which may include one or more central processing units, such as CPU 604, CPU 606, CPU 608, etc. (collectively or generally referred to as processors, processing devices, and / or multiple processing devices). In various aspects of this disclosure, the processing device 602 may include a Reduced Instruction Set Computer (RISC) microprocessor. In some examples, the processing device 602 and / or CPU 604, CPU 606 and / or CPU 608 may include multiple processing cores for executing instructions simultaneously / concurrently. The processing device 602 is coupled to system memory (e.g., random access memory RAM 612) and various other components via a system bus 620. A read-only memory ROM 610 is coupled to the system bus 620 and may include a basic input / output system (BIOS) that controls certain basic functions of the processing system 600.
[0032] Further described are the input / output (I / O) adapter 614 and network adapter 616 coupled to the system bus 620. The network adapter 616 may be a Small Computer System Interface (SCSI) adapter that communicates with the hard disk 636 and / or storage device 638 or any other similar component. The I / O adapter 614, hard disk 636, and storage device 638 are collectively referred to herein as mass storage 640. The operating system 642 for execution on the processing system 600 may be stored in the mass storage 640. The network adapter 616 interconnects the system bus 620 with an external network 618, enabling the processing system 600 to communicate with other such systems.
[0033] A display 632 (e.g., a display monitor) is connected to the system bus 620 via a display adapter 630, which may include a graphics adapter to improve the performance of graphics-intensive applications and video controllers. In one aspect of this disclosure, an I / O adapter 614, a network adapter 616, and / or a display adapter 630 may be connected to one or more I / O buses, which are connected to the system bus 620 via an intermediate bus bridge (not shown). Suitable I / O buses for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols such as Peripheral Component Interconnect (PCI). Additional input / output devices are shown connected to the system bus 620 via a user interface adapter 622 and a display adapter 630. A keyboard 624, a mouse 626, and a speaker 628 may be interconnected to the system bus 620 via a user interface adapter 622, which may include, for example, a super I / O chip integrating multiple device adapters into a single integrated circuit.
[0034] In some aspects of this disclosure, the processing system 600 includes a graphics processing unit 634. The graphics processing unit 634 is a specialized electronic circuit designed to manipulate and modify memory to accelerate the creation of images in a frame buffer intended for output to a display. Typically, the graphics processing unit 634 is highly efficient in manipulating computer graphics and image processing and has a highly parallel architecture, making it more efficient than general-purpose CPUs used for parallel processing of large data blocks.
[0035] Therefore, as configured herein, the processing system 600 includes processing capabilities in the form of a processing device 602, storage capabilities including system memory (e.g., RAM 612) and mass storage 640, input devices such as a keyboard 624 and a mouse 626, and output capabilities including a speaker 628 and a display 632. In some aspects of this disclosure, a portion of the system memory (e.g., RAM 612) and the mass storage 640 jointly store an operating system 642, such as the AIX® operating system from IBM, to coordinate the functionality of the various components shown in the processing system 600.
[0036] Various embodiments of the invention are described herein with reference to the accompanying drawings. Alternative embodiments of the invention may be devised without departing from the scope thereof. In the following description and drawings, various connections and positional relationships (e.g., above, below, adjacent, etc.) are illustrated between elements. Unless otherwise stated, these connections and / or positional relationships may be direct or indirect, and the invention is not intended to be limiting in this respect. Thus, coupling of entities may refer to direct or indirect coupling, and positional relationships between entities may be direct or indirect positional relationships. Furthermore, the various tasks and process steps described herein may be incorporated into a more comprehensive procedure or process with additional steps or functionality not described in detail herein.
[0037] The following definitions and abbreviations are used to interpret the claims and the specification. As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having,” “contains,” or “containing,” or any other variations thereof, are intended to cover non-exclusive inclusion. For example, a composition, mixture, process, method, article, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such compositions, mixtures, processes, methods, articles, or apparatus.
[0038] Additionally, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" can be understood to include any integer greater than or equal to one, i.e., one, two, three, four, etc. The term "multiple" can be understood to include any integer greater than or equal to two, i.e., two, three, four, five, etc. The term "connection" can include both indirect "connection" and direct "connection."
[0039] The terms “about,” “substantially,” “approximately,” and variations thereof are intended to include a degree of error associated with a measurement of a specific quantity based on the equipment available at the time of filing this application. For example, “about” may include a range of ±8%, 5%, or 2% of a given value.
[0040] For the sake of brevity, conventional techniques related to the manufacture and use of aspects of the present invention may or may not be described in detail herein. In particular, various aspects of the computing systems and specific computer programs used to implement the various technical features described herein are well known. Therefore, for the sake of brevity, many conventional implementation details are only briefly mentioned or omitted entirely herein, without providing well-known system and / or process details.
[0041] This invention can be a system, method, and / or computer program product at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.
[0042] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in slots having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.
[0043] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.
[0044] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a standalone software package, partially on a user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing state information from the computer-readable program instructions to personalize the electronic circuitry in order to perform aspects of this invention.
[0045] Various aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0046] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium storing the instructions includes an article of manufacture containing instructions that implement aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0047] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, such that the instructions executed on the computer, other programmable apparatus, or other device perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0048] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the blocks may occur in a non-consecutive order as shown in the figures. For example, two blocks shown consecutively may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.
[0049] Various embodiments of the invention have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or improvements to existing technologies on the market, or to enable others skilled in the art to understand the embodiments described herein.
Claims
1. A method for performing inbound load balancing, the method comprising: At least one of a plurality of Virtual Internet Protocol Addresses (VIPAs) is registered, at least in part, to each of a plurality of network adapters based on data usage, the registration including registering a first VIPA to a first network adapter among the plurality of network adapters and registering a second VIPA to a second network adapter among the plurality of network adapters, wherein the first VIPA is different from the second VIPA; as well as Inbound data is distributed among the plurality of network adapters by each of the plurality of network adapters using the Address Resolution Protocol (ARP). The data-based registration includes monitoring the inbound data to determine the inbound byte count for each of a plurality of VIPAs, wherein the monitoring occurs at set time intervals.
2. The method of claim 1, wherein registering at least one of the plurality of VIPAs to each of the plurality of network adapters is at least partially based on round-robin registration.
3. The method according to claim 1, wherein, Registering at least one of the plurality of VIPAs to each of the plurality of network adapters is based at least in part on the inbound byte count of each of the plurality of VIPAs.
4. The method according to claim 1, further comprising: The re-registration of at least one VIPA from the plurality of VIPs to each of the plurality of network adapters is based at least in part on the inbound byte count of each of the plurality of VIPA.
5. The method of claim 1, wherein each of the plurality of network adapters resides on a public Internet Protocol stack, and wherein each of the plurality of network adapters is configured on a public subnet or virtual local area network.
6. The method of claim 1, wherein the plurality of network adapters includes at least one open system adapter.
7. A system for performing inbound load balancing, comprising: Memory, including computer-readable instructions; as well as A processing apparatus for executing the computer-readable instructions, the computer-readable instructions controlling the processing apparatus to perform operations, the operations including: At least one of a plurality of Virtual Internet Protocol Addresses (VIPAs) is registered, at least partially based on data usage, to each of a plurality of network adapters, the registration including registering a first VIPA to a first network adapter among the plurality of network adapters, and registering a second VIPA to a second network adapter among the plurality of network adapters, wherein the first VIPA is different from the second VIPA; and Inbound data is distributed among the plurality of network adapters by each of the plurality of network adapters using the Address Resolution Protocol (ARP). The data-based registration includes monitoring the inbound data to determine the inbound byte count for each of a plurality of VIPAs, wherein the monitoring occurs at set time intervals.
8. The system of claim 7, wherein registering at least one of the plurality of VIPAs to each of the plurality of network adapters is at least partially based on round-robin registration.
9. The system according to claim 7, wherein, Registering at least one of the plurality of VIPAs to each of the plurality of network adapters is based at least in part on the inbound byte count of each of the plurality of VIPAs.
10. The system according to claim 7, wherein the operation further comprises: The re-registration of at least one of the plurality of VIPAs to each of the plurality of network adapters is based at least in part on the inbound byte count of each of the plurality of VIPAs.
11. The system of claim 7, wherein each of the plurality of network adapters resides on a public Internet Protocol stack, and wherein each of the plurality of network adapters is configured on a public subnet or virtual local area network.
12. The system of claim 7, wherein the plurality of network adapters includes at least one open system adapter.
13. A computer program product comprising program instructions executable by a processor to cause the processor to perform operations, the operations including: At least one of a plurality of Virtual Internet Protocol Addresses (VIPAs) is registered, at least in part, to each of a plurality of network adapters based on data usage, the registration including registering a first VIPA to a first network adapter among the plurality of network adapters and registering a second VIPA to a second network adapter among the plurality of network adapters, wherein the first VIPA is different from the second VIPA; as well as Inbound data is distributed among the plurality of network adapters by each of the plurality of network adapters using the Address Resolution Protocol (ARP). The data-based registration includes monitoring the inbound data to determine the inbound byte count for each of a plurality of VIPAs, wherein the monitoring occurs at set time intervals.
14. The computer program product of claim 13, wherein registering at least one of the plurality of VIPAs to each of the plurality of network adapters is at least partially based on polling registration.
15. The computer program product according to claim 13, wherein, Registering at least one of the plurality of VIPAs to each of the plurality of network adapters is based at least in part on the inbound byte count of each of the plurality of VIPAs.
Citation Information
Patent Citations
Method and Apparatus for Dynamically Configuring Virtual Internet Protocol Addresses
US20090106404A1
System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards
US7159034B1