Microsoft

Enhance NT's reliability and scalability with the Windows NT Load Balancing Service

Are you looking for a way to make your old Windows NT server more reliable and able to handle a larger load? Brien Posey shows you how to do it by installing Windows Load Balancing Service in Windows NT Enterprise Edition.


Windows 2000 offers plenty of new services for the long-time Windows NT administrator to envy. One of the best services for providing redundancy and ensuring peak performance for end users is Windows 2000 Advanced Server’s clustering service. Windows NT Server doesn’t ship with a clustering capability, so if you want to take advantage of clustering and are still running Windows NT, you have to wait for the upgrade.

Or do you? Not if you’re running Windows NT Enterprise Edition. If you’re running the Enterprise Edition of Windows NT, you can deploy the Windows NT Load Balancing Service. This service increases scalability and reliability, and, best of all, you can perform repairs and maintenance without disrupting your users. In this Daily Drill Down, I’ll explain what you need to know to implement Windows NT Load Balancing Service in your organization.

What is Windows NT Load Balancing Service?
The Load Balancing Service allows multiple servers to act as a single server, commonly referred to as a cluster. A network load-balancing cluster can provide fault tolerance and scalability to Web applications. The fault tolerance feature allows you to take down servers in the cluster for maintenance without disrupting service. Likewise, if any of the servers within the cluster crashes, the applications will still be accessible through the other members of the cluster.

In addition to fault tolerance, scalability can be achieved by distributing the workload among multiple servers. Although the cluster can consist of a minimum of two servers, you can create clusters of up to 32 servers. This means that your Web site traffic can be evenly distributed among many servers, greatly lightening the burden on individual servers.

System requirements
The Windows NT Load Balancing Service will run only on the Enterprise Edition of Windows NT 4.0. For the service to work, you’ll need at least two Windows NT Enterprise Edition servers that you plan on clustering together.

These servers must be running the TCP/IP protocol and have at least one NIC installed. Although Microsoft’s minimum requirement is a single NIC, I recommend using two NICs per server. You can attach one NIC to the main network and use the other NIC to form a private network of clustered servers. This removes cluster-related network overhead from your primary network.

The clustered servers must use either FDDI or Ethernet-based NICs. If you use Ethernet, you can use either 10, 100, or 1000 Mbps NICs. Because NICs are so inexpensive, there’s really no reason not to install two in each server.

Let’s assume that each server in your cluster has two NICs. I’ll refer to the NIC that attaches to the primary network as the dedicated NIC, and the NIC that attaches to the cluster as the cluster NIC.

The load balancing service requires a minimum amount of system resources. The service occupies less than 1 MB of storage space and typically consumes somewhere between 250 KB and 4 MB of RAM while running. If you’re clustering a really high-end application, the service can be configured to use up to 15 MB of RAM.

Acquiring WLBS
Unfortunately, the Windows NT Load Balancing Service doesn’t come with Windows NT. Although some versions of the Windows NT Enterprise Edition have supposedly shipped with the Load Balancing Service included, I recommend downloading the service from Microsoft to ensure that you’ve got the latest version. You can download the service at Microsoft’s Windows NT Load Balancing Service Web site.

It’s absolutely free, so the only thing it will cost you is the amount of time it takes to download the file. This won’t be very much either because the file is under 1MB in size and downloads very quickly.

Preparing for installation
Before you actually install the Load Balancing Service, you’ll need to do a little bit of planning. Although servers within the cluster can be addressed individually for administrative purposes, the cluster functions as a single unit. This means that there will be a fully qualified domain name (such as brienposey.com) and a corresponding IP address that’s specifically used for accessing the cluster as a whole. You should determine what this name and IP address will be before you get started.

In addition to having a name and an IP address for the cluster as a whole, each server within the cluster must also maintain its own unique identity. This means that each server within the cluster must have a unique computer name and IP address. You should make a note of each server’s individual name and IP address before beginning.

Finally, you may have to do some configuration work on the router that links the cluster to its clients. Normally, the router you use should have Proxy Address Resolution Protocol (ARP) support enabled. This allows the router to match IP addresses to MAC (Media Access Control) addresses. Some older routers don’t support Proxy ARP for multicast MAC addresses. These routers require you to make static ARP entries if you want to support a network load-balancing cluster.

Installing the Load Balancing Service
After downloading the Load Balancing Service file, WLBS22_I386.EXE, run it by either double-clicking it in a Windows Explorer window or from a command line. You’ll be asked for a folder to extract the files into. Extract the files into a folder of your choice. At first glance, it may feel as though something is missing since no SETUP.EXE file is present. Rather than relying on a Setup program, the Load Balancing Service is installed through the Control Panel.

To install the Load Balancing Service, open the Control Panel and double-click the Network icon. When you do, you’ll see the Network properties sheet appear. Now, select the Adapters tab to reveal a list of network adapters presently installed in the system. Both of your NICs should appear on the list. If either or both of the NICs aren’t there, you must go back and load the drivers for them.

Although the Load Balancing Service is a software component, the Windows NT operating system sees the component as another NIC, so you must install the Load Balancing Service the same way you’d normally install a NIC. To do so, click the Add button on the Adapters tab. When you do, Windows will display the Select Network Adapters dialog box. The network Load Balancing Service won’t be on the list. Therefore, you must click the Have Disk button.

When you see the Insert Disk dialog box, specify the path to your installation files and click OK. You’ll now see the Select OEM Option dialog box. The only item that will appear in this dialog box is the Microsoft Windows NT Load Balancing Service. Verify that the service is selected and click OK. Windows will now copy the necessary files and display a warning message telling you to make sure to set the proper bindings before rebooting the system. Click OK to clear the warning.

