Accessibility
 
 

Upgrading from CF 4.5.x to CF 5 and switching from a cluster to high availability monitoring.

If you are currently running in a CF 4.5x clustered environment, you should close all ClusterCATS explorers and reset each Web server using the ClusterCATS Server Administrator prior to upgrading to CF 5 and switching to the monitoring agent.

Start Programs ClusterCATS Server Admin Advanced Reset

During the installation of CF 5 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 CF 5 Administrator on all four Web servers:

Start Programs ColdFusion 5 Administrator

First we will set up ColdFusion probes to restart a stalled application server. At the top of the left hand panel, choose Tools. This will display the heading System Monitoring. Under System Monitoring, choose Web Servers and check the Enable box. Next choose System Probes and create a default probe by clicking the button New in the center screen. This will display probe properties; under the heading Failed Probe Response Settings, use the down arrow to choose the server you are managing: barth, brunner, pascal, or jansen. 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 are using the dfp agent with a Local Director, check the box to Restrict Web traffic to the selected server. Server restriction with BIG-IP and other non-dfp enabled devices is not configured here, it is configured by creating a monitor or probe on the actual load balancing device and is cover later in this article. The restriction block in the CF 5 monitoring agent probe is a dfp feature which will set the server weight on CLD to 0 if the application server becomes unavailable. 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 is a rather broad topic; it is a capability without walls deserving of many articles and case studies manifesting various configurations. You may use your imagination with this feature and feel free to share your ideas on the forums.

Note also: 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 CF 5 cfam components.

Next, 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 Ciscos Local Director. If you are using Local Director in the dfp mode, then following our example you must enter hld.qa.nashua.macromedia.com beside the heading Internal DNS Name and you would enter 10.64.22.234 beside the heading Internal IP Address. For BIG-IP you would leave this blank. Look for additional options here as we further integrate with non-dfp enabled hardware load balancing devices. Note that you must enter the administrative host name and address of the CLD, not the virtual server name and address.

Configuring Cisco Local Director in dfp-mode in front of your ColdFusion 5 production Web server farm.

Step 1: Complete the CLD basic hardware installation & configuration; give the CLD an IP address & subnet mask. The IP address 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 CLD. In this example, the address is 10.64.22.234, and the name is hld.qa.nashua.macromedia.com. From the terminal emulator attached to the CLD type in:

enable
config t
ip address 10.64.22.234 255.255.255.0

To finish your CLD configuration using telnet from a remote client, type in the IP address and subnet mask of the remote client using the following command from the terminal emulator:

telnet 10.64.22.0 255.255.255.0

Since these settings enable you to configure the CLD remotely, you will want to write them to memory to avoid the risk of losing them:

write mem

Now that you have given your CLD an address and name, you may telnet into your CLD from the client you have specified. For this example I am using telnet and have connected to the CLD using the Fully Qualified Host Name (FQHN) hld.qa.nashua.macromedia.com; this name corresponds in DNS to the address 10.64.22.234.

Step 2: Create a virtual server in CLD. The virtual server in CLD is an IP address that must correspond to a FQHN with forward and reverse DNS entries. If you are upgrading your existing site by adding CLD into a previously clustered environment, this virtual server FQHN will correspond to what was the RR name. 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. Following our example, telnet into your CLD and add the virtual server:

hld# enable
Password:
hld# config t
hld(config)# virtual 10.64.22.235:80:0:tcp is

The above example virtual server IP address corresponds in DNS to the name www.qa.nashua.macromedia.com Step 3: Enter your real servers in CLD; real servers are what Cisco calls the servers participating in the cluster (BIG-IP refers to them as nodes). On the CLD, 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 CLD, the virtual server is the name on CLD that is visible to browsers hitting your Web site. The real servers are the ones in the CF5 server farm behind the CLD. Following our example I am adding four real servers:

hld(config)# real 10.64.22.230:80:0:tcp is
hld(config)# real 10.64.22.231:80:0:tcp is
hld(config)# real 10.64.22.232:80:0:tcp is
hld(config)# real 10.64.22.233:80:0:tcp is

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

