Accessibility
 
Home / Developer Center / ColdFusion MX Application Developer Center /

ColdFusion Article

Frank DeRienzo
Frank DeRienzo
Principal Support Engineer
Macromedia, Inc.
 
Configuring ServerIronXL Load Balancing, Fail Over, and Health Checks in a Macromedia Enterprise Cluster


Among the various hardware load-balancing devices, the ServerIronXL has gained popularity. Its interface is very similar to that of Cisco's Local Director (CLD); many of the commands used to configure each are identical. One of the differences (among several) between the two devices is that ServerIronXL does not offer the dynamic feedback protocol (DFP); it does, however, offer health-check monitoring features that will redirect sessions away from a faulty web application. The following steps will walk you through configuring your ServerIronXL with Macromedia application servers.

Step 1: Complete the basic hardware installation and configuration
Follow the manufacturer's instructions to unpack, power up, and connect the switch to a terminal emulator. 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. From the command prompt of the ServerIronXL using the terminal emulator, type in the following commands:

enable
erase startup
reload

Note: 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 server configuration, the server address is 10.64.20.130, and the name is serveriron.enterprise.macromedia.com. From the terminal emulator attached to the ServerIronXL, enter:

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

(You will use this example to display other settings in this article.)

Add the upstream default gateway, local DNS server address, and domain name. The following settings are fictitious, but correspond to the example in this tutorial.

ip default-gateway 10.64.20.1
ip dns domain-name enterprise.macromedia.com
ip dns server-address 10.64.20.20

Note: These are important settings. Write them to memory to avoid the risk of losing them. To do so, use the following command:

write mem

When you are setting the ServerIronXL, follow these 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 twisted-pair crossover cable.
  3. To connect the ServerIronXL to a switch, use a twisted-pair crossover cable.
  4. To connect the ServerIronXL to a NIC, use a straight-through twisted-pair cable.

Step 2: Enter your real servers in ServerIronXL
Real servers are what Foundry (and 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 on the ServerIronXL. 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 the tutorial example, add 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 Round-Robin (RR) name. Following our example, the FQHN is 10.64.20.131.

The name corresponding to this IP address will be visible to all browsing clients. It is the name placed in the client/customer browser's URL line, the website name that you use to enter the site, or the address you use to get to your website. Following our example, use telnet to get into your ServerIronXL 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
To bind the real servers to the virtual server, use the following:

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

Step 5. Save your settings
Save all of these setting on ServerIronXL using the write mem command. Next, check the configuration using the show config command:

serveriron# write mem
serveriron# show config

Step 6. Configure health-check monitors
Configure health-check monitors to determine the status of both the web server and the Macromedia JRun or Macromedia ColdFusion application server. Macromedia ClusterCATS sets up a virtual directory on each real server called /btauxdir. The btauxdir virtual directory contains management content that that we will use as a target for the ServerIronXL health-check monitor.

ColdFusion MX and JRun 4 will each provide a different target file. Each adds the files during the ClusterCATS installation. If you are running ColdFusion MX, use cfprobe.cfm; if JRun 4, use jrunprobe.jsp. If you are not running ClusterCATS, you may create a file that produces an application-dependent string to probe. The files cfprobe.cfm and jrunprobe.jsp simply produce the JRun- or ColdFusion-generated string: Hello.

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, ensure that you can browse to btauxdir/cfprobe.cfm and see the output "Hello" on each individual web server. If you cannot see it displayed from your local browser, ServerIronXL will not see it either. If you cannot get to cfprobe.cfm (or jrunprobe.jsp), make sure that you have created the virtual directory called btauxdir in IIS (under the IIS virtual server you are monitoring).

Step 7. Secure your settings
You should add some basic security parameters, especially if you wish to manage your ServerIronXL configuration using Telnet from a remote client. The following 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

(Or, you can use your own favorite actress's last name for the password instead of mine!)

You have completed setting up ServerIronXL.

By following the example-based procedures outlined in this article, you have 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, 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 inform your website administrator to fix issues before they become problems with your enterprise application.

 


About the author
Prior to joining BrightTiger/Allaire/Macromedia in June 1997, Frank S. DeRienzo had a distinguished military career with the US Army Rangers and Special Forces. He is a graduate of US Army Command and General Staff College and holds an MBA from U-Mass. During his tenure with Macromedia, he has focused on high availability and scalability through website clustering and web server integration with various hardware load-balancing and content-management platforms. Currently he is part of the Strategic Onsite Services team.