The ability to cluster Windows servers has been available from Microsoft or third-party vendors since Windows NT Server 3.51. Clustering has always sounded like a great idea to server administrators, but in the past, only a few could justify the expense. But price drops and changes in technology have made clustering much more affordable today. I encourage you to consider clustering, even if your organization is small.
If you think that a cluster is a group of servers in which, if one server has a problem, one of the other servers takes over and performs the same task without interruption, you're only partially correct. This definition more accurately describes one form of clustering, called high availability clustering. Another form of clusteringload balancing, or Network Load Balancing (NLB), as Microsoft calls itis more broadly defined as multiple computers functioning together as one to provide a common set of applications or a service.
Microsoft offers high-availability clustering in Windows Server 2003 Datacenter Edition, Windows Server 2003 Enterprise Edition, Windows 2000 Advanced Server, and Windows 2000 Datacenter Server. In this article, I focus on the features and functionality in Windows 2003. Windows 2003's high-availability clustering supports eight nodes per cluster. NLB clustering, which is available in all versions of Windows 2003, supports up to 32 nodes per cluster.
You can't use Microsoft's high-availability and NLB clustering technologies together to create a nonstop, load-balanced computing environment for your organization. Microsoft supports the use of only one of its clustering technologies at a time. If you need a highly available load-balanced environment, you'll need to investigate solutions from third-party vendors.
High-traffic environments and large organizations use NLB to create Web server farms and terminal services Web farms. But many types of businesses can afford and benefit from high-availability clusteringfor example, stock exchanges, airline reservation systems, hospitals, banks, and casinos. Imagine asking a casino manager to stop gambling operations for a few minutes while you apply a service patch and reboot the server. Your environment might not be as extreme, but you should consider using high-availability clustering for your file and print servers, Microsoft Exchange Server and Microsoft SQL Server systems, and specialty application servers. You can easily set up a test environment and follow the steps I lay out to create a cluster.
How Microsoft Cluster Service Works
Clustering sounds like a simple proposition: Attach several computers to a common network and a common hard disk. However, a cluster needs one unique IP address, and you can't just give multiple machines the same IP address. In addition, Windows caches disk information, including file contents, in RAM to improve disk performance. Windows can't "see" another computer's RAM, so having more than one computer writing information to a disk results in a corrupted disk and lost data. Microsoft designed Microsoft Cluster service to address this problem and others.
Microsoft Cluster service creates a phantom IP address that represents the cluster and that can be assigned to any of the cluster nodes. (Each computer in the cluster still has a unique IP address.) Microsoft Cluster service provides a private disk area (aka a quorum disk) that lets the nodes exchange registry settings and cluster status information. Microsoft Cluster service also uses the network to communicate node status among servers in the group.
Microsoft Cluster service is a high-availability clustering solution rather than a fault-tolerant clustering solution. The difference is that users in high-availability environments experience "a momentary pause" (Microsoft's words) during a failover. Fault-tolerant environments don't have any pauses during failovers. In a typical business application, momentary pauses shouldn't pose a problem, but you'll be able to see for yourself how long a momentary pause is in your test cluster.
Creating a Test Environment
If you're a typical server administrator, you probably like to toss the manual aside and begin playing. I provide the information you need to create your own test cluster, along with some tips and pointers that aren't well documented. Remember that these instructions are for you to try on a home or test network. Don't try them on your production Exchange or SQL Server systems.
You'll need at least four computers; three running Windows 2003 Enterprise Edition and the fourth running Windows XP or another client OS. You could use VMware, but you just can't do some things with virtual machines (VMs). My advice is to get a few friends together over a weekend and have a clustering party. This approach will help with the hardware requirements, and you'll learn by interacting with each other.
In addition to the four computers (each with a NIC), you need two additional NICs, two SCSI cards (I used Adaptec AHA-2940s), any size external SCSI disk, a SCSI Y cable, and two 10Mbps or 100Mbps hubs. You also need some Ethernet cables and an MP3 file. If you're missing some of the hardware, visit your favorite online auction. You should be able to purchase the SCSI disk, SCSI cards, and SCSI cable all for less than $100.
The diagram in Figure 1 shows what you're building: a domain controller (DC), two high-availability servers, and a workstation all connected to a network called Public. The two high-availability servers will each have a second NIC and will be connected to a second network called Private. I'll leave it to you to install all the server software, patches, and drivers. A default installation of Windows 2003 Enterprise Edition installs Microsoft Cluster service. On the two high-availability servers, install the second NIC and a SCSI card before installing the server software. Confirm in Device Manager that the SCSI cards and second NICs are functioning properly. Leave the SCSI disk disconnected for now.
Assign all the NICs static IP addressesyou aren't using a DHCP server, and hard-coding server IP addresses is a good practice. Right-click My Network Places, select Properties, then label the NICs in the high-availability servers as Public and Private for easy identification in the future. You don't need a default gateway for the Private address because traffic will never be routed. Enter the DC's IP address as the preferred DNS server in the high-availability servers and workstation. If your high-availability servers have FireWire (IEEE 1394) ports, disable them now or you'll receive an alert when you create your cluster.
dzoquier July 23, 2004 (Article Rating: