Load Balancing

You must configure the machines in the individual Network Load Balancing (NLB) configurations before installing K2. K2 requires that the NLB persistence type is set to IP Affinity.

Network Load Balancing vs Clustering

NLB clusters dynamically distribute the flow of incoming TCP and UDP traffic among the clustered nodes according to a set of traffic-handling rules. NLB clusters provide a highly available and scalable platform for applications such as Internet Information Services (IIS), on which all K2 sites run. NLB is used for stateless applications (those that do not rely on any state of a request).

NLB and server clusters complement each other in complex architectures: NLB is used for load balancing requests between front-end Web servers while server clusters provide high availability for backend database access.

A server cluster is a collection of servers that provide a single, highly available platform for hosting applications. Applications, such as SQL, fail over to ensure high availability in the event of planned downtime due to maintenance or unplanned downtime due to hardware, operating system, or application failures.

Server clusters provide high availability and disaster tolerance for mission-critical database management, file sharing, intranet data sharing, messaging, and general business applications. Failover clustering allows flexibility for adding and removing hardware in a geographically dispersed cluster environment, as well as providing improved scaling options for applications. You can deploy server clusters in a variety of different configurations, in particular:

  • Single cluster configurations with dedicated storage.
  • Multiple clusters on a storage area network (SAN), potentially with other Windows servers or operating systems.

In a clustered environment, the K2 server is only supported on NLB clusters. Installing the K2 server in a Windows server cluster environment is not supported.

Physical Network Environment and broadcast domains

Since a large installation typically uses more than one server in a load-balanced configuration, setting up the local network infrastructure can be more complex compared to a single server. This is because the Windows NLB technology causes multiple physical servers to appear as a single, logical server.

Network infrastructure must support the creation of multiple broadcast domains (virtual local area network, or VLAN) to segment incoming Web requests from the main production network. NLB broadcasts incoming traffic destined for the servers in an NLB group to all ports within their network collision domain (in this case, VLAN). In normal Web server deployment scenarios, the incoming traffic typically consists of a small number of HTTP GET requests and this may not be an issue. However, K2 and SharePoint network traffic may consist of large documents moving between servers.

As a result, it is imperative that the NLB adapters for the Web servers are not connected to the normal server network. You must create a separate logical or physical network, such as a VLAN, so the larger amount of incoming traffic is not flooded to the network ports of other servers, causing performance degradation on all servers within the network, not just the Web servers.

Furthermore, traffic to and from a SharePoint site or the K2 server involves a considerable amount of communication from the servers to the SQL database. Good connectivity to SQL is required. It is recommended that Web servers be dual-homed:

  • One network adapter handling the incoming requests by using NLB.
  • One network adapter acting as a normal server adapter to communicate to the server running SQL Server along with the other servers within the infrastructure, such as domain controllers for authentication purposes.

Installing or Upgrading Components

When installing or upgrading for load balancing, you must install K2 on each machine independently.

You must install/upgrade the primary node first before doing the other nodes.

The NLB cluster is configured using the operating system and should be configured prior to installing and configuring the K2 environment.

Additional Resources for NLB

NLB FAQ: http://technet.microsoft.com/en-us/library/cc725691(v=WS.10).aspx

While infrastructure changes are required by K2, each environment is different and has its peculiarities which must be taken into account. Modifying the infrastructure could have unforeseen results if the changes are not appropriately understood or managed. Given the broad spectrum of underlying infrastructure utilized, it is recommended that a panel or committee with appropriate skill in each area concerned be assembled to outline the underlying infrastructure changes and gauge the impact of the required changes.