hld(config)# bind 10.64.22.235:80:0:tcp 10.64.22.230:80:0:tcp
hld(config)# bind 10.64.22.235:80:0:tcp 10.64.22.231:80:0:tcp
hld(config)# bind 10.64.22.235:80:0:tcp 10.64.22.232:80:0:tcp
hld(config)# bind 10.64.22.235:80:0:tcp 10.64.22.233:80:0:tcp

Step 5: Weight the predictor:

hld(config)# predictor 10.64.22.235:80:0:tcp weighted

Step 6: Use the CLDs dynamic-feedback command to specify the IP addresses of each real server (cluster member) and port number each server will use to listen for DFP requests from the CLD. This port number must be the same as the DFP Agent Listen Port. If you have more than one Web server hosted on a computer, even though the Web servers are in different clusters, they must have the same DFP Agent Listen Port number configured; the CF5 DFP agent will only listen on one port regardless of the number of servers. Do not use port 80. For this example I have used port 9124. If you use a port other than 9124, you will need to specify it under the Hardware Integration tab of CF 5 System Monitoring.

hld(config)# dynamic-feedback 10.64.22.230:9124 timeout 30 retry 0 attempts 10
hld(config)# dynamic-feedback 10.64.22.231:9124 timeout 30 retry 0 attempts 10
hld(config)# dynamic-feedback 10.64.22.232:9124 timeout 30 retry 0 attempts 10
hld(config)# dynamic-feedback 10.64.22.233:9124 timeout 30 retry 0 attempts 10

The DFP protocol will connect to real server 10.64.22.231 at port 9124. If the connection between the CLD and a server is closed for any reason, the CLD will attempt to reconnect, indefinitely, every 30 seconds. The CLD will close the connection if it is inactive for 60 seconds and redirect traffic to a responsive real server.

Use the CLD dynamic-feedback command settings, but do not use dynamic-feedback-pw; CF does not support secure dfp hosts. Use the dynamic-feedback-timeout option to set timeout to a value larger than the update frequency so that the CLD does not prematurely terminate the connection with the cluster because of inactivity. Macromedia Enterprise Product Engineering recommends that you set the value to at least two times the update frequency. Use the dynamic-feedback-retry option to set the retry value to zero (0) to ensure that the CLD will continue connection attempts to the CF dfp agent in the event of a lengthy period of system unavailability. For information concerning the CLD dynamic-feedback command, refer to:

http://www.cisco.com/univercd/cc/td/doc/product/iaabu/localdir/ld33rns/ldicgd/ld3_ch06.htm#xtocid15226164

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

hld(config)# write mem
Building configuration...
[OK]
hld(config)# show config
: Saved
: LocalDirector 420 Version 3.3.3
syslog output 20.7
no syslog console
hostname hld.qa.nashua.macromedia.com
no shutdown ethernet 0
no shutdown ethernet 1
no shutdown ethernet 2
interface ethernet 0 auto
interface ethernet 1 auto
interface ethernet 2 auto
mtu 0 1500
mtu 1 1500
mtu 2 1500
multiring all
no secure 0
no secure 1
no secure 2
no ping-allow 0
no ping-allow 1
no ping-allow 2
ip address 10.64.22.234 255.255.255.0
no rip passive
rip version 1
failover ip address 0.0.0.0
no failover
telnet 10.64.22.0 255.255.255.0
snmp-server enable traps
no snmp-server contact
no snmp-server location
virtual 10.64.22.235:80:0:tcp is
predictor 10.64.22.235:80:0:tcp weighted
real 10.64.22.230:80:0:tcp is
real 10.64.22.231:80:0:tcp is
real 10.64.22.232:80:0:tcp is
real 10.64.22.233:80:0:tcp is
bind 10.64.22.235:80:0:tcp 10.64.22.230:80:0:tcp
bind 10.64.22.235:80:0:tcp 10.64.22.231:80:0:tcp
bind 10.64.22.235:80:0:tcp 10.64.22.232:80:0:tcp
bind 10.64.22.235:80:0:tcp 10.64.22.233:80:0:tcp
dynamic-feedback 10.64.22.230:9124 timeout 30 retry 0 attempts 10
dynamic-feedback 10.64.22.231:9124 timeout 30 retry 0 attempts 10
dynamic-feedback 10.64.22.232:9124 timeout 30 retry 0 attempts 10
dynamic-feedback 10.64.22.233:9124 timeout 30 retry 0 attempts 10
hld(config)#

