Load Balancing and Availability
Load Balancing and Availability
This topic applies to Microsoft Speech Server (MSS) Enterprise Edition only.
Load balancing is required if MSS software or if Web server software (IIS and ASP.NET) is distributed on multiple computers. Computers running the same service can be connected into a server farm, or server cluster. Load balancing routes traffic among computers in the server farm and enhances service availability and scalability.
For Speech Engine Services (SES) and for Web servers, a hardware-based load balancer or software-based load balancing based on Windows Network Load Balancing (NLB) can be used.
For Telephony Application Services (TAS), a load balancer is not supported. Instead, a Private Branch Exchange (PBX) or similar system is needed to route telephone calls to multiple TAS computers.
When distributing MSS on multiple computers, a minimum of two computers is recommended per server farm for service availability. For example, if one MSS computer fails or is offline for maintenance, the remaining computer in the server farm is still available, thus preventing a potential single point of failure. This applies to Web servers as well.
Note When using load balancing, specify the DNS name of the hardware load balancer or the cluster name of the computer that NLB is running on. Do not specify the IP address or virtual IP address of the load balancer. In addition, do not specify individual computers behind the load balancer.
Hardware Load Balancer
Any hardware load balancer that switches traffic at the network transport layer 4 (L4/7) is supported for MSS and for the Web servers.
See the hardware manufacturer's documentation for installation information, including how to configure a load balancer for failover and to route traffic to other computers in a server farm.
Software Load Balancing
Software load balancing support includes NLB, which is a networking component provided with the Windows Server family operating system. NLB employs a cluster of two or more node computers (computers that are members of the cluster) working together.
NLB uses TCP or UDP port rules that describe which traffic to load-balance and which traffic to ignore. By default, NLB configures all ports for load balancing. It is necessary to modify how incoming network traffic is load-balanced on a per-port basis by creating port rules that cover specific port ranges.
Each computer runs separate but identical copies of required system software with the load distributed among all such computers. When a computer in a server farm fails or goes offline, NLB automatically reconfigures the cluster to redirect traffic to the remaining computers. Load is automatically redistributed among all computers that are still operating.
Note You cannot run NLB within an MSS computer network that has Internet Protocol Security (IPSec) configured. IPSec is based on an end-to-end security model, establishing trust and security from a source IP to a destination IP address. Typically, both sides require IPSec configuration, called an IPSec policy, to set options and security settings that will allow two computers (TAS and SES) to agree on how to secure traffic between them. NLB relies on the IP address and port of the source. With IPSec, this information is encapsulated and unavailable to NLB, thus the load balancing fails. You can work around this issue by creating an exemption that excludes the TAS and SES computers from the IPSec policy. For more information, see this Microsoft Knowledge Base article.
For more information on NLB, including cluster setup instructions and best practices for preserving service availability, see Windows Server Help.
Using a PBX System for TAS
For TAS, a load balancer is not supported. Instead, a Private Branch Exchange (PBX) or similar system is needed to route incoming telephone calls among multiple TAS computers.
When distributing TAS on multiple computers, a minimum of two computers is recommended for TAS service availability. If one TAS computer fails or is offline for maintenance, the remaining computer in the server farm is still available, thus preventing a potential single point of failure.
Close coordination is required between telephony interface manager (TIM) software and with the PBX to ensure that failover and the rerouting of telephone calls functions correctly.
See the PBX manufacturer's documentation for more information on installing a PBX system, how to configure a PBX for automatic failover and call routing to a different computer, and best practices for preserving service availability. In addition, see the manufacturer's documentation for the TIM software for information about properly interfacing with the PBX system.