By Frank DeRienzo
Principal Technical Support Engineer
Allaire Corp.
Ciscos Content Services Switch (CSS 11000) offers advanced
content aware load balancing. As a result of Allaires partnership
with Cisco, Allaire ClusterCATS is fully integrated with
the Cisco LocalDirector (LD) loadbalancer using the Dynamic
Feedback Protocol. This provides the LocalDirector with
ColdFusion load information and server status for use in
balancing decisions. The CSS 11000 does not use Dynamic
Feedback Protocol; it uses innovative means to determine
the state of a Web server. This article provides general
guidance for setting up a ColdFusion or JRun cluster behind
a CSS 11000. It also deals with the specific requirements
for running the CSS WebNS 4.0 keepalives HTTP HEAD and HTTP
GET with ColdFusion servers.
These keepalives look for a return value that tells CSS
the status of a Web server. The expected return value from
a HTTP HEAD keepalive is a 200 (status ok); if a 404 (object
not found) or a 302 (object moved) is received, the CSS
will consider the server to be dead and will not balance
content requests to it. The HTTP GET keepalive probes a
bit deeper. It looks for the 200, and checks the content
querying the server and recording a hash value for comparison
to subsequent queries. If the hash value changes, the server
is marked dead and content requests are not sent to it.
ColdFusion does not respond to the CSS keepalives with
the expected HTTP message format. The latest version of
CSS software, WebNS 4.10, is compatible with ColdFusion
and can accurately interpret the HTTP keepalive responses.
Go to the Cisco Web site to get CSS
WebNS 4.10 and the instructions
for the upgrade.
This upgrade is only available to Cisco customers who have
a current support agreement allowing access to Ciscos downloads.
If you are running WebNS 4.0 and need to set up your CSS
with ColdFusion prior to (or without) upgrading WebNS, you
must implement every step in the following example-based
workaround procedure to set up your ColdFusion cluster behind
CSS. If you upgrade to WebNS 4.10 or you are running JRun
instead of ColdFusion, you only need to use steps A through
C of the following procedure. Upon upgrade, step D becomes
superfluous and step E becomes limiting.
You may still use the entire article, but the CSS is rich
with various other configuration techniques not documented
here which become viable when running with ColdFusion after
a WebNS 4.10 upgrade or when configured with JRun. For example,
the WebNS 4.10 upgrade allows you to use the more sensitive
keepalive HTTP GET in front of ColdFusion servers; before
the upgrade you are limited to using keepalive HTTP HEAD
in front of ColdFusion. The following procedure has not
been tested with legacy ArrowPoint software released prior
to WebNS 4.0.
At the conclusion of these example-based steps, the CSS
will actively distribute load to the Web servers based on
packet flow. ClusterCATS will provide recovery of the Web
server and application server in the event of a hang or
crash, automatic e-mail alerts for server problems, and
daily server status reports.
Note: If you are running CF 5.0, instead
of clustering, you may wish to use the Server Monitoring
option with CSS.
Configuring CSS & WebNS 4.0 with ColdFusion & ClusterCATS
(CC)
Take the following example of a two-server cluster. Imagine
two server-class systems: Webserver-one.qa.nashua.allaire.com
and Webserver-two.qa.nashua.allaire.com configured in a
passive-mode cluster. The third entry will be used for the
virtual server on CSS.
Webserver-one.qa.nashua.allaire.com 192.168.64.11
Webserver-two.qa.nashua.allaire.com 192.168.64.12
www.qa.nashua.allaire.com 192.168.45.10
A.) Behind a CSS, you should place the two ColdFusion Web
servers into a passive-mode CC cluster. You must use static
Web site IP addresses; CC failover (high-availability) must
be turned off. During ColdFusion installation, select no
server failover. If you are running NT 4.0, do not set up
your Web servers with dynamic IP addresses. CSS will be
providing failover services. Dynamic IP addressing is only
used with CC's implementation of failover. If you are adding
CSS to a ColdFusion and CC cluster that is already set up
with dynamic Web site IP addresses on NT 4.0, you must switch
to static Web site IP addresses and disable CC failover.
1. To switch to static addresses, you must:
- Right-Click on Network Neighborhood and go to Properties
Protocols TCP/IP Advanced. Make the Web site IP
addresses static by adding to the primary NIC the addresses
that were the dynamic. Do this to each clustered server.
- Reboot each server.
2. To disable CC failover on NT servers, you should re-install
ClusterCATS choosing load balancing, but not failover.
This is the most robust way to disable failover because
it ensures that you are running the latest CC bits (that
are compatable with the version of your specific application
server - be careful not to mismatch versions) while completely
disabling CC failover services. Simply install CC into
the cfusion\brighttiger directory, choose load balancing
(not failover), and simply overwrite any older CC version.
Another way to disable failover follows:
- Stop the brighttiger and the ipcheck services: Start
Settings Control Panel Services Bright Tiger
Service Stop, Bright Tiger Ipcheck Stop.
- Go to the brighttiger/program directory.
- Rename ipaliasd.exe to wsm.exe.
- Restart the brighttiger service: Start Settings
Control Panel Services Bright Tiger Service
Start.
B.) Open the CC Explorer and select your cluster: Start
Programs ClusterCATS ClusterCATS Explorer - Right-click
on a cluster and select Properties Load-Balance Load-Balancing
Product Other
1. Enter the name of the CSS virtual server in the Website
Alias field. This is a Fully Qualified Host Name (FQHN)
with forward and reverse DNS entries. This FQHN is the
visible (to browsers, possibly PING, etc.) name of the
CSS VIP, it may correspond to what was previously the
Round Robin name prior to implementing the CSS. This is
the name that will be visible to all browsing clients;
it is the name placed in the client/customer browsers
URL line to get to your Web site.
- Click OK to apply your changes.
- 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 use the CC features, such as alarms and
reporting, the Web server probe, and the application
server probe set to restart a stalled ColdFusion server.
- To set up a CFProbe - 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) that is looking at a ColdFusion
Web page looking for the word "hello." If the page becomes
unavailable, the probe will restart the ColdFusion server.
- To set up alarms 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 - 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
C.) Configure the cfprobe.cfm to record application awareness;
edit cfprobe.cfm in the cfusion\brighttiger\btauxdir using
a simple text editor such as notepad in such a way that
ColdFusion is used to provide output. When properly configured
using cfprobe.cfm as the target page, CSS will detect failure
of an application server.
D.) Enable content rating in IIS on each front-end webserver:
- Start Programs NT4.0 Option Pack MIIS ISM.
- Right-click on the top level server (following our example
Webserver-one & Webserver-two)
- Choose properties Edit Http headers Edit Ratings
Ratings Check the box: Enable content ratings for
this resource
- Save your changes
E.) This example is designed as a ColdFusion supplement
to your CSS basic and advanced configuration guide. Use
this procedure along with your Cisco documentation incorporating
the following supplemental modifications illustrated using
the Web servers from our example and using a CSS virtual
server address (VIP) of 192.168.45.10:
Webserver-one.qa.nashua.allaire.com 192.168.64.11
Webserver-two.qa.nashua.allaire.com 192.168.64.12
www.qa.nashua.allaire.com 192.168.45.10
1. Create and configure a service for each node:
CS50#configure
CS50(config)# service Webserver-one
Create service , [y/n]:y
CS50(config-service[Webserver-one])# ip address 192.168.70.2
CS50(config-service[Webserver-one])# keepalive method head
CS50(config-service[Webserver-one])# keepalive port 80
CS50(config-service[Webserver-one])# keepalive type http
CS50(config-service[Webserver-one])# keepalive uri "/btauxdir/cfprobe.cfm
CS50(config-service[Webserver-one])# exit
CS50(config)# service Webserver-two
Create service , [y/n]:y
CS50(config-service[Webserver-one])# ip address 192.168.70.4
CS50(config-service[Webserver-one])# keepalive method head
CS50(config-service[Webserver-one])# keepalive port 80
CS50(config-service[Webserver-one])# keepalive type http
CS50(config-service[Webserver-one])# keepalive uri "/btauxdir/cfprobe.cfm
CS50(config-service[Webserver-one])# exit
2. Create an owner and content name for Webserver-one and
Webserver-two:
CS50 (config)# owner web1admin
Create owner , [y/n]:y
CS50(config-owner[web1admin])#
CS50(config-owner[web1admin])# content web1stuff
Create content , [y/n]:y
CS50(config-owner-content[web1admin - web1stuff])# add service Webserver-one
CS50(config-owner-content[web1admin - web1stuff])# add service Webserver-two
CS50(config-owner-content[web1admin - web1stuff])# protocol tcp
CS50(config-owner-content[web1admin - web1stuff])# url "/*"
CS50(config-owner-content[web1admin - web1stuff])# vip address 192.168.45.10
CS50(config-owner-content[web1admin - web1stuff])# active
(ctrl z)
CS50#save_config
CS50# show run
!************************** SERVICE **************************
service Webserver-one
ip address 192.168.70.2
keepalive method head
keepalive port 80
keepalive type http
keepalive uri "/btauxdir/cfprobe.cfm"
active
service Webserver-two
ip address 192.168.70.4
keepalive method head
keepalive port 80
keepalive type http
keepalive uri "/btauxdir/cfprobe.cfm"
active
!*************************** OWNER ***************************
owner web1admin
content web1stuff
add service Webserver-one
add service Webserver-two
protocol tcp
port 80
url "/*"
vip address 192.168.45.10
active
This concludes the article. The end-state of following
this workaround procedure is a ColdFusion or JRun cluster
running behind a Cisco CSS with CC monitoring ColdFusion
or JRun and IIS availability. This provides Web server recovery
in the event of a hang or crash, automatic e-mail alerts
for Web server problems, and daily server status reports.
Look for future enhancements as Cisco and Allaire work together
integrating these products. The integration of ClusterCATS
and LocalDirector was only the beginning.