This concludes the configuration of the CLD in dfp-mode.

Configuring BIG-IP at layer two in front of your ColdFusion 5 production Web server farm.

You must attach a monitor and keyboard to your BIG-IP to start this procedure; there are some configuration variables required on BIG-IP as a layer two device that cannot be set through the browser interface. Upon booting your BIG-IP, verify that you are running 4.1. Just above the login prompt, it should read: BSDI BSD/OS 4.1 + BIG-IP Kernel. If you are running 4.0, add the PTF1 patch available for download from F-5. If you are running 3.X and you do not wish to upgrade, you will need to configure the site at layer-three instead of layer-two. The upgrade procedure to 4.0 follows:

Step 1: If you are not running 4.0, go to http://tech.f5.com/home/BIG-IP/solutions/general/sol1114.html for complete information about upgrading. Once you have downloaded the media and created a CD from the image, boot to the CDROM and ignore the warnings about your current configuration be brave! You must blow it all away to change layers. The upgrade will label the disk, format it and mount it, then reboot the BIG-IP. The upgrade will not erase your current BIG-IP software license.

reboot

Step 2. From the BIG-IP command line interface, run the BIG-IP first time boot configuration utility. The root password after the full upgrade is default.

Following our example, enter the host name of the BIG-IP:

hld.qa.nashua.macromedia.com

Press any key to continue then enter the IP address of the upstream default gateway. From our example enter:

10.64.22.1

With the next configuration screen, you have the option of setting the speed on the two interfaces. For this example I set them both to auto, but you may wish to enter the capabilities of the upstream and down stream hubs or switches.

Next, you will want to configure the external interface while leaving the internal interface un-configured. Following our example, assign the IP address to the external interface.

10.64.22.234

Next you should configure Web-browser access on the external interface. We will soon reach the point where we will be using a browser-based GUI to configure the BIG-IP. Choose the external interface and give it the same name as the host name:

hld.qa.nashua.macromedia.com

Configure the names and passwords for browser access and support access. Then follow the bouncing ball by answering such basic questions as your name, address, time zone, nmt support, etc.

For the purposes of this example I have not set up BIG-IP as a DNS Proxy because we will be setting up at layer-two. While you may use this feature at layer-two, it seems intuitive that it is really more valuable at layer-three where you would want your isolated Web servers to always have access to DNS in spite of any upstream outages.

BIG-IP will ask you to confirm all your entries one at a time. Be careful to inspect all your work and make any changes as needed. BIG-IP will also generate a key for browser-based configuration.

Reboot BIG-IP. This concludes the first time boot configuration, but you may not leave the command prompt just yet. You must configure layer-two before moving to your external browser configuration tool.

Step 3. Configure the BIG-IP interfaces to work at layer-two by giving both interfaces one IP address. Currently 10.64.22.234 is assigned only to the external interface. Lets delete it from the external interface, add both the internal and external interfaces to a VLAN group called l2_mode and assign the address to the new group.

Continuing with our example, delete the self IP address using the following command:

b self 10.64.22.234 delete

Next you will want to assign both the internal and external interfaces to one VLAN group. This will allow you to assign them one IP address.

b vlan l2_mode vlans add external internal

Assign the external address to the new VLAN group.

b self 10.64.22.234 vlan l2_mode netmask 255.255.254.0

Enable proxy forwarding.

b vlan l2_mode proxy_forward enable

Save your work.

b base save

