Accessibility
 
 
Integrating ColdFusion or JRun Servers with Foundry Networks ServerIronXL

Integrating ColdFusion or JRun Servers with Foundry Networks ServerIronXL
Frank DeRienzo
Principal Support Engineer
Macromedia

Foundry Networks ServerIronXL is a popular load-balancing switch among Macromedia customers. This article describes in detail a simple layer-two configuration integrating ServerIronXL with Macromedia Enterprise server farms or clusters.

The following example-based article is divided into four parts. The first section describes an example Macromedia enterprise website; subsequent sections of the article will refer to this example to illustrate a best practice configuration.

The second section describes how to set up a ColdFusion 5.0 Enterprise server farm running the ColdFusion Application Manager Server Monitor Agent behind a ServerIronXL. The third section describes a how to set up the ServerIronXL to distribute load and provide failover and health monitoring for a Macromedia enterprise server farm or cluster.

Part four describes how best to set up a passive-mode ClusterCATS cluster of JRun or ColdFusion 4.5.1 SP2 Enterprise Servers behind ServerIronXL.

Three important notes before we proceed:

1. While the fourth procedure (clustering behind the ServerIronXL) can be used with CF5.0 Enterprise Server, Macromedia recommends that whenever a high-end hardware load-balancing device is employed with ColdFusion 5.0, use of the Server Monitor Agent should be considered a low-overhead replacement for clustering.
2. Both procedures outlined in this article describe a typical layer-two network configuration.
3. In previous articles we have provided best practice configuration guidance for setting up Macromedia Enterprise server farms or clusters behind various other hardware load-balancing devices.


For more information on these notes and for more details about the layer-two web server environment compared to layer-three, see the Macromedia Knowledgebase article: http://www.allaire.com/Handlers/index.cfm?ID=21570&Method=Full ColdFusion 5 Server Monitoring & Hardware Load Balancing Devices or see: http://www.allaire.com/handlers/index.cfm?ID=21780 Choosing a Hardware Load-Balancing Device.

Section 1. Our working example


As an example of website configuration, picture the following simple model of 2 web servers running behind a ServerIronXL at layer-two. This is how the server entries might appear in your hosts file:

10.64.20.129 brunner.dev.nashua.macromedia.com brunner
10.64.20.128 pascal.dev.nashua.macromedia.com pascal


If these web server addresses had corresponding DNS Round-Robin (RR) A-record entries such as those illustrated below, those entries should be deleted prior to implementing any hardware load-balancing solution.

www.dev.nashua.macromedia.com 10.64.20.128
www.dev.nashua.macromedia.com 10.64.20.129

The site name will become the virtual server name on the ServerIronXL and will replace RR DNS.

Now picture this same website behind a ServerIronXL set up as a layer-two bridge illustrated by the following hosts file:

10.64.20.130 serveriron.dev.nashua.macromedia.com hld
10.64.20.131 www.dev.nashua.macromedia.com www
10.64.20.129 brunner.dev.nashua.macromedia.com brunner
10.64.20.128 pascal.dev.nashua.macromedia.com pascal

Section 2. Setting up the Server Monitor Agent on ColdFusion 5.0 Enterprise real servers:


Notice that instead of DNS Round-Robin, the virtual server on the layer-two bridge (www.dev.nashua.macromedia.com) will receive all session traffic bound to each of the web servers and distributes traffic to them using algorithms and means of state verification.

If you are currently running in a ColdFusion 4.5x clustered environment and you wish to upgrade to ColdFusion 5.0 to employ the Server Monitor Agent, you should close all ClusterCATS explorers and reset each web server using the ClusterCATS Server Administrator prior to upgrading.

Start - Programs - ClusterCATS Server Admin - Advanced - Reset

During the installation of ColdFusion 5.0 be sure to select the correct components. Under the Application Management heading, select Monitoring, Alarms, and Hardware Load Balancing. Do not select ClusterCATS load balancing or it will override the monitoring agent and you will only have a clustering option.

After completing the upgrade and rebooting your servers, launch the ColdFusion 5.0 Administrator on all 4 web servers:

Start - Programs - ColdFusion 5 Administrator