At this point, you’ll see the Load Balancing Service license agreement. Click the Agree button to accept the license agreement. Next you’ll see the main Windows NT Load Balancing Setup screen, as shown in Figure A.

Figure A
This is the main configuration screen.


Configuring the network load balancing parameters
As you can see in Figure A, configuring the network load balancing seems intimidating at first. However, it’s not as complicated as it looks. The important thing to remember is that you must complete the configuration on each server within the cluster. If you make a mistake and need to access the configuration screen again, you can do so by selecting the WLBS Virtual NIC from the list of network adapters on the Adapters tab of the Control Panel’s Network Properties sheet and clicking the Properties button.

As you examine the configuration screen, you’ll notice that it’s divided into three main sections:
  • Cluster Parameters refers to settings that will apply to every server in the cluster.
  • Host Parameters are those settings that apply to each server on an individual basis.
  • Port Rules dictate how cluster traffic is handled for various TCP and UDP ports.

Cluster Parameters
Some of the Cluster Parameters are fairly self-explanatory, while others require a bit more clarification. For example, the primary IP address and subnet mask are simply the shared address that will be used by all of the servers within the cluster. Likewise, the full Internet name is the fully qualified domain name that will be shared by all of the servers in the cluster.

You’ll notice that the MAC address section is grayed out in Figure A. That’s because the MAC address is automatically generated and assigned to the machine. The MAC address is a shared virtual MAC address. The Cluster Parameters section also contains a check box that you can use to enable or disable multicast support.

All of the remaining options in this section involve enabling or disabling remote control and setting a remote control password. The remote control option allows you to control the Load Balancing Service from a workstation rather than the server console. Remote operations are performed using the WLBS.EXE program. If you decide to enable remote control, make absolutely sure that your firewall is set to block UDP port 2504. Otherwise, hackers could seize control of your cluster server.

Host Parameters
As with the Cluster Parameters, most of the Host Parameters are also quite simple. For example, the Initial State parameter simply controls whether or not the server is automatically added to the cluster on boot up or not. The IP address and subnet mask refer to the address that will be assigned to the dedicated NIC.

The host priority parameter needs a little explaining. The host priority is a number ranging between 1 and the number of servers in the cluster, which is anywhere from 2 to 32. Each server within the cluster must have a different priority. The priority serves two different purposes. First, it is a method for identifying servers. Since each server has a different priority, the system can recognize the various servers as host 1, host 2, and so on.

The other purpose that these numbers provide is to designate priority. For example, if a server fails and there are no port rules to govern failover behavior, the host with the lowest priority number takes over the failed server’s workload in addition to its own. Therefore, it’s important to assign the lower numbers to your more powerful servers.

Port Rules
If the look of the Port Rules section reminds you of a firewall configuration screen, it’s no accident. You can specify TCP or UDP ports and assign them the Disabled option to block anyone from accessing those ports on the cluster. The Port Rules can actually be used as a low-budget firewall for your cluster, but it’s not a good idea. The Port Rules shouldn’t be used as a substitute for a real firewall, but rather as a security supplement for your network’s main firewall.

The Port Rules’ primary purpose is to distribute the load among the servers. By default, the entire workload will be assigned to the server with the lowest priority number. If that server becomes unavailable, the workload will be shifted to the server with the next lowest priority number. This function is known as Single Host mode.

If you want to distribute the workload among the servers, you can use Multiple Host mode. In doing so, you can assign specific percentages or balance the workload equally among the servers.

Setting the bindings
At this point, you must configure the bindings for the Load Balancing Service. To do so, return to the Network Properties sheet and select the Bindings tab. Begin by selecting the All Protocols option from the Show Bindings For drop-down list. Now, fully expand the binding list by clicking all of the plus signs.

As you look through the list of bindings, you can enable or disable any binding by selecting it and clicking either the Enable or Disable button. The following list represents the correct binding configuration:
  • Enable the binding between the WLBS driver and the WLBS virtual NIC adapter.
  • Enable the binding between the WLBS driver and the cluster NIC.
  • Enable the binding between the TCP/IP protocol and the WLBS virtual NIC adapter.
  • Enable the binding between the TCP/IP protocol and the dedicated adapter.
  • Move the WLBS Virtual NIC adapter so that it is beneath the dedicated adapter in the TCP/IP Protocol section. (You can move objects by selecting the object and clicking the Move Up and Move Down buttons.)
  • Disable the binding between the WLBS driver and any additional network adapters that may be present in the system.
  • Disable the binding between the TCP/IP protocol and the cluster adapter.
  • Enable the binding between the WINS client and the WLBS Virtual NIC Driver.
  • Enable the binding between the WINS client and the dedicated adapter.
  • Disable the binding between the WINS client and the cluster adapter.
  • Move the WLBS Virtual NIC to a point beneath the dedicated adapter in the WINS client section.
  • Disable the bindings for all other protocols.

It’s very important that you confirm that all bindings are correct, or you could have some major network problems after you reboot later on.

Configuring the NICs
Finally, go to the Network Properties sheet’s Protocols tab, select the TCP/IP protocol, and click the Properties button. You’ll now have the opportunity to configure TCP/IP for each network adapter. Verify that the dedicated adapter and the cluster adapter have unique IP addresses. You must then configure the WLBS Virtual NIC to use the cluster IP address. Doing so routes packets that are destined for the cluster’s IP address to the cluster adapter’s real IP address.

Share the load
After you’ve configured all of the servers that will participate in the cluster, you’re ready to go. Just point client workstations to the TCP/IP address of the cluster rather than to individual servers and you’re done. The Load Balancing Service will reduce downtime while also allowing your Web servers to handle a greater workload.

Editor's Picks