Accessibility
 
 
Clustering Allaire Application Servers Behind Cisco’s Content Services Switch (Formerly Arrowpoint)

By Frank DeRienzo
Principal Technical Support Engineer
Allaire Corp.

Cisco’s Content Services Switch (CSS 11000) offers advanced content aware load balancing. As a result of Allaire’s 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 Cisco’s 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 browser’s 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.
    1. 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.

    2. 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.

    3. 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.


<CFSET AITCH="H">
<CFOUTPUT>
#AITCH#ello world
</CFOUTPUT> 

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.