2.4 Load Balancing

With NetWare 6.5, the TCP/IP stack features five new policies for send side load balancing and two policies for receive side load balancing:

2.4.1 Send Side Policies

The following send side policies are available with Novell TCP/IP:

Load Sharing

This policy is enabled by default when load balancing is disabled.

The IP address-to-interface mapping is based on the destination IP address mapped to a board number of a physical interface using a hash function. The entire load (send and receive) to a particular destination is handled by the same physical interface, so the load distribution is a linear function of the client IP address distribution. If the client IP addresses have an equal number of clients mapped to all the interfaces and all the clients have a similar load, this is the best strategy because it offers a fairly good load distribution. This strategy is like obtaining load balancing by subnetting with the advantage of fault tolerance support and without wasting extra IP addresses.

The common problem with load sharing is that the clients are relied upon to distribute the load on the server.

Round Robin

This policy is in effect only when load balancing is enabled.

This IP address-to-interface mapping assigns each physical interface in turn, ensuring that the load is being shared across the available physical interfaces. Because the feature is not based on the current load of the interfaces, it does not ensure a balanced load across them.

In cases where each request is almost identical, the feature provides good load balancing. The lifetime of the mapping is the cache lifetime. The problem with load sharing is that the clients are relied upon to distribute the load on the server. In this policy, instead of relying on the clients, the clients are distributed evenly over the available interface. This strategy is like obtaining load balancing by subnetting, with the advantage of fault tolerance support and without wasting extra IP addresses.

Based on Load (Round Robin)

This policy is in effect only when load balancing is enabled.

In this IP address-to-interface mapping, the physical interface that is selected is based on the current load of the interface. This policy assures some level of load balancing.

The feature might not guarantee full load balancing, because it chooses the IP address based on the current load of the interface, which might change as traffic increases or decreases. This means that an intelligent implementation is required that uses considerable information processing. This kind of load balancing is critical during high load times, when a more complex decision might add to performance degradation.

Round robin offers a fast and less complex interface selection procedure with nearly equal connection distribution on all the interfaces. Load monitoring provides information about the distribution of the load. For any imbalance, it can provide an input to the load-balancing module to use a less loaded interface for the incoming connection requests. If the imbalance persists for a certain time interval, it can clear the cache and restart the interface allotment. This method takes care of the card’s capacity as it considers the percentage utilization.

The load is monitored based on which the interface is allotted. In this manner, load balancing is controlled. The base method for interface selection is Round Robin, but if the selected interface is heavily loaded, the next interface in the list is used.

Based on Load (Hashed)

This policy is in effect only when load balancing is enabled.

This policy is similar to Based on Load (Round Robin). The only difference is that the interface selection method uses hashing.

Per Packet Based Load Balancing

This policy is in effect only when load balancing is enabled.

With this policy, the packets are sent through boards in turn. This ensures perfect load balancing but cannot guarantee the packets arriving in the order that they were sent, this is because every packet is going through a different interface. This feature is also not dependent on the nature of the clients.

2.4.2 Receive Side Policies

The following receive side policies are available with Novell TCP/IP:

Load Balancing When Clients Are Distributed Across the Same Subunit

In all the above solutions of the send side policies, there is be a problem on the receiving side when all the cards are bound to the same IP address. A different MAC address is advertised for the same IP address in order to distribute the load on the basis of the policy selected for the load balancing, because when any active ARP entry expires, an ARP request must be broadcast. At the same time, one MAC address (primary in this case) must be sent. On receiving this ARP request, all the clients on the same network or routers then update their caches with this new MAC address, so all the load is directed to a single interface.

Load Balancing When Clients Are Distributed Across Routers

If you have only one router and all the clients are across the router, then load balancing on the receiving side cannot be achieved. If the card is half-duplex and is used for sending purpose also, then the system performance is seriously affected. The best approach is to use the Only Primary as the Receiving Interface policy, so you do not put any load on the receiving card.

This policy is also effective when there singly one client and the client's card capacity is more than server's single card capacity (assuming all cards are half-duplex on the server). In this case, you need to apply the Per Packet Based policy along with this policy.

For more information, see Figure 6-2.

NOTE:Depending on your network configuration, you can select the combination of send side/receive side load balancing to better utilize your network bandwidth.