Now you can ping through the BIG-IP bridge from the Web server farm, but you will not be able to ping to another subnet beyond the upstream default gateway. Reboot the BIG-IP; even though it does not ask for a reboot, you must reboot the BIG-IP at this point in order to be able to reach through any upstream default gateway beyond the subnet you are on.

reboot

Step 4. If you have not already done so, install PFT1 for 4.0 on BIG-IP. It is available at ftp.f5.com (or 216.34.94.32 if you have not set up your resolve.conf file for name resolution). Reboot BIG-IP after applying the patch.

Step 5. Now you are ready to move on to the browser based GUI to finish configuring BIG-IP. Launch a browser and following our example, you would hit the following URL:

https://hld.qa.nashua.macromedia.com

Lets confirm the current configuration. In the left side of the configuration utility screen, click on the icon Network. In the right screen you will see tabs called VLANs, VLAN Groups, Self IP Addresses, etc. Under the VLANs tab you should see external and internal; under VLAN Groups you should see l2_mode as a VLAN Group with external and internal as VLAN Groups. If you do not see this, then go back through steps 1-4.

Once you have confirmed the layer-two configuration, begin by setting up a node pool. In the left side of the configuration utility screen, click on the icon Pools. Next find the add button in the top left hand corner of the right window and add a pool. Name the pool cfservers, choose Round Robin load balancing and enter the IP addresses of your four Web servers (one at a time) under the field resources member address.

10.64.22.230
10.64.22.231
10.64.22.232
10.64.22.233

Choose http under the heading port. Ignore the member ratio & member priority fields and click on the arrows pointing to the current members field to enter each server into the cfservers pool.

Next lets select the Nodes icon in the left panel. You should now see the four nodes in your newly created pool in the center screen. Click on each IP address and under Node Properties, set a connection limit for each server. This limit will depend upon the capabilities of each server platform. I will set a connection limit of 1000 for each node. Hopefully you will use a number that reflects careful tests you ran against your application in a staging area. Macromedia Consulting Services can help you with this by providing an onsite performance and evaluation test using tools to stress your site by simulating actual production environment variables.

Next lets create a BIG-IP monitor that will probe the health of your ColdFusion application engine (in earlier BIG-IP releases, this was called Extended Content Verification or ECV). In the left side of the configuration utility screen, click on the icon for monitors. Then find the add button in the top left hand corner of the right window and add a monitor. Name the monitor cfprobe. It inherits from http. Accept the default timeouts 5 and 16. For the send string and receive rule use:

GET /btauxdir/cfprobe.cfm

Hello

Apply your changes.

Note: before setting this up, make sure 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 BIG-IP be able to reach it. If you cannot hit cfprobe.cfm, 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 CF 5 cfam components.

Now you must associate the new monitor with the servers or nodes in your new pool. Go to the Node Associations tab and choose the monitor you just created cfprobe. Use the arrow keys to select cfprobe as the Monitor Rule. Then check each box under the heading Associate Current Monitor for each node address. Apply your work.

Finally, you must create a Virtual Server on the BIG-IP and associate it with your server pool cfservers. Click on the Virtual Severs icon in the left panel of your browser screen. Following our example, enter the IP address of the virtual server. This address corresponds in DNS to the name that your browsing customer will use to hit your Web site.

10.64.22.235

Choose http or port 80. Click Next. Under the Basic Properties heading choose Enable Reset on Service Down. Under VLANS, you should see internal and external under the heading Existing. Click Next. Under the heading Select Physical Resources, choose the pool cfservers. Click Next; click Done. Go to Virtual Server Properties and set the connection limit. Since I have four servers each set to 1000, I will put 4000 in this field. You will want to set this number based on your load testing results.

Conclusion

CF 5 eliminates the need to configure a cluster of servers behind a hardware load balancing device (hld). If you running a high-end hld that sufficiently manages server load and provides content, application and transaction or server smart features (the CATS in ClusterCATS), you will want to take advantage of CF 5s capability to eliminate the overhead of clustering. On the other hand, if you have an hld that is less than optimal, and you think that clustering features may help make your site more resilient, you may wish to refer to Macromedia Knowledgebase Article 20160 for further integration information.