First, you should set up ColdFusion probes to restart a stalled application server. At the top of the left hand panel, choose Tools. This setting will display the heading System Monitoring. Under System Monitoring, choose Web Servers

Next choose System Probes and create a default probe by clicking the button New in the center screen. This setting will display probe properties. Under the heading Failed Probe Response Settings, use the down arrow to choose the server you are managing: brunner or pascal.

Check the blocks Restart the ColdFusion Server & Log that the ColdFusion Server has been Restarted. If you have a script that you would like to run upon server failure, check the box Execute Script and browse to the script you want executed.

If you were using the dfp agent with a Local Director, you would check the box to Restrict Web traffic to the selected server, but ServerIronXL is not dfp enabled and the restriction option will have to be set up on the ServerIronXL. Server restriction with ServerIronXL and other non-dfp enabled devices is not configured here; it is configured by creating a health-check monitor or probe on the actual load-balancing device, which is covered later in this article. Click Submit Changes and the status of the probe should come up green or enabled; click back on the Web Servers link and confirm the probe status as active or enabled.

Note: You may also set up custom probes to stop and restart various services. This topic is rather broad; it is a capability without walls that deserves much discussion and case studies that show various configurations. You may use your imagination with this feature and feel free to share your ideas on the forums.

Note: Make sure that the virtual directory called btauxdir is created in IIS under the IIS virtual server you are monitoring and that instead of pointing to the legacy local path c:\cfusion\brighttiger\btauxdir, it points to c:\cfusion\cfam\btauxdir or the path to which you installed ColdFusion 5.0 cfam components.

The next step is to configure alarm notification. Click on Alarms and enter the SMTP address of your mail server. Under the heading Notification Recipients, enter your e-mail address and the address of anyone who should receive alarms from the server farm.

Under the Hardware Integration tab there is currently only an interface for the ColdFusion dynamic feedback protocol (dfp) agent to integrate with Cisco's Local Director. For ServerIronXL and any other non-dfp enabled hardware solution, you would leave this blank.

Section 3. Configuring ServerIronXL to provide load balancing, failover and health-checks for your Macromedia Enterprise server farm or cluster


Step 1: Complete the basic hardware installation and configuration. Give the ServerIronXL a hostname, IP address and subnet mask. If you are using a ServerIronXL that you wish to configure from scratch, erase the current configuration:

enable
erase startup
reload

The IP address you add should correspond to a fully qualified host name (FQHN) in DNS with both forward and reverse entries. This initial IP address and name is not the one that will be visible to browsing clients; it is only a maintenance address for the ServerIronXL.

In this example, the address is 10.64.20.130, and the name is serveriron.dev.nashua.macromedia.com. From the terminal emulator attached to the ServerIronXL, type in:

enable
config t
hostname serveriron
serveriron(config)# ip address 10.64.20.130 255.255.255.0


Add the upstream default gateway and local DNS server address and domain name.

ip default-gateway 10.64.20.1
ip dns domain-name dev.nashua.allaire.com
ip dns server-address 10.64.20.20


Because these settings are foundational, write them to memory to avoid the risk of losing them:

write mem

Note: When you are setting the ServerIronXL, consider the following cable requirements:

1. The administrative serial connection to the ServerIronXL requires a straight-through DB9 female to DB9 female connecting cable. The appropriate hyperterminal settings are 9600 - 8 - none - 1
2. To connect the ServerIronXL to a hub use a crossover cable
3. To connect the ServerIronXL to a switch use a crossover cable
4. To connect the ServerIronXL to a NIC use a straight-through cable

Step 2: Enter your real servers in ServerIronXL. real servers are what Foundry (and also Cisco) calls the servers participating in the cluster or farm. On the ServerIronXL, you will eventually bind the real servers (the servers participating in the cluster) with the virtual server.

This terminology may still seem strange. Remember that when referring to ServerIronXL, the virtual server is the name on ServerIronXL that is visible to browsers hitting your website. The real servers are the ones in the cluster or server farm behind the ServerIronXL.

Following our example I am adding two real servers with http ports:

serveriron(config)#server real brunner 10.64.20.129
serveriron(config-rs-brunner)# port http
serveriron(config-rs-brunner)# exit
serveriron(config)#server real pascal 10.64.20.128
serveriron(config-rs-pascal)# port http
serveriron(config-rs-pascal)# exit

Step 3. Create a virtual server on the ServerIronXL. The virtual server is an IP address that must correspond to a FQHN with forward and reverse DNS entries; this virtual server FQHN will correspond to what may have previously been the RR name.

This name will be visible to all browsing clients; it is the name placed in the client/customer browser's URL line to get to your website. Following our example, Telnet into your CLD and add the virtual server:

serveriron(config)# server virtual serverivip 10.64.20.131
serveriron(config-vs-serverivip)# port http


Step 4. Bind the real servers to the virtual server:

serveriron(config-vs-serverivip)# bind http brunner http pascal

Step 5. Save all these setting on ServerIronXL using the write mem command then check the configuration using the show config command:

serveriron# write mem
serveriron# show config


Step 6. Configure health-check monitors to determine the status of both the web server and the JRun or ColdFusion application server. Both the CFAM Server Monitor Agent and ClusterCATS set up a virtual directory on each real server call /btauxdir; btauxdir contains management content in that that we will use as a target for the ServerIronXL health-check monitor.

ColdFusion and JRun will each provide a different target file. If you are running ColdFusion, use cfprobe.cfm, if JRun use jrunprobe.jsp.

serveriron# config t
serveriron(config)# http match-list macromedia
serveriron(config)# default down
serveriron(config)# up simple Hello
serveriron(config)# write mem
serveriron(config)# server real pascal
serveriron(config-rs-pascal)# port http
serveriron(config-rs-pascal)# port http url "GET /btauxdir/cfprobe.cfm"
serveriron(config-rs-pascal)# port http keepalive
serveriron(config-rs-pascal)# port http content-match macromedia
serveriron(config-rs-pascal)#exit
serveriron(config)# server real brunner
serveriron(config-rs-brunner)#port http
serveriron(config-rs-brunner)#port http url "GET /btauxdir/cfprobe.cfm"
serveriron(config-rs-brunner)#port http keepalive
serveriron(config-rs-brunner)# port http content-match macromedia
serveriron(config-rs-pascal)# exit
serveriron# write mem

Note: before setting up this scenario, make sure that you can browse to btauxdir/cfprobe.cfm and see the word Hello on each individual web server. If you cannot get to it from your local browser, then neither will ServerIronXL. If you cannot hit cfprobe.cfm (or jrunprobe.jsp), make sure that the virtual directory called btauxdir is created in IIS under the IIS virtual server you are monitoring.

Step 7. If you wish to secure you settings and if you wish to manage your ServerIronXL configuration using Telnet from a remote client, you will want to put in some basic security parameters.

This example provides administrative privileges to the username support with the password binoche:

serveriron# enable
serveriron# config t
serveriron(config)# username support priv 0 password binoche

You may also wish to set a password for the enable command:

serveriron(config)# enable password binoche

Section 4. ClusterCATS integration behind ServerIronXL for JRun and ColdFusion 4.5.x server clusters

In this model, ServerIronXL will actively distribute load to the web servers based on packet flow and health monitoring of the both the web servers and application servers. Simultaneously, ClusterCATS (CC) will provide web server and ColdFusion or JRun enterprise server recovery in the event of a hang or crash, automatic e-mail alerts for web server and ColdFusion or JRun application server problems and daily server status reports.

To integrate CC with ServerIronXL:

Configure the ServerIronXL as specified above or use a similar procedure recommended by the manufacturer. If you use a different procedure, be sure to remember to add a health-checking component that incorporates a ColdFusion- or JRun-generated string.

If you are using a ServerIronXL in front of a CC cluster, you should use static website IP addresses and CC failover should be turned off. During ColdFusion/JRun CC installation, select no server failover. If you are running Windows NT 4.0 or Windows 2000, do not set up your web servers with dynamic IP addresses. The ServerIronXL will be providing failover services.

Dynamic addressing is only used with CC's implementation of failover. If you are adding a ServerIronXL to a ColdFusion or JRun CC cluster that is already set up with dynamic website IP addresses on Windows NT 4.0 or Windows 2000, you must switch to static website IP addresses and disable CC failover.

