Evaluating Windows Clustering
Windows Server 2003 provides two clustering technologies: server clusters and Network Load Balancing. The clustering technologies in Windows Server 2003 provide different availability and scalability solutions, and they can be implemented throughout your organization.You can also utilize an additional type of clustering, Component Load Balancing (CLB) clusters, in your Windows Server 2003 deployment. CLB clusters, however, are a feature of Microsoft Application Center 2000, and they are not discussed in detail here.Note | You can use CLB clusters on Windows Server 2003, provided that you use Application Center 2000 Service Pack 2 or later. |
For complete information on CLB clusters, see your Microsoft Application Center 2000 documentation. Figure 6.4 illustrates the high-level process for evaluating clustering technologies.

Figure 6.4: Evaluating Clustering
Evaluating the Benefits of Clustering
A cluster is two or more computers working together to provide higher availability, reliability, and scalability than can be obtained by using a single system. When failure occurs in a cluster, resources are redirected and the workload is redistributed. Microsoft cluster technologies guard against three specific types of failure:
Application and service failures, which affect application software and essential services.
System and hardware failures, which affect hardware components such as CPUs, drives, memory, network adapters, and power supplies.
Site failures in multisite organizations, which can be caused by natural disasters, power outages, or connectivity outages.
Benefits of Clustering
If one server in a cluster stops working, a process called failover automatically shifts the workload of the failed server to another server in the cluster. Failover ensures continuous availability of applications and data.This ability to handle failure allows clusters to meet two requirements that are typical in most data center environments:
High availability. The ability to provide end users with access to a service for a high percentage of time while reducing unscheduled outages.
High reliability. The ability to reduce the frequency of system failure.
Additionally, Network Load Balancing clusters address the need for high scalability, which is the ability to add resources and computers to improve performance.
Limitations of Clustering
Server clusters are designed to keep applications available, rather than keeping data available. To protect against viruses, corruption, and other threats to data, organizations need solid data protection and recovery plans. Cluster technology cannot protect against failures caused by viruses, software corruption, or human error.The Cluster service, the service behind server clusters, depends on compatible applications and services to operate properly. The software must respond appropriately when a failure occurs. Administrators must be able to configure where an application stores its data on the server cluster. Also, clients that are accessing a clustered application or service must be able to reconnect to the cluster virtual server after a failure has occurred and a new cluster node has taken over the application.Only services and applications that use TCP/IP for client-server communication are supported on Network Load Balancing clusters and server clusters.You cannot use Windows Server 2003 File Replication service (FRS) on shared cluster storage. You also cannot create domain-based Distributed File System (DFS) roots on shared cluster storage. Finally, without the proper management tools, you also cannot use dynamic disks on shared cluster storage. For more information about using dynamic disks on shared cluster storage, see article 237853, "Dynamic Disk Configuration Unavailable for Server Cluster Resources" In the Microsoft Knowledge Base. To find this article, see the Microsoft Knowledge Base link on the Web Resources page at http://www.microsoft.com/windows/reskits/webresources). DFS and FRS are discussed in detail in "Designing and Deploying File Servers" in this book.
Clustering vs. Fault-Tolerant Hardware Components
Both clustering and fault-tolerant hardware protect your system from failures of components such as the CPU, memory, fan, or PCI bus. Fault-tolerant hardware is discussed in the section "Planning and Designing Fault-Tolerant Hardware Solutions" earlier in this chapter. Clustering and fault tolerance can be used together in a complete end-to-end solution, but be aware that the two technologies provide high availability in different ways.Clustering can protect your system against an application or operating system failure, but a fault-tolerant standby server (or a server that uses hot-swappable hardware, which allows a device to be added while the server is running) cannot. It is also possible to upgrade an application or operating system or to install a service pack, Quick Fix Engineering (QFE) update, or hotfix without taking a cluster offline. Upgrades on standby servers, however, are only possible by taking that hardware offline.
Evaluating Cluster Technologies
If you decide to deploy clustering with Windows Server 2003, choosing a cluster technology depends greatly on the application or service that you want to host on the cluster. Server clusters and Network Load Balancing both provide failover support for IP-based applications and services that require high scalability and availability. Each type of cluster, however, is intended for different kinds of services. Your choice of cluster technologies depends primarily on whether you run stateful or stateless applications:
Server clusters are designed for stateful applications. Stateful applications have long-running in-memory state, or they have large, frequently updated data states. A database such as Microsoft SQL Server™ 2000 is an example of a stateful application.
Network Load Balancing is intended for stateless applications. Stateless applications do not have long-running in-memory state. A stateless application treats each client request as an independent operation, and therefore it can load-balance each request independently. Stateless applications often have read-only data or data that changes infrequently. Web front-end servers, virtual private networks (VPNs), and File Transfer Protocol (FTP) servers typically use Network Load Balancing.
Server Clusters
Server clusters provide high availability for more complex, stateful applications and services by allowing the failover of resources. Server clusters also maintain client connections to applications and services. If your application is stateful, with frequent changes to data, a server cluster is a more appropriate solution. Server clusters run on Windows Server 2003, Enterprise Edition, and Windows Server 2003, Datacenter Edition.
Server clusters, which use the Cluster service, maintain data integrity and provide failover support and high availability for mission-critical applications and services on your back-end servers, including databases, messaging systems, and file and print services. Organizations can use server clusters to make applications and data available on multiple servers that are linked together in a server cluster configuration. Back-end applications and services, such as messaging applications like Microsoft Exchange or database applications like Microsoft SQL Server, are ideal candidates for server clusters.In server clusters, nodes share access to data. Nodes can be either active or passive, and the configuration of each node depends on the operating mode (active or passive) and how you configure failover in the cluster. A server that is designated to handle failover must be sized to handle the workload of the failed node in addition to its own workload.In Windows Server 2003, Enterprise Edition, and Windows Server 2003, Datacenter Edition, server clusters can contain up to eight nodes. Each node is attached to one or more cluster storage devices, which allow different servers to share the same data. Because nodes in a server cluster share access to data, the type and method of storage in the server cluster is very important.For information about server clusters, including resource groups, failover and failover policies, storage configurations, cluster-aware applications, and optimizing your network for server clusters, see "Planning your server cluster" in Help and Support Center for Windows Server 2003 and "Designing and Deploying Server Clusters" in this book.
Network Load Balancing
If your application is stateless or can otherwise be cloned with no decline in performance, consider deploying Network Load Balancing. Network Load Balancing provides failover support for IP-based applications and services that require high scalability and availability. Network Load Balancing can run on all editions of Windows Server 2003.Network Load Balancing addresses bottlenecks caused by front-end services, providing continuous availability for IP-based applications and services that require high scalability. Network Load Balancing clusters are used to provide scalability for Web services and other front-end servers, such as VPN servers and firewalls. Organizations can build groups of clustered computers to support load balancing of TCP and User Datagram Protocol (UDP) traffic requests.Network Load Balancing clusters are groups of identical, typically cloned computers that, through their numbers, enhance the availability of Web servers, Microsoft Internet Security and Acceleration (ISA) servers (for proxy and firewall servers), and other applications that receive TCP and UDP traffic. Because Network Load Balancing cluster nodes are usually identical clones of each other and can therefore operate independently, all nodes in a Network Load Balancing cluster are active.You can scale out Network Load Balancing clusters by adding additional servers. As demand on the cluster increases, you can scale out Network Load Balancing clusters to as many as 32 servers if necessary. Each node runs a copy of the IP-based application or service that is being load balanced and stores all the data necessary for the application or service to run on local drives.
In clusters, stateless applications are typically cloned, so that multiple instances of the same code are executed on the same dataset. Figure 6.5 shows a cloned application (called "App") deployed in a cluster. Each instance of the cloned application is self-contained, so that a client can make a request to any instance and will always receive the same result.

Figure 6.5: Cloned Application
Changes made to one instance of a cloned stateless application can be replicated to the other instances, because the dataset of stateless applications is relatively static. Because stateful applications such as Microsoft Exchange or Microsoft SQL Server are updated with new data frequently, they cannot be easily cloned and they are not good candidates for hosting on Network Load Balancing clusters.For more information about Network Load Balancing, see "Designing Network Load Balancing" and "Deploying Network Load Balancing" in this book.
Component Load Balancing
CLB clusters address the unique scalability and availability needs of middle-tier (business) applications that use the COM+programming model. Organizations can load balance COM+ components over more than one node to dramatically enhance the availability and scalability of software applications. CLB clusters, however, are a feature of Microsoft Application Center 2000. For information about CLB clusters, see your Microsoft Application Center 2000 documentation.