One way to make a network server both scalable and fault-tolerant is to implement clustering, which allows a server's workload to be distributed across multiple servers. This provides fault tolerance in that if one server fails, the remaining servers in the cluster will continue to service requests.
Many administrators assume that clustering is expensive and complicated to deploy. And it can be.
However, Windows Server 2003 supports two types of clustering; traditional clustering and Network Load Balancing. The latter is far less expensive and complicated to deploy than traditional clustering.
Network Load Balancing is primarily used to provide scalability and fault tolerance to servers hosting Web applications, such as Outlook Web Access. OWA allows a user to access their Exchange mailbox through a Web site (which is designed to look just like Outlook).
For companies with many remote users, OWA is critical. Such companies will often cluster their OWA servers using Network Load Balancing; this allows OWA to service more requests than would be possible using a single server, while eliminating a single point of failure.
Requirements for implementation
Requirement #1: The servers making up the Network Load Balancing cluster (called nodes) must all be running duplicate copies of the same hosted application. Network Load Balancing is typically used for Web servers because cluster nodes cannot contain any data. (The reason for this: It is difficult to predict which server will service in-bound requests).
If data were stored on individual cluster nodes, then each server would contain a subset of the total data, and there would be no easy way of consolidating this data. Instead, data is typically stored on a back-end server, where it is centrally accessible by all cluster nodes.
To see how this works, let's look at the OWA server. OWA acts as a front-end interface to an Exchange Server organization. But the OWA server does not contain any user data. It merely hosts the OWA Web site, and acts as an interface to a back-end mailbox server. All of the user's mailboxes are stored on the back-end Exchange Server, so they can be centrally accessible to any front-end OWA server.
(By the way, back-end Exchange Servers can also be clustered, but not with Network Load Balancing. Clustering back-end servers requires the use of traditional clustering, which is beyond the scope of this article.)
Requirement #2: A Network Load Balancing cluster must contain 2 to 32 nodes. The number that will be appropriate for your cluster depends on the level of activity you expect your hosted application to receive. If you're unsure how many nodes you need, you can create a two-node cluster, then add additional nodes as the workload increases.
Requirement #3: Each cluster node must have two IP addresses. The first IP address works just like any other IP address. It is unique to the individual server, and must not be duplicated. The other IP address is shared by all of the nodes in the cluster.
To see how this works, say you have a two-node cluster hosting a Web application. The DNS server that is authoritative for your domain must be configured so that the record pointing to the Web application references the IP address that is shared by all nodes in the cluster. Now, when users access the Web application, they are taken directly to the cluster's IP address.
When the request arrives, all the hosts in the cluster receive and process the request. The Network Load Balancing service runs an algorithm to determine which of the nodes should respond to the request. Each node performs this calculation independently, without communicating with the others. Communications with the other cluster nodes are required any time a node is added to or removed from the cluster, as well as on a periodic basis to gauge the health of each node. When nodes are added or removed, the algorithm that determines which host responds to a request is changed to reflect the new number of nodes.
One last thing: Network Load Balancing clusters will only provide fault tolerance as long as a failure is related to one of the nodes in the cluster. Other types of failures will still result in downtime. If you're implementing a Network Load Balancing cluster, I recommend having multiple Internet connections, routers, firewalls and switches. In order to provide true fault tolerance, you must have redundancy outside of the cluster.
Remember: True scalability and fault tolerance are only achieved so long as there is redundancy outside of the cluster, and any backend databases are able to keep pace with the cluster.
About the author: Brien M. Posey, MCSE, is a Microsoft Most Valuable Professional for his work with Windows 2000 Server, Exchange Server and IIS. He has served as CIO for a nationwide chain of hospitals and was once in charge of IT security for Fort Knox. He writes regularly for SearchWinComputing.com and other TechTarget sites.
More information on this topic:
- Tip: Planning Network Load Balancing clusters
- Topics: Network load balancing
- RSS: Sign up for our RSS feed to receive expert advice every day.