To switch to static addresses you must:

a. In Windows NT4.0 right-click on Network Neighborhood or and go to properties - protocols - TCP/IP - advanced. In Windows 2000 right-click on My Network Places then right-click on Local Area Connection - TCPIP properties - advanced. Make the website IP addresses static by adding to the primary NIC the addresses that were the dynamic. Do this to every server in the cluster.
b. Reboot each server

To disable CC failover on Windows NT servers without reinstalling CC:

a. Stop the brighttiger and the ipcheck services: Start - Settings - Control-Panel - Services - > Bright Tiger Service - Stop, Bright Tiger Ipcheck - Stop
b. Go to the brighttiger/program directory
c. rename ipaliasd.exe to wsm.exe


Note: This will not work for the CFAM version of CC deployed with ColdFusion 5.0.

To disable CC failover on a Linux or Solaris web server:

a. cd /opt/coldfusion/btcats/program
b. ./btadmin disable failover


ServerIronXL integration with CC does not require the windows-based CC explorer but you can use the CC Web Explorer to drive your Solaris or Linux-based ColdFusion 4.5.x and JRun clusters. You may also use it to remotely manage your Windows-based clusters.

The Windows-based CC Explorer it is a great interface and you can download the appropriate ClusterCATS Explorer (10.7 MB) from the Macromedia FTP site. When installing this package, choose only the Explorer option. The CC explorer is an excellent GUI; it will manage your Solaris or Linux-based ColdFusion 4.5.x or JRun cluster using port 9123.

If the explorer is on the opposite side of a firewall from the web servers, you will need to open ports 9123 and 9129 on the firewall. If you choose not to download the CC Explorer, you may use the CC Web Explorer to configure your Cluster.

a. Open the CC Explorer and select a cluster - start - programs ColdFusion server 4.5 - ClusterCATS Explorer - Right-click on a cluster and select - properties - LoadBalance - LoadBalancing Product - other
b. Enter the name of the website in the Website Alias field. This Fully Qualified Host Name (FQHN) has forward and reverse DNS entries. This FQHN is the visible (to browsers, PING, etc.) name of the HLB, and it may correspond to what was the RR name prior to implementing the HLB. This name will be visible to all browsing clients; it is the name placed in the client/customer browser's URL line to get to your website.
c. Click OK to apply your changes.
d. Right-click on a server in CC explorer. Choose - Configure - State - Passive Member


The server will turn from green to white. Do this to all servers in the cluster. You may now set up the CC features: alarms, probes, etc.

To set up a CFProbe or JRunProbe:

a. Right-click on a server in CC explorer and choose - new monitor - choose OK - click on the blue arrow over the label probe-type - click in the startup parameters field and arrow to the right without deleting any text - change the word NORESTART to RESTART - click on register - close - close.


You now have a monitor (CFProbe or JRunProbe) that is looking at a web page looking for the word "Hello." If the page becomes unavailable, the probe will restart the application server. You do not need to set up the web server probe; wsprobe is set up automatically when you install CC. It monitors the health of IIS, Netscape or Apache and attempts to restart a stalled web server.

To set up alarms:

a. Right-click on the cluster in CC explorer and choose - configure - alarm notification - put in your mail server address in the SMTP host field - type in the e-mail addresses of anyone you want alerted for the various events.

To setup support mail:

a. Right-click on the cluster in CC explorer and choose - configure - support - put in your mail server address in the SMTP gateway field - type in the e-mail addresses of anyone you want to have receive daily reports.

Conclusion:

By following the example-based procedures outlined in this article, you will set up a resilient Macromedia enterprise production website employing a hardware load-balancing device. The ServerIronXL will provide load balancing and failover; it will also constantly monitor the health of your application servers and your web servers. If it senses a problem with a server, it will redirect session traffic to a healthy server.

While ServerIronXL is distributing load based on the algorithm of choice, the ColdFusion Application Manager Server Monitor Agent (or ClusterCATS) will employ probes to monitor and restart any stalled application or web server. It will also send out alarms and status reports that will let your website administrator fix issues before they become problems.