08/03/2014
I. What is NLB - Network Load Balancing?
Network Load Balancing is a feature of recent
Microsoft server operating systems, including
Windows 2000 Advanced Server, Windows
Server 2003, and Windows Server 2008.
Network Load Balancing is implemented in a
special driver installed on each Windows host
in a cluster. The cluster presents a single IP
address to clients. When client requests arrive,
they go to all hosts in the cluster, and an NLB
algorithm implemented in the driver maps each
request to a particular host. The other hosts in
the cluster drop the request. You can set load
partitioning to distribute specified percentages
of client connections to particular hosts. You
also have the option of routing all requests
from a particular client to the host that
handled that client’s first request.
If a host fails, client requests are rebalanced
across the remaining hosts, with each
remaining host handling a percentage of
requests proportional to the percentage you
specified in the initial configuration.
II. What is NLB Algorithm?
Network Load Balancing employs a fully
distributed filtering algorithm to map incoming
clients to the cluster hosts. The distributed
algorithm enables cluster hosts to make load-
balancing decisions independently and quickly
for each incoming packet. The distributed
algorithm is optimized to statistically load
balance traffic for large client populations and
is less effective when the client population is
small or the client connections produce widely
varying loads on the server.
Network Load Balancing balances incoming
client requests by directing a selected
percentage of new requests to each cluster
host. The algorithm does not respond to
changes in the load on each cluster host (such
as the CPU load or memory usage). However,
the mapping is modified when the cluster
membership changes, and load percentages are
renormalized accordingly.
When inspecting an arriving packet, all cluster
hosts simultaneously perform a statistical
mapping to quickly determine which host
should handle the packet. The mapping uses a
randomization function that calculates a host
priority based on the client's IP address, port,
and other state information. The corresponding
host forwards the packet up the network stack
to TCP/IP, and the other cluster hosts discard
it. The mapping does not vary unless the
membership of cluster hosts changes, ensuring
that a given client's IP address and port will
always map to the same cluster host. The
particular cluster host to which the client's IP
address and port map cannot be predetermined
since the randomization function takes into
account the current and past cluster's
membership to minimize re-mappings.
III. Where to use NLB?
NLB technology enables you to improve the
scalability and availability of Internet server
programs, such as Web servers, proxy servers,
DNS servers, FTP servers, virtual private
network servers, streaming media servers, and
terminal services servers.
IV. What is Covergence Test?
Network Load Balancing hosts periodically
exchange multicast or broadcast heartbeat
messages within the cluster. This allows the
hosts to monitor the status of the cluster.
When the state of the cluster changes (such as
when hosts fail, leave, or join the cluster),
Network Load Balancing invokes a process
known as convergence, in which the hosts
exchange heartbeat messages to determine a
new, consistent state of the cluster and to elect
the host with the highest host priority as the
new default host.
During convergence, the hosts continue to
handle incoming network traffic as usual,
except that traffic for a failed host does not
receive service. Client requests to surviving
hosts are unaffected. Convergence terminates
when all cluster hosts report a consistent view
of the cluster membership for several heartbeat
periods. If a host attempts to join the cluster
with inconsistent port rules or an overlapping
host priority, completion of convergence is
inhibited. This prevents an improperly
configured host from handling cluster traffic.
At the completion of convergence, client traffic
for a failed host is redistributed to the
remaining hosts. If a host is added to the
cluster, convergence allows this host to receive
its share of load-balanced traffic. Expansion of
the cluster does not affect ongoing cluster
operations and is achieved in a manner
transparent to both Internet clients and to
server programs. However, it may affect client
existing sessions because clients may be
remapped to different cluster hosts between
connections.
In unicast, multicast and IGMP-multicast
modes, each cluster host generates heartbeat
messages. Each heartbeat message occupies one
Ethernet frame and is tagged with the cluster's
primary IP address so that multiple clusters can
reside on the same subnet. Network Load
Balancing's heartbeat messages are assigned an
ether type-value of hexadecimal 886F and by
default are forwarded every second. During
convergence, the exchange period is reduced
by half in order to expedite the convergence
process.
Network Load Balancing assumes that a host is
functioning properly within the cluster as long
as it participates in the normal heartbeat
exchange among the cluster hosts. If other
hosts do not receive a heartbeat message from
any member for several periods of message
exchange, they initiate convergence. The
number of missed heartbeat messages is set to
five by default.g