Setting up your EntireX Environment for NLB

Scenario: "I want to use Windows NLB for my high availability cluster."


Setting Broker Attributes

graphics/win-nlb.png

Segmenting dynamic workload from static server and management topology is critically important. Using broker TCP/IP-specific attributes, define two separate connection points:

  • One for RPC server-to-broker and admin connections. graphics/no1.gif

  • The second for client workload connections. graphics/no2.gif

See TCP/IP-specific Attributes. Sample attribute file settings:

  Sample Attribute File Settings Note
graphics/no1.gif
PORT=1972
In this example, the HOST is not defined, so the default setting will be used (localhost).
graphics/no2.gif
HOST=10.20.74.103 (or DNS)
PORT=1811
In this example, the HOST stack is the virtual IP address. The PORT will be shared by other brokers in the cluster.

Broker Cluster Considerations

Platform-independent Considerations

We recommend the following:

  • Share configurations - you will want to consolidate as many configuration parameters as possible in the attribute setting. Keep separate yet similar attribute files.

  • Isolate workload listeners from management listeners.

Windows-specific Considerations

  • The network load balancing service for all the machines should have the correct local time. Ensure the Windows Time Service is properly configured on all hosts to keep clocks synchronized. Unsynchronized times will cause a network login screen to pop up which doesn't accept valid login credentials.

  • You have to manually add each load balancing server individually to the load balancing cluster after you've created a cluster host.

  • To allow communication between servers in the same NLB cluster, each server requires the following registry entry: a DWORD key named "UnicastInterHostCommSupport" and set to 1, for each network interface card's GUID (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WLBS\Parameters\Interface{GUID})

  • NLB may conflict with some network routers, which are not able to resolve the IP address of the server and must be configured with a static ARP entry.

  • Monitor brokers through Command Central.

Configuring Redundant RPC Servers

In addition to broker redundancy, you also need to configure your RPC servers for redundant operations. We recommend the following best practices when setting up your RPC servers:

  • General Hints
    • Make sure your definitions for CLASS/SERVER/SERVICE are identical across the clustered brokers. Using identical service names will allow the broker to round-robin messages to each of the connected RPC server instances.

    • For troubleshooting purposes, and if your site allows this, you can optionally use a different user ID for each RPC server.

    • RPC servers are typically monitored using Command Central as services of a broker.

    • Establish the broker connection using the static Broker name:port definition.

  • Natural RPC Server
    • Maintain separate parameter files for each Natural RPC Server instance.

Managing Brokers and RPC Servers

Lifecycle Management of Brokers

An important aspect of high availability is during planned maintenance events such as lifecycle management, applying software fixes, or modifying the number of runtime instances in the cluster. Using a virtual IP networking approach for broker clustering allows high availability to the overall working system while applying these tasks.

Broker administrators, notably on Linux and Windows systems, have the need to start, ping (for Broker alive check) and stop Broker as well as RPC servers from a system command-line, prompt or from within batch or shell scripts. To control and manage the lifecycle of brokers, the following commands are available with Command Central:

  • sagcc exec lifecycle start local EntireXCore-EntireX-Broker-<broker-id>
  • sagcc get monitoring state local EntireXCore-EntireX-Broker-<broker-id>
  • sagcc exec lifecycle stop local EntireXCore-EntireX-Broker-<broker-id>
  • sagcc exec lifecycle restart local EntireXCore-EntireX-Broker-<broker-id>

Lifecycle Management of RPC Servers

Start of instruction setTo start an RPC server

Start of instruction setTo ping an RPC server

  • Use the following Information Service command:

    etbinfo -b <broker-id> -d SERVICE -c <class> -n <server name> -s <service> --pingrpc

Start of instruction setTo stop an RPC server

Restrictions

  • All hosts in the NLB cluster must reside on the same subnet and the cluster's clients are able to access this subnet.

  • When using NLB in multicast or unicast mode, routers need to accept proxy ARP responses (IP-to-network address mappings that are received with a different network source address in the Ethernet frame).

  • Make sure the Internet control message protocol (ICMP) to the cluster is not blocked by a router or firewall.

  • Cluster hosts and the virtual cluster IP need to have dedicated (static) IP addresses. This means you must request static IPs from your Network Services group.

  • NLB clustering is a stateless failover environment that does not provide application or in-flight message recovery.

  • Only TCP/IP is configured on the network interface that the NLB is configured for.