Advertisment

Building Server Clusters

author-image
PCQ Bureau
New Update

To meet the requirements of super-fast computation, you can use parallel-processor computer systems having multiple CPUs, with the OS distributing processes to each. Such systems are called MPP (Massively Parallel Processors). While these are useful for large-scale numerical calculations, they are not so for mainstream business applications. 

Advertisment

A Beowulf cluster with a single-management console

Another technique of doing parallel processing is to use clustering. This allows you to connect two or more separate computers over a network and use them as loosely coupled parallel processors. This sort of a setup can be used by the corporate world to run their mission-critical applications to provide high availabilty and reliablity. It can even be used for supercomputing applications such as scientific research, flight simulation, computer-graphics rendering and weather modeling without the need for MPP systems. The advantage of clustering is its scalability, wherein it can handle very small to very large applications.

Starting with this issue we will carry a series of articles on the different types of clustering technologies and how to implement them. This division given below of different types of clustering is not very strict and, in fact, you’ll see clusters that can be fit into more than one category.

Advertisment

Computational clusters



Computational or high-performance clusters use the combined processing power of computers in the cluster to run high CPU intensive applications. 

A computational cluster can be further divided into two: grid computing and high-performance clusters.

Grid Computing



In this configuration, we have a server and one or more clients connected to the server over a network. Distributed processing over clients is achieved by using some software program, which has a server part running on the server and client part running on the clients. To execute a large application, the server software divides the application into small execution units. These units are then transmitted to the clients over the network. The clients then do the requisite processing on these units and return the results back to the server. The clients can run mutiple operating systems and may or may not be different from the server OS.



One example of grid computing is the seti@home project to search for extraterrestrial intelligence. The central system captures radio signals from space and then transfers the data captured in small packets, to several million computers connected to the Internet. The client computers process these packets of data in their idle time and return the results. This way high processing power is obtained, utilizing the idle time of several computers spanned across the globe.

Advertisment

When you create a

cluster, you need to specify a virtual IP address that will be used to access it

High-performance Cluster



The other form of computational cluster also uses a single server and one or more client nodes connected via a network. But, unlike grid computing, where each client computer runs its own operating system, this one is controlled and managed by a single OS running across the computers in the cluster. The server provides various files to clients for execution. Applications are run on the clients using parallel processing algorithms.

The clients are just dumb terminals, with no display or input devices connected to them. The server is the single interface for the entire system, where all input and output takes place. To the user the entire setup appears as a single system. 

Advertisment

Beowulf clusters, which are built from commodity “off the shelf” computer parts and running free OSs like Linux, is such a cluster. They provide very cost-effective parallel processing.

High Availability Clusters



A simple high availability cluster consists of two computers. One is primary and the second a stand-by. If the primary computer fails, switch over to the stand-by computer happens so that users continue to get the services. For more complex systems multiple stand-by computers may be used.

Load Balancing 



In a load-balanced cluster two or more computers run the same set of services like a Web server and the incoming network traffic is divided among them to distribute the load. This setup is highly scalable and reliable as you can easily add more systems as load increases and the services don’t get interrupted if any of the computers goes down. This setup is useful for providing Web and ftp services, where there’s a large user base accessing them.

Advertisment

How NLB Clusters Work



This time we will look at how to configure a Network Load Balancing (NLB) cluster on Windows Server 2003. This service load balances the incoming Internet Protocol (IP) traffic across a cluster. With the help of NLB, groups of clustered computers can be created which will manage and balance the incoming IP traffic. This is best suited for large IP based Web-Server Farms and LDAP servers, which could be running a portal. NLB provides two main features. First, by increasing the number of server (Nodes) in the cluster, it makes handling large volume of load easier and efficient. Secondly, as the number of servers increases, it also increases the redund- ancy (Fault Tolerance) level of the farm. So if any server goes down, others automatically take over its job.

NLB creates a virtual IP address for the cluster, which is presented to the external world. The clients only see this IP address while accessing the cluster. It’s the NLB cluster that transparently divides the incoming data across its different nodes. Besides the virtual IP, each node in the cluster also has its own dedicated IP address. If the nodes are in unicast transmission mode then you need two different LAN cards on each node. One is for the Cluster’s (Shared) IP and the other for the Node’s dedicated IP. If you want the nodes to communicate with each other using a single LAN card, then you have to use multicast mode. This mode binds both IP’s (virtual and dedicated) to the same Network Adapter. The cluster can also work fine without the nodes having to communicate with each other.

Now lets look at how it can be configured. 

Advertisment

Setting up an NLB Cluster



We configured an NLB cluster in multicast mode using two servers running Windows 2003 Server Enterprise Edition. To begin with, all servers that will be a part of the cluster need to be a part of the same domain. Login to one of the server as Administrator, go to Start>Administrative Tools and click on “Network Load Balancing”. This will pop up “Network Load Balancing Manager”, which will let you either manage a pre created NLB Cluster or create a new one. The Network Load Balancing Manager let’s you create new clusters, and add or delete nodes from it.

To create a new cluster, click the Cluster Menu and select New. This will pop up the “Cluster Parameter” window. Here enter the Cluster (Shared) IP address, subnet mask and your desired fully qualified Internet domain name. You can also set whether you want to use Unicast or Multicast transmission. Now you should note that this setting will be exactly the same in all cluster nodes that you add to this cluster. Next it will ask you for additional cluster IP addresses. You can add more by clicking on the Add button and entering the IP addresses into it. Next it will pop a window where you can set the Port Rules.

Specify rules that define how each TCP and UDP port traffic will be handled. Here you can select among three different filtering modes, multiple hosts, single host and disabled. The “Multiple hosts” option specifies that multiple hosts in the cluster handles network traffic. “Single Host” specifies that a single host in the cluster will handle network traffic associated with a port. Finally, “disable” specifies that all network traffic for a particular host is blocked. Choose the option that suits your requirement. For instance, you could have one of the cluster nodes handle all incoming FTP traffic, while the other can handle all incoming HTTP traffic. In this case, you’ll need to use the “single host” option, and create a rule that will bind the traffic for ftp port on one node, and http port for another.

Advertisment

Next, it will ask you to add a Node to this cluster. You can add it by just providing the IP address or the fully qualified Domain Name to the Host Field. After entering it just click on the connect button. It will now find the Host and show all available network adapters in it. Select one on which you want to bind the virtual IP. Please note that the node must have a static IP, else the Wizard will pop an error. When you hit the Next button, it will take you to a form where you can set the Dedicated IP configuration and the subnet mask for the adapter. Here you should enter the original IP and Subnet of your Network Adapter, and select the Priority for this node. The priority number should be unique for each node. Hit the Finish button and it will create your new NLB Cluster. 

To add new clients on this cluster, just go to Cluster Menu and click on the Add Host Option. It will again open up the “Cluster Parameter” window, from where you can continue just like above. 

Anindya Roy and Anoop Mangla

Advertisment