Configuring NLB clusters to achieve balance in your IIS 5.0 Web farm
Windows 2000's Network Load Balancing (NLB) is a clustering technology that balances the network traffic of IP-based applications, such as Web, FTP, and VPN applications, across multiple servers. A software-based load-balancing solution available in Win2K Advanced Server and Win2K Datacenter Server, NLB streamlines administration by letting you manage a group of independent servers as one system. Administrators typically use NLB to evenly distribute Web client requests among Web servers, such as in a Microsoft Internet information Services (IIS) 5.0 server farm.
Load balancing is more than just distribution of Web traffic. Now is the time to dispel some common myths about load balancing in general and about NLB in particular. To attack these myths, I want to explore Win2K's NLB in depth to reveal the ease with which you can configure NLB and put this powerful utility into action.
The Benefits of NLB
Load-balanced servers (aka hosts) in an NLB cluster provide two important benefits. First, NLB scales IIS's performance by distributing client requests across multiple hosts within the cluster. As traffic increases, you can add servers (up to a maximum of 32 servers) to a cluster. You can add or remove hosts from a cluster without interrupting services. Second, NLB provides high availability (i.e., continuous service) by detecting server failures within a cluster and automatically repartitioning client traffic among the remaining available servers.
NLB distributes IP traffic to multiple instances of IIS, each running on a host within the cluster. NLB transparently partitions the client (i.e., user) requests among the hosts and lets the clients use one or more "virtual" IP addresses to access the cluster. To the clients, the cluster appears to be one server. Also, server programs aren't aware that they're running in an NLB cluster.
NLB hosts emit periodic "heartbeat" messages so that you can monitor all cluster members. These heartbeat messages impose very low overhead on the network. The software detects host failures within 5 seconds and accomplishes recovery within 10 seconds. If a load-balanced host goes down or if a new host goes online, NLB automatically and transparently redistributes the workload among available cluster hosts. (For more information about NLB, see "Related Articles.")
Dispelling NLB Myths
The performance and features of Win2K's NLB match, and in many cases exceed, the benefits of expensive hardware-based solutions (e.g., solutions from Cisco Systems and Nortel)at a fraction of the cost. NLB's only real limitation is that a cluster can't have more than 32 servers, but large sites such as Dell (http://www.dell.com) and Microsoft (http://www.microsoft.com) typically use multiple clusters to overcome that limitation. Nevertheless, you'll encounter several pervasive myths about load balancing and about Win2K's NLB in particular:
You need load balancing only if you run a large site. You don't need to be running a huge Web site to justify implementing a load-balancing solution. In many cases, simply adding a second IIS server to create a Web farm can dramatically improve performance.
Win2K NLB doesn't measure up to hardware-based solutions. Some of the world's largest Web farmshttp://www.dell.com, TV Guide Online, Microsoft's Web properties (i.e., http://www.microsoft.com, MSN, MSNBC, and the Expedia travel service)use NLB. In Microsoft's load-balancing tests, which emulate scenarios in which a server farm handles more than 800 million customer requests per day, NLB demonstrated better than 200Mbps throughput. This performance is far superior to that of any hardware solution. Unlike hardware solutions, NLB avoids single points of failure by running in parallel on all of a cluster's hosts (i.e., servers). Most hardware solutions require an extra, underutilized server to avoid a single point of failure. The extra server operates in passive mode until a primary component fails.
NLB is difficult to install, configure, and manage. You don't install NLB; you simply enable and configure it. As you'll see, NLB is extremely easy to put into action and provides excellent control, including the ability to remotely managewith password protectionthe cluster from any point on your network.
NLB Requirements
Win2K AS is compatible with almost all Ethernet and Fiber Distributed Data Interface (FDDI) NICs, so NLB has no specific Hardware Compatibility List (HCL). Also, NLB doesn't require a second NIC for its heartbeat messages (although a second NIC might benefit performance). NLB is installed as a standard networking device driver under Win2K AS or Datacenter and requires static IP addresses for all cluster hosts.
NLB requires less than 1MB of disk space on each cluster server. If you use NLB's default parameters, the software consumes between 250KB and 4MB of RAM during operation, depending on the network load. You can modify these parameters to let NLB use as much as 15MB of RAM.
For optimum performance, you can install a second NIC on each NLB host. In this recommended configuration, one NIC carries all network traffic that results from client requests and the other NIC handles the network traffic between the server and the NLB software. Running NLB in a cluster in which hosts have only one NIC can be complicated. If you don't run in multicast mode, performance will suffer. Multicast mode instructs NLB to add a multicast media access control (MAC) address to the cluster adapters on all cluster hosts. If you run NLB with single NICs in multicast mode, you won't experience any shortcomings, but multicast mode requires special configurations in some routers. (For example, Cisco Systems' routers don't support the resolution of unicast IP addresses to multicast MAC addresses.)
Anthony Paulina August 21, 2001