A network load balancing cluster on Windows or Linux – the farm cluster

A network load balancing cluster on Windows or Linux - the farm cluster

High availability and scalability of web services with a network load balancing cluster

The SafeKit farm cluster implements a network load balancing cluster among several servers. It provides a simple solution to critical application scalability and high availability.

In a network load balancing cluster, the same application runs on each server, and the load is balanced by the distribution of network activity on the different servers of the farm. This type of cluster is suited to front-end applications like web services.

The SafeKit software saves the cost of hardware load balancers. It does not require specific servers above the farm for implementing the network load balancing cluster.

Farm cluster - A network load balancing cluster on Windows, Linux or AIX

The network load balancing is very efficiently implemented by a network filter driver. This driver works on Windows and Linux (even on Windows editions for PCs).

SafeKit provides a generic farm module on Windows and Linux to build a network load balancing cluster. You can write your own farm module for your application starting from the generic farm module. Apache and Microsoft IIS are examples of farm modules.

Combined with the farm cluster, you can also implement a mirror cluster with real-time file replication and failover.

Principle of a virtual IP address in a network load balancing cluster

The virtual IP address is configured locally on each server in the network load balancing cluster.

The input traffic for the virtual IP address is received by all the servers and split among them by a filter inside each server's kernel.

The network load balancing algorithm inside the filter is based on the identity of the client packets (client IP address, client TCP port). Depending on the identity of the client packet input, only one filter in a server accepts the packet; the other filters in other servers reject it.

Once a packet is accepted by the filter on a server, only the CPU and memory of this server are used by the application that responds to the request of the client. The output messages are sent directly from the application server to the client.

If a server fails, the SafeKit membership protocol reconfigures the filters in the network load balancing cluster to re-balance the traffic on the remaining available servers.

Note that a comparison between Microsoft NLB and SafeKit network load balancing is available here.  And note that SafeKit network load balancing is working not only on Windows (including Windows editions for PCs) but also on Linux.

Stateful or stateless web services in a network load balancing cluster

With a stateful server, there is session affinity. The same client must be connected to the same server on multiple HTTP/TCP sessions to retrieve its context on the server. In this case, the SafeKit load balancing rule is configured on the client IP address. Thus, the same client is always connected to the same server on multiple TCP sessions. And different clients are distributed across different servers in the farm. This configuration is used when there are session affinities.

With a stateless server, there is no session affinity. The same client can be connected to different servers in the farm on multiple HTTP/TCP sessions; because there is no context stored locally on a server from one session to another. In this case, the SafeKit load balancing rule is configured on the TCP client session identity. This configuration is the one which is the best for distributing sessions between servers, but it requires a TCP service without session affinity.

If you are also interested by real-time replication and failover in a mirror cluster, read this article.

Key differentiators of a network load balancing cluster with Evidian SafeKit

Evidian SafeKit farm cluster with load balancing and failover

No load balancer or dedicated proxy servers or special multicast Ethernet address No load balancer or dedicated proxy servers

Like   The solution does not require load balancers or dedicated proxy servers above the farm for imlementing load balancing. SafeKit is installed directly on the application servers in the farm. The load balancing is based on a standard virtual IP address/Ethernet MAC address and is working with physical servers or virtual machines on Windows and Linux without special network configuration

Dislike  This is not the case with network load balancers

Dislike  This is not the case with dedicated proxies on Linux

Dislike  This is not the case with a specific multicast Ethernet address on Windows

All clustering features All clustering features

Like  The solution includes all clustering features: virtual IP address, load balancing on client IP address or on sessions, server failure monitoring, network failure monitoring, software failure monitoring, automatic application restart with a quick revovery time and a replication option with a mirror module. A clustering configuration is simply made by means of a high availability application module. There is no domain controller or active directory to configure on Windows. The solution works on Windows and Linux

Dislike  This is not the case with other load balancing solutions. They are able to make load balancing but they do not include a full clustering solution with restart scripts and automatic application restart in case of failure. They do not offer a replication option

Remote sites Remote sites

Like   If servers are connected to the same IP network through an extended LAN between remote sites, the virtual IP address of SafeKit is working with load balancing at level 2

Like   If servers are connected to different IP networks between remote sites, the virtual IP address can be configured at the level of a load balancer. SafeKit offers a health check: the load balancer is configured with a URL managed by SafeKit which returns OK on the UP servers and NOT FOUND else. This solution is implemented for SafeKit in the Cloud but it can be also implemented with a load balancer on premise. Thus you can implement load balancing but also all the clustering features of SafeKit including an easy administration of the cluster through the SafeKit web console

Uniform high availability solution Uniform high availability solution

Like  SafeKit imlements a farm cluster with load balancing and failover. But it implements also a mirror cluster with replication and failover. Thus a N-tiers architecture can me made highly available and load balanced with the same solution on Windows and Linux (same installation, configuration, administration with the SafeKit console or with the command line interface). This is unique on the market

Dislike  This is not the case with an architecture mixing different technologies for load balancing, replication and failover

Examples of farm modules

Click on the blue button to access the solution

Farm modules (load balancing and failover)

Windows

Linux

IIS module-
Apache module
Generic farm module for any application

FAQ on Evidian SafeKit [+]