Afterburner, AppletAce, Attain, Attain Enterprise Learning System, Attain Essentials, Attain Objects for Dreamweaver, Authorware,
Authorware Attain, Authorware Interactive Studio, Authorware Star, Authorware Synergy, Backstage, Backstage Designer, Backstage
Desktop Studio, Backstage Enterprise Studio, Backstage Internet Studio, ColdFusion, Design in Motion, Director, Director
Multimedia Studio, Doc Around the Clock, Dreamweaver, Dreamweaver Attain, Drumbeat, Drumbeat 2000, Extreme 3D, Fireworks,
Flash, Fontographer, FreeHand, FreeHand Graphics Studio, Generator, Generator Developer's Studio, Generator Dynamic Graphics
Server, JRun, Knowledge Objects, Knowledge Stream, Knowledge Track, Lingo, Live Effects, Macromedia, Macromedia M Logo &
Design, Macromedia Flash, Macromedia Xres, Macromind, Macromind Action, MAGIC, Mediamaker, Object Authoring, Power
Applets, Priority Access, Roundtrip HTML, Scriptlets, SoundEdit, ShockRave, Shockmachine, Shockwave, Shockwave Remote,
Shockwave Internet Studio, Showcase, Tools to Power Your Ideas, Universal Media, Virtuoso, Web Design 101, Whirlwind and Xtra
are trademarks of Macromedia, Inc. and may be registered in the United States or in other jurisdictions including internationally. Other
product names, logos, designs, titles, words or phrases mentioned within this publication may be trademarks, servicemarks, or
tradenames of Macromedia, Inc. or other entities and may be registered in certain jurisdictions including internationally.
This product includes code licensed from RSA Data Security.
This guide contains links to third-party websites that are not under the control of Macromedia, and Macromedia is not responsible for
the content on any linked site. If you access a third-party website mentioned in this guide, then you do so at your own risk. Macromedia
provides these links only as a convenience, and the inclusion of the link does not imply that Macromedia endorses or accepts any
responsibility for the content on those third-party sites.
Apple Disclaimer
APPLE COMPUTER, INC. MAKES NO WARRANTIES, EITHER EXPRESS OR IMPLIED, REGARDING THE ENCLOSED
COMPUTER SOFTWARE PACKAGE, ITS MERCHANTABILITY OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
THE EXCLUSION OF IMPLIED WARRANTIES IS NOT PERMITTED BY SOME STATES. THE ABOVE EXCLUSION MAY
NOT APPLY TO YOU. THIS WARRANTY PROVIDES YOU WITH SPECIFIC LEGAL RIGHTS. THERE MAY BE OTHER
RIGHTS THAT YOU MAY HAVE WHICH VARY FROM STATE TO STATE.
Using ClusterCATS describes how to use ClusterCATS, the clustering technology that
provides load-balancing and failover services to assure high availability for your web
servers.
Contents
• Developer resources.............................................................................................. viii
• About Macromedia documentation........................................................................ ix
• Contacting Macromedia.......................................................................................... x
vii
Developer resources
Macromedia, Inc. is committed to setting the standard for customer support in developer
education, documentation, technical support, and professional services. The
Macromedia website is designed to give you quick access to the entire range of online
resources. The following table shows the locations of these resources.
ResourceDescriptionURL
Macromedia
website
Information on
ColdFusion
Macromedia
ColdFusion
Support Center
ColdFusion
Online Forums
Information on
JRun
JRun Support
Center
JRun Online
Fo ru m s
Installation
Support
TrainingInformation about classes, on-site training,
ColdFusion
Developer
Resources
ColdFusion
Reference Desk
General information about Macromedia
products and services
Detailed product information on
ColdFusion and related topics
Professional support programs that
Macromedia offers
Access to experienced ColdFusion
developers through participation in the
Online Forums, where you can post
messages and read replies on many
subjects relating to ColdFusion
Detailed product information on JRun and
related topics.
Professional support programs that
Macromedia offers.
Access to experienced JRun developers
through participation in the Macromedia
Online Forums, where you can post
messages and read replies on many
subjects relating to JRun.
Support for installation-related issues for
all Macromedia products
and online courses offered by Macromedia
All the resources that you need to stay on
the cutting edge of ColdFusion
development, including online discussion
groups, Knowledge Base, technical
papers, and more
Development tips, articles,
documentation, and white papers
All of the resources that you need to stay
on the cutting edge of JRun development,
including online discussion groups,
Component Exchange, Resource Library,
technical papers, and more.
Connection with the growing network of
solution providers, application developers,
resellers, and hosting services creating
solutions with ColdFusion
http://www.macromedia.com/desdev/
developer/
http://www.macromedia.com/partners/
About Macromedia documentation
Macromedia documentation is designed to provide support for the complete spectrum of
participants. The print and online versions are organized to let you quickly locate the
information that you need. The Macromedia online documentation is provided in
HTML and Adobe Acrobat formats.
Viewing online documentation
All Macromedia documentation is available online in HTML and Adobe Acrobat
Portable Document Format (PDF) files.
The PDF files are included on the product CDs and are installed in the docs directory,
although they are an optional part of the installation.
About Macromedia documentationix
Contacting Macromedia
Corporate
headquarters
Technical supportMacromedia offers a range of telephone and web-based
SalesToll Free: 888.939.2545
Macromedia, Inc.
600 Townsend Street
San Francisco, CA 94103
Tel: 415.252.2000
Fax: 415.626.0554
Web: http://www.macromedia.com
support options. Go to http://www.macromedia.com/support
for a complete description of technical support services.
ClusterCATS is a web server clustering technology that provides load-balancing and
failover services that assure high availability for your web servers. ClusterCATS lets you
cluster distributed servers into a single, high-performance, highly available environment
of web server resources.
A cluster consists of two or more web servers located on a LAN or across a WAN. Web
servers included in a cluster operate as a single entity to provide rapid and reliable access
to resources on those web servers. A cluster can help your website avoid the consequence
of busy and failed servers — slow networks. With ClusterCATS you can avoid
bandwidth, latency, and congestion problems.
• System requirements................................................................................................ 7
1
ClusterCATS overview
The ClusterCATS technology provides robust features for website availability, load
balancing, and failing-over servers.
A website is no longer just a web server. Most websites have moved beyond static HTML
pages on a web server. To generate dynamic content or process transactions, a website
now includes multiple resources — web servers, files, applications, databases, and other
software processes on multiple servers in one or more locations. The move to a more
advanced site, consisting of multiple resources, often from multiple vendors, introduces a
major problem — overall site availability and performance. More resources, especially
software resources, and more links between them exponentially increase the probability
of failure. Creating a fast, reliable website becomes substantially more challenging.
Macromedia created ClusterCATS, a complete website resource management solution, to
enable service level agreements offering 24x7 availability and optimal response time for
e-commerce, customer self-service, sales automation, customer support, and other critical
business functions. With ClusterCATS, you can build and manage advanced websites,
consisting of multiple resources spanning multiple servers, in one or more locations.
ClusterCATS builds and manages clusters. A cluster is a group of website resources,
including web servers, files, applications, databases, and even the network, that act in
unison, providing reliable and rapid user access. These resources can be clustered in a
single building, distributed in a local area network (LAN), or distributed in a wide-area
network (WAN) in multiple locations across the world. A cluster intelligently detects and
transparently shields users from the following critical problems:
• Failed and busy servers
• Failed and busy applications and databases
• Slow networks caused by congestion, latency, and bandwidth problems
ClusterCATS capabilities
ClusterCATS delivers critical capabilities required by advanced websites today. These
capabilities produce important benefits in the areas of website performance, availability,
manageability, and scalability.
User response time is accelerated with ClusterCATS application and server load
management.
ClusterCATS consists of server and client components. The ClusterCATS Server runs as
a Windows service and ISAPI filter, NSAPI plug-in, or Apache module. ClusterCATS
Explorer is the client-based management application used to build and manage clusters.
Operating in conjunction with an administrative agent on each ClusterCATS Server,
ClusterCATS Explorer provides all the required tools for centrally managing one or more
clusters from any location.
You can also configure ClusterCATS software to enhance simple web server
load-balancing products, such as Cisco’s special-purpose LocalDirector hardware device.
2Chapter 1 Before You Begin
The following table introduces the ClusterCATS capabilities:
Fea tureDe scrip tion
Application and server
load management
Server failoverProvides seamless failover of a web server because of a
Session state
management
Application monitorYou can configure ClusterCATS to monitor the JRun/ColdFusion
Distributed operations Exploits a distributed operations model, eliminating traffic
Centralized
management
Allows administrators to configure server load thresholds to
provide optimum user response time in JRun/ColdFusion
applications. ClusterCATS Server load management protects
users from overloaded servers.
hardware, software, or network connection to another member in
the cluster. ClusterCATS shields users from unplanned or
planned server failures.
Allows session state to be maintained across your website using
a unique method that eliminates the source IP address server
overload problems caused by proxy users. ClusterCATS
application state management ensures users are not redirected
away from a server while maintaining state.
server or a JRun/ColdFusion application, and restart the server or
application if a failure occurs.
bottlenecks and maximizing performance and availability. All
servers share knowledge of application or web server
performance, and server availability. Each server can respond
directly to a request or redirect a request to a faster server.
Provides a central console to manage and configure all web
servers in your cluster. ClusterCATS Explorer provides both
high-level and detailed views of the status of one or more
websites and all the resources within a website.
Detailed overview
Application and server load management
ClusterCATS improves user response time by managing application load and web server
load across multiple servers.
You establish load management policy through two administrator-defined response time
thresholds. You configure these for each server. One threshold sets the level at which load
management is activated. If this level of activity is reached, ClusterCATS gradually
redirects a percentage of new server requests to the least-loaded server.
The other threshold defines the peak, or maximum, load level. This is defined as the load
level that should not be reached on that server. If this threshold is attained, an alarm is
sent and requests is redirected.
ClusterCATS overview3
Session state management and failover
For some applications, it is important that a user session is completed on one server.
ClusterCATS offers a session state management option that ensures that the same web
server services requests from a user. When enabled, this option sends the user to the
best-performing server. The user session then remains on that server until completion.
ClusterCATS defines a new session for the following:
• A user comes from a different domain
• A user enters a new URL
• A user employs a bookmark
This approach has distinct advantages over other methods, such as using a source IP
address to define a user session. The ClusterCATS definition of a session is particularly
beneficial if many visitors come from a large proxy server (for example, America Online).
In that scenario, web servers could easily become overloaded.
Should user state be lost completely due to a resource failure, ClusterCATS provides
graceful state failover. This capability automatically displays an administrator-defined
URL for a custom HTML page or JRun page upon resource failure. This page can be
designed to apologize for the failure and, if replicated resources are available, direct the
user to restart the application at the beginning via a specific URL.
Distributed operations
ClusterCATS uses a distributed operations model, eliminating traffic bottlenecks and
maximizing performance. While other hardware and software load-balancing solutions
force all user requests and, typically, all responses through a single special-purpose
network device or server, each ClusterCATS Server can receive a request, respond to a
request, manage traffic load, and support failover. Unlike hardware load-balancing
solutions, ClusterCATS performance is not throttled by network media limitations and
ClusterCATS is network media independent. Consequently, performance scales linearly
as servers and resources are added.
Centralized management
ClusterCATS Explorer, operating in conjunction with an administrative agent on each
ClusterCATS Server, provides all the required tools for building and managing a website
from any location, whether it be an operations center, hotel, or home.
ClusterCATS Explorer features a familiar Windows Explorer-like user interface and
provides both detailed and high-level status views of one or more websites and all
resources within a website.
ClusterCATS Explorer views include:
• Simplifies user interface for the configuration tasks of building a website, including
adding and removing resources, setting load thresholds, selecting alarms, designating
administrators, configuring replication, and state management capabilities
• Real-time graphs of the actual application or HTTP server load and load thresholds
4Chapter 1 Before You Begin
ClusterCATS product configurations
ClusterCATS includes a comprehensive core set of features and offers several add-on
options for extending its capabilities. All ClusterCATS configurations include:
• Macromedia Enterprise Server (ColdFusion and JRun) load manager
• Configurable load thresholds
• Real-time load monitor
• Session state management (server level)
• HTTP server monitor and auto-restart
• Real-time web server availability monitor
• Web server failover option
• Web server restriction
• Macromedia Enterprise Server monitor and auto-restart
• Macromedia Enterprise Server application monitor and auto-restart
• Administrator authentication
• Alarms
• Daily reports
ClusterCATS overview5
ClusterCATS components
ClusterCATS consists of these primary components:
• ServerResides on each computer in a cluster. It communicates with the web server
and other ClusterCATS Servers. For more information, see “ClusterCATS Server” on
page 48.
• Server Administrator (Windows only) or btadminLets you perform server-specific
administration tasks through a graphical interface. For UNIX-based administration,
use the scriptable btadmin utility, which is also available for Windows users. For more
information, see “ClusterCATS Server Administrator” on page 52 and “Using
btadmin” on page 122.
• ClusterCATS Explorer and Web Explorer Graphical utilities for creating and
managing clusters in Windows and UNIX environments, respectively. For more
information, see “ClusterCATS Explorer (Windows only)” on page 48 and
“ClusterCATS Web Explorer (UNIX only)” on page 49.
The following table shows which components ClusterCATS installs on each platform:
Windows InstallationUNIX Installation
ClusterCATS ServerClusterCATS Server
btadmin and ClusterCATS Server
Administrator
ClusterCATS ExplorerClusterCATS Web Explorer (Note: You can access
btadmin (Note: You can administer a UNIX cluster
with the ClusterCATS Server Administrator from a
Windows computer outside the cluster.)
this from a Windows or UNIX computer.)
You must run the installation program on each server that will be part of your cluster and
on the Windows computer (NT, 2000, .NET Server, 98, or 95) from which you will use
ClusterCATS Explorer to administer the cluster. Even if your clusters run on Solaris or
Linux platforms, obtain a Windows computer for running ClusterCATS Explorer. If you
cannot, use the ClusterCATS Web Explorer in conjunction with the included server
utilities to administer your clusters.
6Chapter 1 Before You Begin
System requirements
This section describes the platforms on which the ClusterCATS components run and
their minimum system requirements.
ClusterCATS Server system requirements
You must install the ClusterCATS Server component on each server in your cluster.
Ensure that your server meets the minimum system requirements for your platform.
Windows system requirements for ClusterCATS Server
• Intel Pentium 200 Mhz or greater CPU
• 100 MB of free disk space
• 128 MB of RAM
• Windows NT (with SP 4 or greater), Windows 2000, or Windows .NET Server
• Internet Information Server or greater; Netscape Enterprise Server v3.5.1 or greater
• Administrative privileges on each server
• A unique IP address assigned to each web server
• Correct DNS entries and configurations (see “Configuring DNS servers” on page 34)
Note: ClusterCATS Server does not run on Windows 98 or Windows 95.
Sun Solaris system requirements for ClusterCATS Server
• Sun SPARC workstation
• 100 MB of free disk space
• 128 MB of RAM (more recommended)
• Solaris operating system v2.51 or greater with Patch 103582-18 or higher
• Netscape Enterprise Server v3.5.1 or greater or Apache Web Server v1.3.6 or greater
• Administrative root privileges on each server
• A unique IP address assigned to each web server
• Correct DNS entries and configurations (see “Configuring DNS servers” on page 34)
Linux system requirements for ClusterCATS Server
• Intel Pentium 200 Mhz or greater
• 100 MB of free disk space
• 128 MB of RAM (more recommended)
• Red Hat operating system v6.0 or greater
• Apache Web Server v1.3.6 or greater
• Administrative root privileges on each server
• A unique IP address assigned to each web server
• Correct DNS entries and configurations (see “Configuring DNS servers” on page 34)
System requirements7
ClusterCATS Explorer and Web Explorer system requirements
You can install the ClusterCATS Explorer or Web Explorer component on a computer
outside the cluster, so you can administer the cluster from a central location. Ensure the
computer on which you install one of these components meets the minimum system
requirements.
System requirements for the Windows-based Explorer
The Windows-based ClusterCATS Explorer runs from a Windows computer (NT, 2000,
.NET Server, 98, or 95), regardless of the platform on which you install ClusterCATS
Server. Its system requirements are as follows:
• Intel Pentium 200 Mhz or greater CPU
• 100 MB of free disk space
• 64 MB of RAM (128 MB recommended)
• Windows NT Service Pack 5 or greater (if running Windows NT)
• Administrative privileges
System requirements for the ClusterCATS Web Explorer
Use the ClusterCATS Web Explorer if you have a UNIX-only environment. Install the
ClusterCATS Web Explorer program on a UNIX server that meets the following
requirements:
• Sun SPARC workstation
• 75 MB of free disk space
• 128 MB of RAM
• Solaris operating system v2.51 or greater with Patch 103582-18 or higher
• Netscape Enterprise Server v3.5.1 or greater or Apache Web Server v1.3.6 or greater
• Microsoft Internet Explorer 4.0 or greater or Netscape Navigator 3.0 or greater
8Chapter 1 Before You Begin
CHAPTER 2
Scalability and Availability Overview
This chapter describes the concepts involved in achieving scalable and highly available
web applications.
Contents
• What is scalability? ................................................................................................ 10
• What is website availability?................................................................................... 23
• Creating scalable and highly available sites............................................................. 28
9
What is scalability?
As an administrator, you probably hear about the importance of having web servers that
scale well. But what exactly is scalability? Simply, scalability is a web server’s ability to
maintain a site’s availability, reliability, and performance as the amount of simultaneous
web traffic, or load, hitting the web server increases.
The major issues that affect website scalability include:
• “Performance” on page 10
• “Load management” on page 12
Performance
Performance refers to how efficiently a site responds to browser requests according to
defined benchmarks. You can design, tune, and measure application performance.
Performance can also be affected by many complex factors, including application design
and construction, database connectivity, network capacity and bandwidth, back office
services (such as mail, proxy, and security services), and hardware server resources.
Web application architects and developers must design and code an application with
performance in mind. When the application is built, administrators can tune
performance by setting specific flags and options on the database, the operating system,
and often the application itself to achieve peak performance. Following the construction
and tuning efforts, quality assurance testers should test and measure an application’s
performance prior to deployment to establish acceptable quality benchmarks. If these
efforts are performed well, you can better diagnose whether the website is operating
within established operating parameters, when reviewing the statistics generated by web
server monitoring and logging programs.
Depending on the size and complexity of your web application, it may be able to handle
from ten to thousands of concurrent users. The number of concurrent connections to
your web server(s) ultimately has a direct impact on your site’s performance. Therefore,
your performance objectives must include two dimensions:
• Speed of a single user’s transaction
• Amount of performance degradation related to the increasing number of concurrent
users on your web servers
Thus, you must establish response benchmarks for your site and then achieve the highest
number of concurrent users connected to your site at the response rates. By doing so, you
will be able to determine a rough number of concurrent users for each web server and
then scale your website by adding additional servers.
When your site runs on multiple web servers, you must monitor and manage the traffic
and load across the group of servers. To learn how to do these tasks, see “Hardware
planning” on page 26 and “Creating scalable and highly available sites” on page 28.
10Chapter 2 Scalability and Availability Overview
Linear scalability
Perfect scalability — excluding cache initializations — is linear. Linear scalability, relative
to load, means that with fixed resources, performance decreases at a constant rate relative
to load increases. Linear scalability, relative to resources, means that with a constant load,
performance improves at a constant rate relative to additional resources.
Caching and resource management overhead affect an application server’s ability to
approach linear scalability. Caching allows processing and resources to be reused,
alleviating the need to reprocess pages or reallocate resources. Disregarding other
influences, efficient caching can result in superior linear application server scalability.
Resource management becomes more complicated as the quantity of resources increases.
The extra overhead for resource management, including resource reuse mechanisms,
reduces the ability of application servers to scale linearly relative to constraining
resources. For example, when a processor is added to a single processor server, the
operating system incurs extra overhead in synchronizing threads and resources across
processors to provide symmetric multiprocessing. Part of the additional processing power
that the second processor provides is used by the operating system to manage the
additional processor, and is not available to help scale the application servers.
It is important to note that application servers can scale relative to resources only when
the resource changes affect the constraining resources. For example, adding processor
resources to an application server that is constrained by network bandwidth would
provide, at best, minor performance improvements. When discussing linear scalability
relative to server resources, you should assume that it is relative to the constraining server
resources.
Understanding linear scalability in relation to your site’s performance is important
because it affects not only your application design and construction, but also indirectly
related concerns, such as capital equipment budgets.
What is scalability?11
Load management
Load management refers to the method by which simultaneous user requests are
distributed and balanced among multiple servers (Web, JRun, ColdFusion, DBMS, file,
and search servers). Effectively balancing load across your servers ensures that they do not
become overloaded and eventually unavailable.
There are several different methods that you can use to achieve load management:
• Hardware-based solutions
• Software-based solutions, including round-robin Internet DNS or third-party
clustering packages
• Hardware and software combinations
Each option has distinct merits.
Most load-balancing solutions today manage traffic based on IP packet flow. This
approach effectively handles non-application-centric sites. However, to effectively
manage web application traffic, you must implement a mechanism that monitors and
balances load based on specific web application load. ClusterCATS ensures that the JRun
or ColdFusion server, the web server, and other servers on which your applications
depend remain highly available.
For more information on using hardware and software for load balancing, see “Creating
scalable and highly available sites” on page 28.
12Chapter 2 Scalability and Availability Overview
Successful scalability implementations
Achieving scalable web servers is not a trivial task. There are various solutions from which
to pick, setup and configuration tasks to understand and perform, and many delicate
dependencies between related but heterogeneous technologies. This section describes
some of the major issues affecting successful scalability implementations:
• “Designing and coding scalable applications” on page 13
• “Avoiding common bottlenecks” on page 16
• “DNS effects on website performance and availability” on page 17
• “Load testing your web applications” on page 20
Designing and coding scalable applications
Application architects must create designs that are inherently flexible by relying on open
standards that don’t restrict the application’s construction and implementation to
vendor-specific interfaces and tools. Similarly, web developers that construct the designed
application must be aware that they can significantly impact the application’s scalability
in the way in which they write their code, build their SQL queries, invoke thread
management, access databases, and partition the application.
This section discusses the following topics to consider when designing and building a
web application:
• “Application session and state management” on page 13
• “Database locking and concurrency issues” on page 14
• “Application partitioning” on page 15
Application session and state management
As you create web applications, you will probably create specific variables that you intend
to carry across multiple interactions between a user’s browser and a site’s web server(s).
Using client variables that are stored in a shared state repository, or session variables that
are stored in memory of a specific server, are popular approaches for accomplishing this
task. The latter approach, however, introduces a significant challenge for a website that is
supported by multiple servers. When a user has begun a session and variables are stored
on a specific server, the user must return to that server for the life of the session to
maintain correct state information.
An example that illustrates this concept is an e-commerce application that uses shopping
carts. With this type of application, as a customer accumulates items in a cart, there must
be a mechanism to ensure that the user can see the items as they are added. One approach
is to store these items in session variables on a specific web server. However, if you use this
approach, there must also be a way to ensure that the user always returns to the same
server for the life of the session. ClusterCATS automatically handles this challenge for
you.
Another approach to solving this problem is to store client variables in a back-end
common state repository. This approach enables all web servers in a cluster to access
variables in a common, shared back-end data store, such as a database. However, this
approach can potentially affect your site’s performance.
Successful scalability implementations13
Web developers must think through the user scenarios in which application session and
state are affected, and engineer appropriate mechanisms to handle them. The most
common ways to handle session data are:
• Client-side options consisting of cookies, hidden fields, a get list, or URL parameters
• Server-side session variables
Note: Storing session data on the server requires that a simple identifier is stored on
the client, such as a cookie.
• An open state repository consisting of a common back-end database or other shared
storage device
Whatever mechanism your architects and engineers use, they must anticipate the
scenarios in which maintaining an application’s state is vital to a good user experience.
See “Session-aware load balancing” on page 72.
Database locking and concurrency issues
Dynamic web applications that allow users to modify a database must ensure appropriate
database concurrency handling. This term refers to how an application manages
concurrent user requests when accessing the same database records. If an application does
not impose a database-locking mechanism on multiple requests to update a record, data
integrity can be compromised in the database — two users could make simultaneous
modifications to a record, but only the second change would take effect.
For example, consider a Human Resources web application on a company intranet. The
HR Generalist adds two new employee records to the HR database by filling out a web
form, because two new employees have been hired. The Generalist enters most of the
vital information into the records, but doesn’t yet have the new employees’ phone
extensions or HMO selections, so leaves those fields blank. Later in the day, the HR
Generalist’s manager, the HR Director, obtains this information from both new hires and
decides to enter it in the database. However, one of the new employees, after speaking
with her husband, decides to change her HMO selection from the basic selection to the
PPO choice. The employee calls the HR Generalist to tell him of the change, and the
Generalist says he will take care of it immediately. Without talking to the HR Director,
the HR Generalist adds the information into the employee records at the same time that
the HR Director is attempting to update the information.
In this scenario, if the application uses an appropriate database concurrency validation
mechanism, the HR Director receives a message indicating that she could not access the
employee record because it was in use, thereby alerting her that someone in her
department was trying to change the record. However, if the application did not use such
a validation mechanism, the HR Director would overwrite the new data that the
Generalist had just entered, resulting in data integrity problems. This example illustrates
the importance of your dynamic web applications handling database concurrency issues
well.
14Chapter 2 Scalability and Availability Overview
Application partitioning
The way an application is partitioned and deployed dramatically affects its ability to
scale. A key development objective must be to ensure that each partition scales
independently of the others, thereby eliminating application bottlenecks.
Application partitioning refers to the logical and physical deployment of an application’s
three core types of logic, or services — presentation, business, and data access. If you are
familiar with the concept of tiered client/server application development, you already
understand the rationale for developing applications in this way. The following short
review highlights this methodology’s benefits.
An application, regardless of whether it is a web application or a more traditional client/
server application, has three main categories of logic, or services:
• Presentation services — a user interface, by which users interact with the application’s
features. In a traditional client/server application, this logic resides on a client
computer, typically as a proprietary executable file. In a web paradigm, there is no
specific proprietary client software required, other than a browser. Emerging web
technologies can help you leverage powerful client-side processing available through a
browser. These technologies include Enterprise JavaBeans (EJB), scriptlets,
JavaScript, applets, and Dynamic HTML. Well-planned use of these technologies can
reduce unnecessary trips to the server, thereby minimizing performance degradation.
• Business services — the custom business logic and rules that an application uses to
perform calculations and application-specific functions. An example of a business
service is an algorithm that automatically calculates shipping and handling charges
for an order, based on the total cost of the order. In JRun, this logic is contained
within scriptlets and EJBs. In ColdFusion, this logic is contained in ColdFusion
pages. Depending on the nature of the business and how often the business rules
change, business logic can be partitioned to reside on its own server for easier access
that expedites frequent logic modifications, or it can reside in stored procedures on
the database server.
• Data services — the interaction between the application and the database in which
the application stores and manipulates data. The way application manages data
services is directly tied to the application’s performance capability. In short, accessing
a database can be costly and can cause significant performance degradation,
depending on a variety of factors. For example, the types of database drivers used for
connections, the construction of SQL queries, the manner in which database
connections are pooled and maintained, and whether stored procedures are
implemented for frequent database access, all directly impact the application’s
performance.
The way that architects and web developers decide to partition and deploy these core
application services significantly affects the application’s ability to scale. Although your
development efforts may no longer be burdened with developing, distributing,
customizing, and updating proprietary client software for your applications, the
ubiquitous graphical user interface (GUI) — the web browser — presents new interface
issues and challenges. For example, you must ensure that your application’s presentation
remains performance-friendly. It should minimize the number and size of graphic
elements that must be downloaded to the client. Also, because some browsers cannot
Successful scalability implementations15
cleanly display all technologies, such as cascading style sheets (CSS), Java applets, and
frames, you must carefully evaluate their use in your applications.
Bear in mind these presentation guidelines, to aid your applications’ performance and
user experience, and be sure to plan and test for the lowest common denominator that all
browsers can accommodate.
Often, partitioning business services to a separate business logic application server from
the primary application server, if necessary, can yield better application organization and
easier maintenance. You can maximize your application’s data services by carefully
constructing them and by ensuring that a separate database server (in this case, a separate
computer) is used to increase processor capacity for any database transactions.
These are several of the most important topics you and the developers creating your web
applications should consider early on. In doing so, you ensure that your web applications
are designed and coded with scalability in mind.
Avoiding common bottlenecks
In addition to application design and construction considerations, you must plan to
avoid common bottlenecks that can negatively affect a web application’s performance.
Following are typical bottlenecks that can affect an application’s ability to perform and
scale well:
• Poorly written application logic — inefficient programming is probably the most
common reason applications perform poorly. Instituting industry best practices, such
as coding standards, design reviews, and code walkthroughs, can significantly help to
alleviate this problem.
• Processor capacity — even a well-architected and programmed web application can
perform poorly if the web server’s CPU is unable to provide sufficient processing
power. Ensure that heavy-load, mission-critical applications reside on hardware that
can effectively do the job.
• Memory — insufficient random access memory (RAM) limits the amount of
application data that can be cached. Ensure that the amount of memory installed on
the application server computer is commensurate with the needs of the web
application.
• Server congestion — server congestion refers to all types of servers, not just the web
server. Your application, proxy, search and index, and back-office servers can
periodically experience high volume that indirectly degrades the performance of your
web application. When planning the physical design of the system, investigate
carefully the network topology that will be implemented to ensure that existing
servers are sufficient. If they are not, you may need to add new servers to the topology
to ensure uninterrupted service and performance expectations.
• Firewalls — some dynamic applications that must restrict anonymous access because
they present or share confidential information must pass through a corporate firewall,
which can slow down requests and responses. Ensure that the correct ports are open
on the firewall to ensure valid security authentication and to enable appropriate
client/server communications. (You may be able to open additional secure ports to
accommodate increased traffic.)
16Chapter 2 Scalability and Availability Overview
• Network connectivity and bandwidth — consider the type of network your
application will run on (LAN/WAN/Internet) and how much traffic it typically
receives. If traffic is consistently heavy, you may need to add additional nodes,
routers, switches, or hubs to the network to handle the increased traffic.
• Databases — database access, while vitally important to your application’s capabilities
and feature set, can be costly in terms of performance and scalability if it is not
engineered efficiently. When creating data sources for accessing your database, use a
native database driver rather than an ODBC driver, if possible, because it will provide
faster access. Similarly, try to reduce the number of individual SQL queries that must
be repetitiously constructed and submitted, by placing common database queries in
stored procedures that reside on the database server. Tune your databases and queries
for maximum efficiency.
DNS effects on website performance and availability
Improper Domain Name System (DNS) setup and configuration on web servers is one of
the most common problems administrators encounter. This section addresses the
following topics:
• “What is DNS?” on page 17
• “DNS effects on site performance and availability” on page 17
• “DNS core elements” on page 18
What is DNS?
DNS is a set of protocols and services on a TCP/IP network that allows network users to
use hierarchical natural language names, rather than computer IP addresses, when
searching for computer hosts (servers) on a network. DNS is used extensively on the
Internet and on private enterprise networks, including LANs and WANs.
The primary capability of DNS is its ability to map host names to IP addresses, and vice
versa. For example, suppose the web server at Macromedia has an IP address of
157.55.100.1. Most people would connect to this server by entering the domain name
(www.macromedia.com), not the less-friendly IP address. Besides being easier to
remember, the name is more reliable, because the numeric address could change for a
variety of reasons, but the name can always be reserved.
DNS effects on site performance and availability
Internet DNS is a powerful and successful mechanism that has enabled huge numbers of
individuals and organizations to create easily locatable websites on the Internet. However,
DNS by itself may not allow your website to perform and scale as it should, thus causing
it to become unavailable and unreliable. Whether you use DNS by itself to load balance
inbound traffic depends largely on the site’s purpose and the amount of concurrent
activity you expect on it. For instance, a low-volume, static site that provides only textual
HTML information can probably be accommodated by round-robin DNS. However, a
high-volume, dynamic, e-commerce site that you anticipate doing lots of volume won’t
perform or scale well if it is only supported by round-robin DNS.
Successful scalability implementations17
To understand why, let’s look at the e-commerce example. Even if you have planned
ahead and set up multiple servers to support this high-volume site, if you rely only on
DNS, it can only perform two tasks:
• Translate natural language names to server IP address mappings so that users can find
the site
• Distribute load among servers in a rote, sequential distribution manner, if you have
enabled round-robin distribution for multiserver load balancing
However, if a spike in user activity causes servers to overload or fail, round-robin DNS
keeps distributing requests among all servers, even if some are not operating.
In short, Internet DNS is limited in its capabilities, and its round-robin distribution
mechanism does not include intelligence for monitoring, managing, and reacting to
overloaded or failed servers. Consequently, DNS by itself is not a sound load-balancing or
failover solution for your business-critical sites. ClusterCATS compensates for DNS
limitations and lets you create highly available, reliable, scalable web applications.
DNS core elements
The following are core DNS elements that you must be able to configure if your web
applications are to work well with DNS:
• “Zones and domains” on page 18
• “DNS record types, server aliases, and round-robin distribution” on page 19
Zones and domains
A Domain Name System is composed of a distributed database of names. The names in
the DNS database establish a logical tree structure called the domain name space. On the
Internet, the root of the DNS database is managed by the Internet Network Information
Center (InterNIC). The top-level domains were originally assigned organizationally and
by country. Two-letter and three-letter abbreviations are used for countries. Some
abbreviations are reserved for use by organizations — for example, .com, .gov, and .edu
for business, government, and educational organizations, respectively.
A domain is a node on a network and all the nodes below it (subdomains) that are
contained within the DNS database tree structure. Domains and subdomains can be
grouped into zones to allow distributed administration of the name space. More
specifically, a zone is a portion of the DNS name space whose database records exist and
are managed in one physical file. One DNS server may be configured to manage one or
multiple zone files. Each zone is anchored at a specific domain node. You use zones for
breaking up domains across multiple segments to distribute the management of the
domain to multiple groups, and to replicate data more efficiently.
18Chapter 2 Scalability and Availability Overview
The following figure shows these concepts:
DNS servers store information about the domain name space and are referred to as name servers. Name servers typically have one or more zones for which they are responsible.
The name server has authority for those zones and is aware of all the other DNS name
servers that are in the same domain.
DNS record types, server aliases, and round-robin distribution
There are three DNS record types that you must define and configure for each web server
in order for ClusterCATS load-balancing and failover technology to work correctly.
These records must be defined and configured on your local and primary DNS servers.
• A Record — contains a host-name-to-IP-address mapping, where the natural
language name is the primary name representing the IP address.
• PTR Record — contains the IP-address-to-host-name mapping. This is the reverse
lookup of the A record, in which, given the IP address, the natural language host
name for the IP address is displayed.
• CNAME Record — short for canonical record. This record contains an alias name
that maps to the primary host name of a web server. For example, you can assign a
server named www1.yourcompany.com an alias of www.yourcompany.com, so that
users never see www1.yourcompany.com, in the event of a server redirection.
To see how all of these records work together, let’s look at a simple example. There are
two web servers, named www1.yourcompany.com and www2.yourcompany.com. You
don’t want users to see the primary host names (A records) for these servers in their
browser; you want them to see only their assigned aliases (CNAME records), when being
redirected.
Successful scalability implementations19
The DNS entries would look like the following:
:
; Entries for forward-resolution: A-records
www1.yourcompany.comIN A192.168.0.1
www2.yourcompany.comIN A192.168.0.2
; Entries for reverse-resolution: PTR-records
192.168.0.1PTRwww1.yourcompany.com
192.168.0.2PTRwww2.yourcompany.com
; Round Robin entries
www.yourcompany.comIN A192.168.0.1
www.yourcompany.comIN A192.168.0.2
To ensure that your site lookups and translations occur as intended, you must provide
correct entries in your DNS records, as shown. Also, to enable round-robin DNS
functionality, you must create round-robin entries as shown.
On the Windows platform, you make DNS entries using the Domain Name Service
Manager utility.
On UNIX platforms, you make DNS entries in the name.db file, which is read by the
DNS server’s Berkeley Internet Name Daemon (BIND).
Load testing your web applications
Load testing is the process of defining acceptable benchmarks for your web application’s
performance, and then simulating load and measuring resulting response times and
throughput against the benchmarks. You perform load testing to measure the
application’s ability to scale.
This section discusses the following topics:
• “Reasons to perform load testing” on page 20
• “How to load test your web applications” on page 21
• “Load-testing considerations” on page 22
Reasons to perform load testing
Load testing is important to your website’s success because it lets you test its capacities
before you deploy it, so you can find and fix problems before they are exposed to your
users. Determining your site’s purpose, and the amount of traffic you anticipate, may
affect how you load test it.
Managers of small sites, who don’t expect heavy concurrent loads, might be able to
organize actual users to simultaneously access the site to perform load testing. However,
this is difficult to accomplish well, because it introduces many human variables. In fact,
for larger business-critical systems that expect heavy concurrent load, this type of testing
is not feasible and does not provide satisfactory or realistic results.
A better approach to load testing is to use load simulation software. There are some
excellent software load-testing tools on the market that let you simulate heavy loads
20Chapter 2 Scalability and Availability Overview
hitting your web server. By using the software in conjunction with your defined
benchmarks and formal test plans, you can confidently determine whether your web
application is ready for deployment.
Another reason to load test is to verify your failover capabilities. Failover ensures that if a
primary server within a cluster of servers stops functioning, subsequent user requests are
directed to another server within the cluster. Failover is addressed in more depth in
“What is website availability?” on page 23. Using load-testing software, you can
essentially force a server redirection by designating a computer as “unavailable” or by
shutting it down.
Note: ClusterCATS uses the HTTP protocol to redirect packets of data from a failed server
to an available server. Therefore, it is important to verify that your load-testing tool can
handle HTTP redirections properly before you initiate load testing.
How to load test your web applications
Before you can load test, you must purchase a load-testing software tool and learn how to
use it.
There is a variety of good load-testing software tools on the market, including Segue’s
SilkPerformer, Mercury Interactive’s LoadRunner, and RSW’s e-LOAD. Each of these
packages provides substantial Web-enabled software-testing solutions that help you
effectively simulate and test load.
After you purchase, install, and learn to use load-testing software, you determine
benchmarks that you want to—or must—achieve for your website, to ensure a good user
experience. Following that, you formalize your testing strategy by designing and
developing written test plans against which you execute your tests.
When the test plans are written and approved, you run the tests. After you do so, you
capture and analyze the load-testing results and report the statistics to the development
team. From there, you’ll need to reach consensus about the most serious problems you
discovered, the necessary changes to make, and the best way to implement the fixes. After
the changes are made and a new build of the application is available, you rerun the tests
to look for performance improvements. Again, you analyze the testing results, and
continue this cycle until the site is operating within the established parameters that you’ve
set. When your team agrees that the site scales well and is operating at peak performance
under heavy stress, you’re ready to deploy the application into a production environment.
Successful scalability implementations21
Load-testing considerations
Before starting your load testing, consider the following:
• Define benchmarks early — ensure that you understand your website’s performance
and scalability requirements before you start running tests against it. Otherwise, you
won’t know what you’re testing for and the statistics you capture won’t have
significance. Also, remember that the benchmarks you define should be customized
for the current application; don’t simply reuse benchmarks from an earlier site on
which you may have worked. Each web application is distinct in terms of its design,
construction, back-office integration, and user experience requirements.
• Ensure that the test environment mirrors the production environment— create a test
environment that is as close as possible to the production environment in which the
website will be hosted. If you don’t simulate a similar network and bandwidth
scenario, or use the same types of servers, or ensure that the same versions of software
(operating system, service packs, web server, and third-party tools) reside on the test
and production servers, you can’t anticipate problems nor determine why they occur.
The number of possibilities would be too large.
• Minimize distributed environment load testing — load testing in a distributed
environment can be problematic if the network on which you perform load tests
becomes congested, resulting in poor response times. Also, if everyone else in the
organization uses the network for their everyday activities, such as e-mail, source
control, and file management, an increased load on the network will probably cause
significant network degradation for them, and accompanying frustration.
In such a scenario, it might be more effective to physically sit at the server on which
the application resides and perform the tests locally, rather than bring the entire LAN
or WAN to a slow crawl. Also, by testing locally, you can better rule out the network
as the source of the scalability problems. Alternatively, you might be able to configure
a separate subnet on the LAN or WAN that is distinct from the subnet on which
everybody else in your environment uses network services.
You should have a good overview of what scalability implies, the core elements that
compose it, some of the issues that affect successful implementations, and the tasks that
must be performed to verify that your web applications are able to achieve satisfactory
scalability.
The next section describes website availability and reliability concepts and
considerations.
22Chapter 2 Scalability and Availability Overview
What is website availability?
It is critical to design, develop, test, and deploy web applications so they can scale well
under heavy and ever-increasing load. However, in spite of the best-laid plans and
preparations, servers can fail for seemingly unknown reasons, causing your site to become
unavailable. If and when a server fails or becomes overloaded, you want to ensure that the
failure won’t adversely affect your business by preventing your customers from accessing
and using your web application. If it does, you risk jeopardizing your bottom line with
lost sales and disgruntled customers who will look to your competitors for goods and
services.
This section defines and describes website availability and failover:
• “Availability and reliability” on page 23
• “Common failures” on page 24
• “Website availability scenario” on page 25
• “Failover considerations” on page 25
Availability and reliability
In simple terms, availability and reliability mean that you can access a website by entering
the site’s URL in your browser, and all of its features work as intended. Thus, availability
and reliability refer to the uptime of a website, which is often directly related to the
uptime of the web server and other dependent servers, such as a database server, an
application server, or a file server. For a site to be considered available, all of the servers
that provide its functionality must work.
What is website availability?23
For JRun and ColdFusion web applications, it is particularly important that the servers
remain as highly available and responsive as the web server and other dependent servers.
JRun and ColdFusion process requests sent to them from the web server. Upon
successfully processing the application logic, JRun and ColdFusion return the results to
the web server, which in turn returns an HTML response to the browser.
Availability and reliability are concerned with keeping the relevant servers that provide
services to your web application available at all times. However, if a server on which your
site depends becomes unavailable, you must have a sound redundancy scheme to make
certain that your site remains available. As your organization moves into an e-business
paradigm, you must plan, design, and implement load-balancing and failover strategies
that guarantee that your servers will remain operational.
If servers employ a good strategy for load balancing and failover, they provide high
availability and reliability to their users. In fact, Internet Service Providers (ISPs) that
host commercial websites and offer 24x7 technical support as a competitive service
differentiator typically specify in written service-level agreements a percentage of time
that they guarantee a website will be available. If the ISP has a sound scalability and
failover strategy in place, this figure is usually in the range of 99% or better.
Common failures
Following are typical types of failures that can negatively impact your web application’s
availability and reliability:
• Hardware failures — while less common than software failures, hardware failures do
occur, and can include crashed hard drives, blown processors, and corrupted network
cards. Diagnosing and fixing these issues can be a lengthy endeavor because of time
spent getting parts and performing labor. If your web application is mission-critical,
you should ensure a sound hardware redundancy strategy to avoid costly downtime.
A sound strategy includes a minimum of two, but preferably three, web servers.
• Software failures — the software failures that most affect a web application involve
the web server’s operating system, the web server software itself, or the web
application software. If the operating system crashes or becomes corrupt, the web
server cannot function properly (or perhaps at all), compromising your web
application’s availability, reliability, and performance. Similarly, if the web server
software crashes or acts erratically, it will probably cause the web server to stop
running. Preparing for software failures is difficult, but if you have mirrored
secondary hardware systems in place to account for failures, you’ll minimize your web
application’s downtime.
• Server failures — other servers on which your web application depends can also fail,
causing downtime or diminished capabilities on your site. For example, for
distributed applications, a proxy server might go down, causing requests for your web
application’s services to go unanswered. Or the database server might crash, making it
impossible for users to submit or retrieve information from your database. Or a mail
server might go down, making it impossible for your users to successfully send mail
to you. Ensure that your organization’s IT architecture includes network monitoring
and notification software that can quickly report on the general health of your
network and alert you about any failed servers.
24Chapter 2 Scalability and Availability Overview
Website availability scenario
Imagine that you have just built a robust, interactive e-commerce website on which you
plan to sell the most sought-after books and music in the world. You have used Java
scriptlets to build the application, so of course you’ve taken advantage of its many
built-in features, including secure database access, multithreading, and integrated session
management.
Upon finishing the development work and quality assurance testing, you deploy the
website onto one production web server that is hosted within your IT department. The
IT department informs you that it can use its existing Internet connection to make your
site live, avoiding the additional hosting support cost of using an outside vendor.
The site goes live, and it’s an instant success. Orders start pouring in the very first day,
and huge numbers of people log on to browse and buy. Everything seems perfect. Then,
on the second day of business, the load hitting the site is so high, the web server’s
performance slows to a crawl, eventually causing the server to become unavailable.
Suddenly, your tech support lines are ringing off the hook with complaints that users
cannot access your site, causing you to lose significant business.
Although the application provided many useful features and capabilities, customers could
not access them, because the site’s performance degraded to the point that the site
became unavailable. Because the site was deployed on only one server, the incoming
traffic could not be load balanced. Also, without redundant servers in place, the site
could not intelligently load balance increasing traffic nor redirect traffic to other available
servers (no failover).
This simple scenario illustrates how critical adequate scalability, performance, and
failover planning are to any successful web development effort. Servers can become
overloaded or fail at any time, so ensure that your design, development, testing, and
deployment strategies are sound, promote good communication between necessary
departments, and include adequate disaster recovery capabilities.
Failover considerations
The ability to failover unavailable servers to redundant servers is a cornerstone of any
mission-critical application, one that ensures an application’s continuous and reliable
operation. Such disaster planning and recovery can be broken down into these topics:
• “Hardware planning” on page 26
• “Systems monitoring” on page 26
• “Corrective actions” on page 26
Review the following considerations to ensure that you have a sound failover strategy in
place — one that guarantees your website’s availability.
What is website availability?25
Hardware planning
As indicated in the availability example above, you must acquire all necessary hardware
and configure it before you deploy an application. All websites have different
requirements, feature sets, purposes, audiences, and budgets, and therefore different
needs. However, if your site is a business-critical system that affects your company’s
bottom line, you must ensure an appropriate redundancy strategy by having two or more
redundant systems in place. In fact, Macromedia recommends that you use a minimum
of three servers to support a critical website, so you can take one server offline to perform
update and maintenance tasks while maintaining at least two servers in production at all
times. This scheme provides administrative flexibility and protects your site from
hardware or software failures.
The two predominant redundancy models used today are:
• Primary/backup servers — an example of this model would be an important web
application that receives relatively little traffic, such as an intranet. Typically, this
redundancy model uses an expensive, high-capacity server for the primary server, and
an inexpensive, lower-quality server for the backup server in case the primary server
fails.
• Parallel servers — this is a classic load-balancing/redundancy mode, and is used most
often for business-critical applications. Unlike the primary backup scheme, the
multiple servers in a parallel scheme are considered peers and are grouped as a single
entity to support one or more applications.
You can use identical cloned hardware in your server clusters, or you can mix
hardware sizes and models. Cloned, higher-capacity, higher-end hardware might have
greater up-front hardware costs, but help minimize long-term administration costs.
Conversely, mixing hardware models and capacities might be less expensive in the
short term, but could add administrative costs later on.
If you plan to use a parallel model, using many middle-range servers, rather than
fewer high-end ones, or many inexpensive ones, is recommended. Servers that
provide adequate capacity and are moderately priced can generally accommodate
your needs as well as expensive ones, but at a fraction of the cost.
Systems monitoring
Ensure that your network and the mission-critical sites that reside on its servers are
supported by systems-monitoring software. This type of software actively and
continuously monitors an application’s availability and service levels. These monitoring
programs must be able to not only detect problems, but also route alerts to
administrators for immediate notification of problems.
Corrective actions
The third major failover consideration is the corrective actions that must occur if a failure
causes a server to become unavailable. Generally, if a server goes down and causes your
site to become unavailable, some level of human interaction is usually required to
effectively diagnose and correct the problem.
26Chapter 2 Scalability and Availability Overview
However, before the analysis and repair can occur, the administrator must be notified.
Whatever failover system you put in place, it should include an automated notification
system that can route alerts through your telecommunications infrastructure (e-mail,
pagers, real time Web-based alerts, and so on) to the appropriate administrator for
prompt attention.
Besides notifying the administrator that a problem has occurred, you also want your
failover solution to automatically redirect traffic intended for the unavailable server to
other available servers until the unavailable server is fixed. This crucial corrective action is
what keeps your website up and available to your users even if one of the servers
supporting it is experiencing problems.
What is website availability?27
Creating scalable and highly available sites
When you understand the issues of scalability and availability, the next step is to learn the
techniques you can use to achieve scalable and highly available websites.
This section describes the following topics:
• “What is clustering?” on page 28
• “Hardware-based clustering solutions” on page 29
• “Software-based clustering solutions” on page 30
• “Combining hardware and software clustering solutions” on page 32
What is clustering?
Clustering is a technique in which two or more web servers supporting one or more
domains (such as www.yourcompany.com) are grouped as a cluster of servers, to
collectively accommodate increases in load and provide system redundancy.
The following figure shows an example of a server cluster for a website:
Clustering for scalability works by distributing load among servers in the cluster (load
balancing) using an unintelligent-but-regular distribution sequence (round-robin DNS
and routers) or a predefined threshold or algorithm (specialized clustering software) that
you specify and can adjust for each server in the cluster.
Clustering for failover relies on redundant servers to ensure that business-critical
applications remain available if one of the servers in a cluster fails. Intelligent
software-based failover solutions can detect when a server has failed and automatically
redirect new incoming HTTP requests to available cluster members. Some
hardware-based failover devices that have less built-in intelligence require an
administrator’s intervention when a failure is detected.
Clustering can be accomplished using software-based solutions, such as round-robin
DNS alone or together with a third-party package; a hardware-based solution, such as a
packet router; or a combination of the two.
28Chapter 2 Scalability and Availability Overview
Hardware-based clustering solutions
A common and reliable hardware-based clustering solution is a packet router. One of the
most popular routers is Cisco Systems’ LocalDirector. A router, in front of a cluster of
web servers, directs incoming HTTP requests to available web servers in the cluster. A
router works by assessing the rate and volume of IP packet flow to and from web servers,
and selecting the best server to accommodate the traffic. This process is fast and efficient.
The router and clustered web servers comprise a virtual server.
Routers are considered semi-intelligent devices because they can detect a server failure
and redirect requests to other servers. If a web server fails or stops responding, the router
stops sending packets to the unresponsive server. Routers are not considered fully
intelligent because, while they can redirect requests upon discovering a failure, they do
not let you configure redirection thresholds for individual servers. They also do not
support application-aware load balancing.
The following figure shows a router distributing requests in round-robin fashion to the
available servers in a web server cluster:
Advantages of hardware-based solutions
A hardware-based clustering solution, such as a router, is an attractive solution for the
following reasons:
• It uses proven technology
• It is has relatively low complexity
Creating scalable and highly available sites29
• There are no recurrent licensing fees
• It is semi-intelligent; routers can load balance in a round-robin fashion, detect
failures, redirect traffic, and remove failed servers from a cluster.
Note: Load-balancing devices offer different features and capabilities.
Considerations
Carefully evaluate the following issues against a router’s attributes:
• Expense — hardware devices can be expensive relative to some software solutions,
even without yearly licensing fees.
• Single point of failure — if a problem develops on the load-balancing device itself and
it fails, your load-balancing and failover strategies do not work. Although some
load-balancing devices come with secondary systems for this reason, this additional
equipment often inflates the overall price of a hardware solution.
• Lack of application-awareness — the device cannot be tuned for particular types of
web applications (static vs. dynamic sites) or for the development tools used to build
them (scriptlets vs. JSP vs. CGI vs. ASP and so on). Consequently, a router cannot
measure the performance of a web application server.
• Limited intelligence — the device does not let you configure individual load and
redirection thresholds for each server in a cluster, so it cannot effectively manage load
to prevent failures.
Software-based clustering solutions
There are several kinds of software-based clustering solutions on the market. As with
hardware-based clustering solutions, there are strengths and weaknesses associated with
each. These software solutions include:
• Round-robin DNS — a very popular choice because of its relative simplicity and low
implementation cost, but does not include intelligence for load balancing or failover.
• Primary/backup clustering — cloned systems provide redundancy for one another.
This type of clustering does not provide parallel server load balancing.
• Smart clustering — combines the advantages of round-robin DNS and backup
clustering to provide simplicity with intelligence and redundancy.
ClusterCATS lets you easily create, optimize, and maintain “smart” clusters to support
your web applications. ClusterCATS runs on Windows, Solaris, and Linux platforms and
works with leading mission-critical web servers, including Microsoft IIS, Netscape
Enterprise Server, and Apache. It is easily administered from remote locations and
provides robust features, including:
• Configuring load and redirection thresholds by server
• Optimizing the load-balancing scheme with application-aware and session-aware
load balancing
• Automatically detecting failures
• Automatically redirecting traffic to available servers
• Automatically notifying administrators of problems
30Chapter 2 Scalability and Availability Overview
Advantages
Considerations
The following benefits make a software-based clustering solution attractive:
• Relatively low expense — compared to the cost of hardware devices, such as routers
or switches, software-based clustering solutions are relatively inexpensive. In fact, you
can cheaply implement Internet DNS on UNIX and Windows platforms for initial
load-balancing needs, and augment with third-party clustering software.
• Flexibility — some clustering software can augment existing hardware devices,
providing a more robust load-balancing and failover solution. By integrating
hardware with software, you diminish, if not eliminate, losses on capital expenditures
that your organization has already made. For more information, see “Combining
hardware and software clustering solutions” on page 32 and “Load-balancing devices”
on page 92.
• Intelligence — some software solutions provide a level of intelligence that enables
preventive load-balancing measures that actually minimize the chance of servers
becoming unavailable. If a server does becomes overloaded or actually fails, some
software can automatically detect the problem and reroute HTTP requests to
available servers in the cluster.
• No single point of failure — by distributing the load-balancing and failover
capabilities among multiple servers in a cluster or multiple clusters, as opposed to
relying on only a single device, no individual server failure can disable your
application.
Consider the following issues when evaluating software-based solutions for your
environment:
• Differences among feature sets — software-based clustering solutions differ in their of
capabilities and features. For instance, some lack automatic failure detection,
notification, or IP address assumption, and others have significantly delayed
detection. Some let you configure load thresholds to enable preventive measures, and
some don’t. Determine your scalability and failover needs in advance and pick your
solution accordingly.
• Platform constraints — determine whether the software solution is available on your
platform and operates with your preferred web server. When reviewing data sheets
and other marketing collateral from vendors, ensure that the robust features you want
are available on the platform you need.
• Level of complexity — some software-based clustering solutions relatively simple.
Others introduce more complexity because of the features offered, the amount of
initial configuration and subsequent administration, or the amount of integration
that must occur between other systems and devices.
Creating scalable and highly available sites31
Combining hardware and software clustering solutions
Instead of having to choose either a hardware solution or a software solution, you can
combine both types of clustering choices. Combining hardware and software solutions
certainly provides the greatest scalability and availability capabilities for a site. A
combined solution is an attractive option if your organization has already invested in one,
but is looking for more comprehensive coverage. Having the flexibility to integrate
hardware with software means that your organization won’t necessarily have to absorb a
capital loss on a previous technology investment if you decide to purchase additional
clustering technology.
However, as already discussed, all hardware or software solutions are not equal. Many
have different features and capabilities, and not all hardware and software integrate well
together. Investigate thoroughly when purchasing technology to augment your current
solution.
For a visual representation of hardware and software clustering solutions working
together, see “Hardware-based clustering solutions” on page 29.
32Chapter 2 Scalability and Availability Overview
CHAPTER 3
Installing ClusterCATS
Before installing ClusterCATS, you must make many important decisions about the
architecture of your website. Use the first section in this chapter to guide you through the
decision-making process. When you have installed ClusterCATS, read the last section in
this chapter for important information on how to make your site secure and reliable.
Contents
• Before you install...................................................................................................34
• After you install .....................................................................................................45
33
Before you install
Before installing ClusterCATS and creating server clusters, you must perform the
following pre-installation tasks:
• “Upgrading from a previous version of ClusterCATS” on page 34
• “Configuring DNS servers” on page 34
• “Configuring server failover” on page 38
• “Using ClusterCATS dynamic IP addressing” on page 38
• “Configuring firewalls” on page 38
• “Analyzing web server content” on page 39
• “Considering domain controllers (Windows NT only)” on page 40
Upgrading from a previous version of ClusterCATS
To update the ClusterCATS application while preserving your configuration settings,
re-install ClusterCATS using the instructions in this chapter. The ClusterCATS
installation detects that a configuration is available for use and prompts you by asking
whether you want to use the configuration in the new installation. You can use the
ClusterCATS Server setup options, or keep the existing cluster configurations.
Configuring DNS servers
ClusterCATS software requires that both the forward lookup (host name-to-address
translation) and reverse lookup (address-to-host name translation) be registered with
your DNS server. For evaluation purposes, you can use host files, but this is not
recommended in a production environment.
Note: ClusterCATS does not support Dynamic Host Configuration Protocol (DHCP). A
unique IP address must be assigned to each web server.
This section addresses the following topics:
• “Understanding DNS servers” on page 34
• “Configuring your primary DNS server” on page 36
Understanding DNS servers
When you enter a URL into a web browser, the browser is able to locate the website you
want to visit because of the name-to-IP address translation that the Internet Domain
Name System (DNS) performs. This section reviews two important components of the
DNS infrastructure that enable this capability — primary DNS servers and local DNS
servers.
Primary DNS servers
The primary DNS server provides the final mapping of a website name to the computer
on which a website resides. The primary DNS server can be located anywhere on the
Internet, but most reside either in the same physical location as the web servers or at the
ISP that provides the connection between the web servers and the Internet.
34Chapter 3 Installing ClusterCATS
The primary DNS server contains tables of forward and reverse name translations. For
example, forward translation entries (A records) look like this:
www1.company.com192.168.0.1
www2.company.com192.168.0.2
Reverse translation entries (PTR records) are opposite, and look like this:
192.168.0.1www1.company.com
192.168.0.2www2.company.com
Configure your websites with forward and reverse DNS entries on your primary DNS
server. If you are not responsible for maintaining your primary DNS server, tell your
DNS administrator to add forward and reverse entries for your explicit web server names
(www1.company.com, www2.company.com, and so on).
Note: ClusterCATS does not operate correctly unless both forward and reverse
translations are configured for each explicit web server.
Local DNS servers
A local DNS server usually resides at a web hosting facility. The local DNS server stores
its own local table of name translations for the websites that the browser visits. If a user
enters a URL in a browser that the browser has already visited, it retrieves the host
name-to-IP address translation from the local DNS server’s table. However, if a user
enters a URL for a site that the browser on that computer has never visited, the local
DNS server must access the primary DNS server on the Internet to resolve the
name-to-IP mapping before the browser can send a request to the appropriate web server.
To summarize, primary and local DNS servers work together to resolve name-to-IP
address mappings in the following way:
1 A user enters a website URL in a browser.
2 The browser checks the local DNS server for the name-to-IP address mapping. This
server typically resides at the facility where the web servers are hosted.
3 If the local DNS server does not have the mapping, it goes to the Internet and locates
the primary DNS server to look up the name-to-IP address mapping.
If round-robin DNS is in use, the primary DNS server determines which server in
the cluster is next in line to receive the request.
4 The primary DNS server sends the translation to the local DNS server, which in turn
sends it to the user’s browser.
5 The browser sends an HTTP request to the correct web server hosting the site.
Before you install35
The following diagram shows this process:
Configuring your primary DNS server
You must configure DNS so the forward and reverse lookup translation entries are
entered and registered correctly with your primary DNS server. To do this, you must
define DNS A and PTR DNS records for the web servers on your primary DNS server.
Besides standard name translations, your primary DNS server can distribute HTTP
requests sequentially across clustered servers, using a technique called round-robin DNS.
This service lets DNS return a list of multiple servers to the browser that requests a name
translation.
Round-robin DNS and ClusterCATS work well together. You should not rely on just
round-robin DNS for distributing load for your business-critical sites, because DNS
functionality is limited. In short, DNS is a good load distribution technique, but it
cannot manage load because it cannot react to increases in server traffic. It also cannot
detect server failures, nor redirect requests among available servers. ClusterCATS
compensates for these limitations.
Macromedia recommends that you use round-robin DNS or a hardware load-balancing
device to distribute requests initially to the web servers in your cluster. After the initial
distribution, ClusterCATS load management and failover features automatically take
over and ensure that your web applications remain up and running.
36Chapter 3 Installing ClusterCATS
Using ClusterCATS with round-robin DNS
For high-volume sites, you should use round robin DNS to initially distribute requests to
the web servers in your cluster. The load management component of ClusterCATS
enhances round-robin DNS by eliminating its two major limitations:
• Server failure — round-robin DNS cannot detect server failure. Should a server in a
cluster fail, another server on the subnet immediately and transparently assumes the
IP address of the failed server.
• Server overload — round-robin DNS cannot detect server overloads. ClusterCATS
lets you configure load thresholds for each server. Should actual server load exceed the
load threshold, ClusterCATS transparently redirects users to another web server,
using an HTTP redirect. When redirected, user requests and responses flow to and
from that server directly, minimizing response time throughout the user session.
You must ensure that round-robin DNS entries are configured correctly on your primary
DNS server so ClusterCATS operates effectively with round-robin DNS. For example,
for a single-location server cluster consisting of four servers, you must configure
round-robin DNS across all four servers for the domain name, and individual IP
addresses for each explicit server name.
For example, the DNS table forward entries on your primary DNS server would be
similar to these:
Host NameIP Address
www.company.com193.168.0.1
www.company.com193.168.0.2
www.company.com193.168.0.3
www.company.com193.168.0.4
www1.company.com193.168.0.1
www2.company.com193.168.0.2
www3.company.com193.168.0.3
www4.company.com193.168.0.4
The DNS table reverse entries on your primary DNS server would be similar to these:
IP AddressHost Name
193.168.0.1www1.company.com
193.168.0.2www2.company.com
193.168.0.3www3.company.com
193.168.0.4www4.company.com
Note: When using round-robin DNS, do not define a reverse mapping (PTR record) for the
site name (www.company.com); the cluster will not operate properly if you do. Define only
forward mappings (A records) for www.company.com. Define A records and PTR records
for all explicit servers (www1, www2,...) in the cluster. This configuration ensures that
requests cycle through the servers sequentially, or “round-robin.”
Before you install37
Round-robin DNS distributes the initial domain-level requests across all four servers.
Thereafter, ClusterCATS distributes load to avoid failed or overloaded servers.
Configuring server failover
ClusterCATS protects clusters from server hardware and software failures. When a server
is no longer sending or receiving packets from the network, its IP address (and, therefore,
its HTTP requests) are assumed by another cluster member, which picks up HTTP
traffic originally addressed to the failed server. Server failover services are provided per
subnet.
Server failover is an option to select during the installation process. If you do not do so,
you must reinstall ClusterCATS and select that option. On Windows systems, preparing
your site for ClusterCATS Server failover can require uninstalling your web server
software. For more information, see “Using server failover” on page 137.
Using ClusterCATS dynamic IP addressing
You can set up your website so ClusterCATS dynamically assigns IP addresses to your
web servers. This addressing scheme includes a static maintenance address for each server
that lets you and ClusterCATS contact the server at any time, even during a web server
failure.
The setup for ClusterCATS dynamic IP addressing varies depending on your cluster’s
operating system:
• Windows — If your IP address for the local system is the same as the IP of your web
server, setting up your site for ClusterCATS dynamic IP addressing can involve
reinstalling your web server software and resetting your TCP/IP settings. Consider
this carefully before installing ClusterCATS. For more information, see
“ClusterCATS dynamic IP addressing (Windows only)” on page 132.
• UNIX — It is not necessary to configure a UNIX system for dynamic IP addressing
because it is set up by default if you select that option during installation.
Configuring firewalls
Many corporate environments today rely on firewalls to securely control access to
proprietary knowledge that resides on public Internet sites, internal intranet sites, or
private extranet sites. You can configure ClusterCATS to work seamlessly across one or
more firewalls.
A common technique is to use NAT as a security precaution on your firewall. This
configuration segregates internal and external resources and facilitates extra control and
monitoring of web traffic. For more information, see Macromedia Knowledge Base
Article 15339.
If multiple, distributed server clusters support a domain, you must open appropriate
ports on each firewall to ensure that the server clusters’ load-balancing and failover
features work. For example, if you cluster multiple, distributed web servers that have a
firewall between them, you must open ports 9123 and 9129 on the firewall that separates
them to enable server-to-server communications. Also, if you will manage your cluster
38Chapter 3 Installing ClusterCATS
from behind another firewall, you must open both ports so the ClusterCATS Explorer
can communicate with the cluster.
The following diagram shows this scenario:
This scenario involves Company ABC, which has East Coast and West Coast server
groups connected to the Internet, protected by several firewalls. The ClusterCATS
Explorer resides at the corporate headquarters behind a firewall with a direct connection
to the Internet.
You must open and configure the appropriate communication ports on your firewalls to
allow server-to-server communication in a distributed setting and server-to-client
communication.
Note: You must open both ports on all affected firewalls.
These ports include the following:
• Port 9123 (for TCP and UDP access) — opening port 9123 on a firewall allows
multiple, distributed server clusters residing in different locations to communicate
with one another across firewalls
• Port 9129 (for TCP and UDP access) — opening port 9129 on a firewall allows
ClusterCATS Explorer to communicate with multiple, distributed server clusters
across firewalls
Analyzing web server content
All web servers, virtual servers, or websites in a cluster must have identical content.
You should specify the same default document for each web server in the cluster. For
example, set the default document to
default.jsp.
Before you install39
Considering domain controllers (Windows NT only)
If you use Windows NT Domain server authentication, each web server in a cluster must
participate as a member NT server in a domain. Do not set a server in your cluster as the
primary domain controller (PDC). ClusterCATS Server failover will interfere with the
function of the PDC. An NT server can be a backup domain controller, but this is not
the recommended configuration.
40Chapter 3 Installing ClusterCATS
Installing ClusterCATS
ClusterCATS is a separate installation package from the JRun server installation
program. You must install the ClusterCATS load-balancing and high-availability software
on each servers in your cluster. You can run the installation program to install
ClusterCATS on a separate, nonclustered computer from which you will administer your
clusters with ClusterCATS Explorer (Windows).
Before installing ClusterCATS on a platform, review the pre-installation steps described
in “Before you install” on page 34.
This section describes the following:
• “Installing ClusterCATS on Windows” on page 41
• “Installing ClusterCATS on UNIX” on page 42
Installing ClusterCATS on Windows
ClusterCATS supports the Microsoft Internet Information Server (IIS) 4.0 and
Netscape/iPlanet Enterprise Server on Windows NT 4.0 (with Service Pack 4 or later)
and IIS 5.0 on Windows 2000 and Windows .NET Server.
To install ClusterCATS on Windows servers:
1 Run the ClusterCATS setup.exe file from Windows Explorer or the Run dialog
box.
2 Accept the default installation directory, or click Browse to select a different directory
and click Next. In this manual, the installation directory is referred to as
<
CC_install_directory>.
3 Use the following table to determine which components to install. For more
information, see “ClusterCATS components” on page 6.
ComponentReason to Select Component
ClusterCATS ExplorerTo use this computer to administer other ClusterCATS
Servers in your clusters. This computer can also be a member
of the cluster with the ClusterCATS Server component.
ClusterCATS ServerIf you are adding this computer as a member of a cluster. This
component includes the Server Administrator.
DocumentationTo make ClusterCATS documentation accessible from this
computer.
If more than one of the supported web servers is running, the Select Web Server
dialog box appears.
4 Select the web server to which you want ClusterCATS to bind. ClusterCATS does
not support clustering different types of web servers on one computer.
5 Select a method of load management.
Note: You must select JRun (JSP) Performance to have ClusterCATS manage the
JRun server load.
Installing ClusterCATS41
The following table describes your options:
MethodReason to Select Option
HyperText Transport
Protocol (HTTP)
JRun (JSP)To have ClusterCATS load manage your JRun server’s JSP
ColdFusion (CFM)To have ClusterCATS load manage your ColdFusion server’s
6 In the Server Fail-Over dialog box, to enable this server to assume the IP address of a
failed server, click Yes. To prevent this computer from assuming a failed server’s IP
address, click No.
Note: If you use Cisco LocalDirector with ClusterCATS, select No for server failover. If
ClusterCATS performs dynamic IP addressing, the LocalDirector will not be able to
recover the failed-over IP address.
For more information, see “Using server failover” on page 137.
7 You are prompted to open ClusterCATS Explorer right away. By doing so, you can
add the new server to a cluster or create a cluster. If you are going to use this server as
the administration computer, you are not required to add it to a cluster.
Installing ClusterCATS on UNIX
To install ClusterCATS on UNIX, you must have the following information:
• The names of the web server on which you will install ClusterCATS
• root access to the systems on which you will install ClusterCATS
• The names, types, and install directories of the web servers you will be clustering
• The directory where JRun is installed
Note: The procedures in this section assume you have installed JRun.
ClusterCATS supports the Apache Web Server and the Netscape Enterprise Server on
Solaris platforms, and the Apache Web Server on Linux.
For more information about installation options, enter ? at any prompt during the
installation procedure. Default selections appear in brackets
To have ClusterCATS load manage just your web server’s
HTTP requests.
and servlet requests.
CFML page requests. You must have ColdFusion Server
installed for this option to take effect.
[default].
To install ClusterCATS on UNIX:
1 Enter the following command as root:
./cluster_install
The ClusterCATS installation welcome message appears.
Do you wish to continue with this installation? [yes]?
2 Enter Yes to continue with the installation or No to exit the installation.
The license agreement confirmation message appears.
Do you agree to the license terms? [no]?
42Chapter 3 Installing ClusterCATS
3Review the license.txt file that is supplied with ClusterCATS. If you agree with
the licensing terms, enter Yes at the prompt. If you do not agree with the licensing
terms, enter No. Entering No terminates the installation procedure.
The installation directory prompt appears.
Enter install directory for ClusterCATS Server: [/opt]:
4 Enter the base directory where ClusterCATS will be installed, or press Enter to accept
the default. The installation creates a
./btcats subdirectory under the base
directory.
Note: The base directory (such as /opt) must exist prior to the installation.
The installation continues with the Configure Web Server Specific Information
section.
If you are installing ClusterCATS on Linux, skip to the next step.
If you are installing ClusterCATS on Solaris, you are prompted to enter the type of
web server to bind ClusterCATS to:
Enter Web Server type (Netscape, Apache, or <cr> to continue):
5 On Solaris, enter your web server type. On Linux, continue with the Apache
instructions in this step.
Apache: You are prompted to enter Apache’s installation directory and then the
location of the Apache
Enter Apache installation directory: [/usr/local/apache]:
Enter location of Apache config file httpd.conf: [/usr/local/apache/conf]:
config file:
Netscape: You are prompted to enter the location of Netscape’s root directory:
Enter Netscape Enterprise Server Root: [/usr/netscape/suitespot/https-server]:
6 Enter the configuration file location. ClusterCATS prompts you to optimize load
balancing for this server:
Optimize load balancing for either HTTP or JRun on https-<yourserver> [HTTP]:
ClusterCATS prompts you for the JRun installation directory:
Enter install directory for JRun []:
7 Enter the directory. ClusterCATS prompts you to turn on failure monitoring:
Monitor Web Server for Failures? [yes]?
8 Enter Yes to have monitoring turned on for this server. Enter No to disable
monitoring.
ClusterCATS optionally supports monitoring and restarting the web server on server
failure. Failures include the server not running or not responding to HTTP requests.
ClusterCATS prompts you to enable server failover on this server:
Enable ClusterCATS Server instance for Failover? [yes]?
9 Enter Yes to enable this server to assume the IP addresses for a failed cluster member,
and to pick up all the HTTP traffic originally addressed to the failed server. Enter No
to skip failover support for this server.
For more information, see “Using server failover” on page 137.
Installing ClusterCATS43
If you are configuring ClusterCATS with Netscape and selected Yes, you are
prompted to decide which servers in the cluster this server will provide failover
support for:
Cluster Mates to provide Failover for: all, subset, none [all]:
10 Netscape only: Enter all to provide failover support to all members of this server’s
cluster. Enter subset to explicitly define the cluster members for which this server will
provide failover support. Enter none to disable server failover.
If you entered subset, you are prompted to enter a list of the ClusterCATS Server
Members that are allowed to fail over to this server. For more information, see the
online help.
11 Restart your web server for the changes to take effect.
44Chapter 3 Installing ClusterCATS
After you install
When you have successfully installed ClusterCATS on all members of the cluster and any
administrative computers, you are ready to create your first cluster.
If you administer ClusterCATS from a Windows computer, you can use the Cluster
Setup Wizard described in “Creating clusters with the Cluster Setup Wizard” on page 54,
or manually create the cluster using the procedure described in “Creating clusters” on
page 54.
If you administer ClusterCATS from a UNIX computer, see “Creating clusters in UNIX”
on page 60.
Regardless of the method you use to create your first cluster, you should familiarize
yourself with the procedures in the following table when implementing your web
applications in a clustered environment:
OptionDescription
Load thresholds
for servers
Email addresses
for alarm
recipients
Session-aware
load balancing
Administering
with the
ClusterCATS We b
Explorer
Administrative
authentication
Two response time thresholds configured for each server. THe first
defines maximum or busy load; the second activates load
management. If the load for the server exceeds the busy threshold, no
new sessions can start on that server. If another server in the cluster
has the capacity to handle additional users, requests are redirected to
it. The load management activation threshold is referred to as the
gradual redirection threshold and is designed to prevent the server
from reaching the peak threshold.
For more information, see “Server load thresholds” on page 66.
ClusterCATS generates alarm notifications for several events,
including HTTP server failures, low disk space, server busy, and web
server failover. You provide e-mail addresses of all administrators for
ClusterCATS to notify for each generated alarm notification.
For more information, see “Administrator alarm notifications” on page
98.
If your web applications use session variables that store information in
web server memory, you should enable session-aware load balancing.
This feature prevents users who have established a session from being
redirected to another server as a result of load balancing.
For more information, see “Session-aware load balancing” on page 72.
If you use a UNIX computer to administer your cluster with
ClusterCATS Web Explorer, you must configure your web server to
host the Web Explorer pages.
For more information, see “Configuring the communications port on
your web server” on page 50.
Password protect administrative access to your cluster members using
domain accounts (NT only) or local accounts on each system (UNIX
and NT). Administrative users must also be members of the group sys,
or a special BT_<clustername> group.
For more information, see “Administering security” on page 103.
After you install45
46Chapter 3 Installing ClusterCATS
CHAPTER 4
Configuring Clusters
When you have configured your website and installed ClusterCATS, use the procedures
in this chapter to create and configure clusters.
Contents
• Introduction to ClusterCATS Administration........................................................ 48
• ClusterCATS Explorer and ClusterCATS Web Explorer
• ClusterCATS Server Administrator and btadmin
The following sections describe these components.
All the components are installed on a computer when you run the ClusterCATS
installation program.
You must run the installation program on each server that will be part of your cluster, and
on the Windows computer from which you will use ClusterCATS Explorer to administer
the cluster. Even if your clusters run on Solaris or Linux platforms, you can use a
Windows computer to run the ClusterCATS Explorer (recommended). You can also use
the Web-based Explorer in conjunction with included server utilities to administer your
clusters.
Note: Read the description of each component that is relevant to your installation in the
sections that follow. These sections contain important configuration information.
ClusterCATS Server
The ClusterCATS Server is the heart of the clustering and load balancing of
ClusterCATS. It must be installed on each server in your cluster. The server monitors the
status of all other web servers in a cluster and tracks application and transaction resource
availability. ClusterCATS Server runs on Windows, Sun Solaris, and Linux platforms. To
administer the ClusterCATS Server, use the ClusterCATS Server Administrator
(Windows) or the
Each ClusterCATS Server component performs the following functions:
• Intelligently manages HTTP load across web servers
• Proactively manages JRun or ColdFusion server load
• Provides failover support for every server in your cluster
• Proactively monitors JRun and or ColdFusion servers and applications
btadmin utility (UNIX).
ClusterCATS Explorer (Windows only)
ClusterCATS Explorer is a Windows-based administration utility that you use to create
and manage clusters from one computer. Using a Windows Explorer-like graphical
interface, you perform management tasks such as:
• Creating and removing clusters
• Adding and removing servers from a cluster
• Configuring load-balancing and high availability features
Note: You can run the ClusterCATS Explorer from any server in the cluster, or you can run it
remotely. This flexibility gives administrators in different geographic locations the ability to
administer distributed clusters. You can also use ClusterCATS Explorer to administer UNIX
clusters from a single Windows computer. You can view multiple clusters from a single
Explorer.
The ClusterCATS Explorer presents a view of your cluster that is much like the view that
the Windows Explorer presents of the files and directories that reside on a PC, as shown
below.
The ClusterCATS Explorer interface includes four distinct areas:
• Menu bar — menu access to all ClusterCATS functionality
• Toolbar — shortcuts to the most frequently used ClusterCATS functions
• Left pane — views of cluster objects.
• Right pane — the folder and files for the object currently selected in the left pane
Each object in a ClusterCATS cluster configuration — clusters, servers, monitors, and
probes — is represented by a unique icon. You can manipulate the icons in much the
same manner as you expand and collapse directory trees in the Windows Explorer. For a
list of which icons represent which objects in the ClusterCATS Explorer, click the Icon
Legend button.
ClusterCATS Web Explorer (UNIX only)
You use the ClusterCATS Web Explorer (btweb) for administering UNIX-only clusters.
It is a graphical, cross-platform, Web-based utility used to create, configure, and
administer ClusterCATS clusters.
Note: ClusterCATS only installs ClusterCATS Web Explorer on UNIX servers, but you can
access it from any computer with an Internet browser.
The Web Explorer, like its Windows counterpart, is quite robust and lets you configure
and administer clusters easily. However, it does not contain the identical functionality
provided by the Windows-based ClusterCATS Explorer. The Web Explorer does not let
you do the following:
• Install ClusterCATS Web Explorer on an Windows server; it runs only from UNIX
servers
• Create and administer Windows servers that have security enabled
• Set or modify load thresholds with a graphical display
Introduction to ClusterCATS Administration49
• Monitor the load hitting the server via a graphical display; the server’s load statistics
are only displayed textually on the Cluster Member List and Server Properties pages
• Integrate ClusterCATS with Cisco LocalDirector
If you require any of these capabilities, you should obtain a Windows computer and use
the Windows-based ClusterCATS Explorer for your cluster administration.
Configuring the communications port on your web server
Before you can open and use the ClusterCATS Web Explorer, you must ensure that a
communications port is configured to listen for HTTP requests on the Netscape or
Apache web server for which you installed ClusterCATS. You can access the
ClusterCATS Web Explorer only through the defined communications port on your web
server, which you configure using your web server’s administration utilities.
Note: For availability and security reasons, be sure to allow access to the ClusterCATS Web
Explorer only from a separate IP-based virtual host server on a port other than 80 and
password protect access to it.
Netscape considerations
By default, Netscape Enterprise Server assigns your web server a random, six-digit
communication port number. You can either use this assigned number or change it to
something easier to remember, like port 81.
If you are not familiar with configuring your web server’s communications ports, see the
Netscape Enterprise Server Administrator online help for instructions.
Apache considerations
Make the following changes to the Apache Web Server’s
ClusterCATS Web Explorer (
(
2222) specified in the example below with values appropriate for your system and enable
btweb). Replace the IP address (192.168.96.71) and port
ClusterCATS, and
web server or virtual host is configured to listen for HTTP requests.
The Enter Network Password dialog box appears:
VirtualHost.
htpasswd utility to create and manage your authentication
or virtual_host is the name of the web server on which you installed
<admin-port> is the communication port number on which the
3 Enter your user name and password in the appropriate fields and click OK.
Note: The default user name and password is admin.
The ClusterCATS Web Explorer opens.
Introduction to ClusterCATS Administration51
ClusterCATS Server Administrator
The ClusterCATS Server Administrator is a Windows-based utility that lets you perform
server-specific maintenance activities for each server in a cluster. Unlike the ClusterCATS
Explorer, which let you administer clusters from one central computer, you must run the
ClusterCATS Server Administrator from each server in your cluster.
The Server Administrator lets you:
• Change installation settings
• Add and remove the ClusterCATS filter from the web server service
• Stop and start the ClusterCATS service
• Reset a clustered server’s configuration to its preclustered state
The ClusterCATS Server Administrator lets you accomplish these tasks using an
easy-to-use graphical user interface.
To open the ClusterCATS Server Administrator, select Start > Programs > Macromedia > ClusterCATS Server Administrator.
For more information on using the Server Administrator, see Chapter 5.
52Chapter 4 Configuring Clusters
btadmin
btadmin is a scriptable utility that lets you perform server-specific maintenance activities
for each server in a cluster.
btadmin is available on UNIX and Windows servers.
Unlike the ClusterCATS Web Explorer, which lets you administer your entire cluster
from one central computer, you must use
btadmin lets you:
• Add and remove the ClusterCATS filter from the web server service
• Stop and start the ClusterCATS service
• Place a cluster member in maintenance mode
• Reset a clustered server’s configuration to its preclustered state
btadmin from each server in your cluster.
For more information, see “Using btadmin” on page 122.
Introduction to ClusterCATS Administration53
Creating clusters
If you have performed the tasks described in “Before you install” on page 34 and you
have successfully installed ClusterCATS, you are ready to create server clusters.
This section explains the following:
• “Creating clusters in Windows” on page 54
• “Creating clusters in UNIX” on page 60
Creating clusters in Windows
You can create clusters using the Cluster Setup Wizard or manually, using the
ClusterCATS Explorer. It is easier and quicker to create and configure clusters completely
with the Cluster Setup Wizard.
This section describes how to create clusters in both ways:
• “Creating clusters with the Cluster Setup Wizard” on page 54
• “Manually creating clusters” on page 59
Creating clusters with the Cluster Setup Wizard
The ClusterCATS Explorer includes the Cluster Setup Wizard that makes creating and
configuring clusters easy. The wizard steps you through the required definition and
configuration steps. After creating a cluster with the wizard, you can use the
ClusterCATS Explorer to make any necessary changes.
To create a server cluster using the Cluster Setup Wizard:
2 Select Configure > Cluster Setup Wizard or click the Cluster Setup Wizard icon
in the toolbar.
54Chapter 4 Configuring Clusters
The Create New Cluster dialog box appears:
3 Enter a name for your cluster and click Next.
Make your cluster names logically consistent with their purpose. For example, Sales
Web, Customer Support Web, and so on.
The List of Web Servers in the Cluster dialog box appears:
Creating clusters55
4 Click Add to add available web servers to your cluster.
The Add New Server to Cluster dialog box appears:
5 Enter the fully qualified host name of a web server in the New Web Server Name field
(for example, doc.macromedia.com).
6 If you use the ClusterCATS dynamic IP addressing scheme and the maintenance IP
address is not bound to your NIC, select ClusterCATS Maintenance Support.
If you are not configuring this server for offline maintenance support, go to step 8.
Note: You can set the maintenance support option only when creating a cluster or
adding a cluster member to a cluster. You cannot configure or modify this option after
you have created and added the cluster member to the cluster.
Enabling maintenance support for clusters requires that you configure your cluster
for ClusterCATS dynamic IP addressing. For more information, see “ClusterCATS
dynamic IP addressing (Windows only)” on page 132.
7 Enter the fully qualified host name of the maintenance address (for example,
serv1.yourcompany.com) in the Maintenance Address field.
8 Click OK.
9 Repeat steps 4 through 8 for each web server you want to add to the cluster, and then
click Next to proceed.
The Load Management dialog box appears:
56Chapter 4 Configuring Clusters
10 To use the default load threshold settings, click Next and go to step 13. If you do not
want to use the defaults, select the server and click Configure to configure new peak
and gradual redirect load thresholds for that cluster member.
The Load Thresholds dialog box appears:
11 Enter numerical values (not higher than 100%) in the Peak Load Threshold and
Gradual Redirect fields and click OK.
Set the peak load threshold below 100%, to accommodate the server’s processing
needs. Set the gradual redirection threshold lower than the peak threshold.
12 Click Next.
The Alert Notification dialog box appears:
13 Enter the name of your outbound SMTP mail server in the SMTP mail server field
and the e-mail address for a recipient of cluster alerts in the E-mail addresses field. If
multiple people will receive different alerts for different types of notification events,
go to step 14. Otherwise, click Next and proceed to step 16.
14 To configure different types of alerts to go to different people, click Details in the
Alert Notification dialog box.
The Alarm Notification dialog box appears.
15 Select an alert event and enter the e-mail address of the recipient.
If you want one person to receive the majority of alerts, click Propagate to
automatically fill each event’s Recipient column with the same e-mail address. Then
Creating clusters57
manually change the few recipients that are different. If there are multiple recipients
for one alert event, separate e-mail address entries with commas. Click OK to return
to the Alarm Notifications dialog box and then click Next to proceed.
The Session State Management dialog box appears:
16 If your server cluster supports a site that must maintain persistent state on the same
web server during a user session, select Yes to enable session-aware load balancing.
Otherwise, select No and click Next.
The Load Balancing Device dialog box appears:
17 If you use a hardware-based load-balancing device in addition to ClusterCATS to
manage and distribute load, enter the name of the website that this device supports
(for example, www.yourcompany.com) and click Next.
18 Click Finish.
ClusterCATS creates the cluster you configured and displays it in the ClusterCATS
Explorer’s left pane.
58Chapter 4 Configuring Clusters
Manually creating clusters
If you do not want to create your clusters using the Cluster Setup Wizard, you can create
them manually. If you manually create clusters, you must then add each cluster member
to a cluster, using the ClusterCATS Explorer.
To manually add cluster members to a cluster, see “Adding cluster members” on page 63.
2 Select Cluster Manager > New Cluster, or right-click the Cluster Manager icon and
select New Cluster, or click the New Cluster button in the toolbar.
The Create New Cluster dialog box appears:
3 Add a new cluster using the fields as described in the following table:
FieldDescription
Cluster NameEnter a unique name for the cluster.
Make cluster names logically consistent with their purpose. For
example, Sales Web, or Customer Support Web.
Web Server
Name
Bring up in
passive mode
Enter the fully qualified host name (for example,
doc.macromedia.com) for the first server you want to be a
member of this cluster.
You cannot create an empty cluster; you must specify a web
server that will be part of the cluster. The first server that you add
to a cluster is known as the Admin Manager. The remaining
steps guide you in configuring the Admin Manager.
Select this checkbox to bring the Admin Manager up in Passive
mode. If you do not select this checkbox, the server will be
brought up in Active mode.
For more information, see “Changing active/passive settings”
on page 111.
Creating clusters59
FieldDescription
ClusterCATS
maintenance
support
Maintenance
address
4 Click OK.
The cluster appears below the Cluster Manager icon in the ClusterCATS Explorer
left pane.
To manually add additional cluster members to your new cluster, see “Adding cluster
members” on page 63.
Creating clusters in UNIX
1 In the ClusterCATS Web Explorer, click the Create New Cluster link.
The Create New Cluster page appears:
Select the ClusterCATS Maintenance Support check box to
enable support for offline maintenance. The Admin Manager
must be configured with a maintenance IP address.
Using maintenance support requires that your cluster support
ClusterCATS dynamic IP addressing. For more information, see
“ClusterCATS dynamic IP addressing (Windows only)” on page
132.
Offline maintenance support is available only on Windows NT
server clusters. You can set the maintenance support option
only when creating a cluster or adding a cluster member to a
cluster. You cannot configure or modify this option after you
create and added a cluster member to a cluster.
Enter the fully qualified host name of the maintenance address
(for example, serv1.yourcompany.com). This field is accessible
only if you selected ClusterCATS Maintenance Support.
60Chapter 4 Configuring Clusters
2 Add a cluster using the fields as described in the following table:
FieldDescription
Cluster NameEnter a unique name for the cluster.
Make cluster names logically consistent with their purpose — for
example, Sales Web, or Customer Support Web.
Web Server
Name
Enter the fully qualified host name (for example,
doc.macromedia.com) for the first server you want to be a member
of this cluster.
You cannot create an empty cluster; you must specify a web server
that will be part of the cluster. The first server that you add to a
cluster is known as the Admin Manager.
You cannot create an empty cluster; you must specify a web server
that will be part of the cluster.
3 Click OK.
ClusterCATS creates the cluster and displays its members on the Cluster Member
List page, as in the following figure:
Creating clusters61
Removing clusters
To delete a cluster, you must delete each member from the cluster individually, using the
procedure described in “Removing cluster members” on page 65.
Note: When deleting cluster members, you must delete the Admin Manager (Windows) or
the Admin Agent (UNIX) last. This server is the first server you added to the cluster.
When the last cluster member has been removed, the cluster itself is deleted.
To determine which server is the Admin Manager in Windows:
1 Open the ClusterCATS Explorer.
2 Right-click on the cluster icon and select Configure > Administration.
The cluster’s Properties dialog box opens displaying the Administration tab. The
server designated as the Admin Manager is the active entry in the drop-down list.
To determine which server is the Admin Agent in UNIX:
1 In the ClusterCATS Web Explorer, click the Show Cluster link.
2 Enter the fully qualified host name of a server in the Web Server Name field.
3 Click OK.
The Cluster Member List page appears. If you get an "Error: Server
<cluster_member_name> could not be found", ensure that you used the correct, fully
qualified server name and that the server is running.
4 Click the Administration link. The Cluster Administration page appears. The Admin
Agent is the currently selected host in the Admin Agent field.
62Chapter 4 Configuring Clusters
Adding cluster members
You can add servers to a cluster at any time. This section describes the following:
• “Adding cluster members in Windows” on page 63
• “Adding cluster members in UNIX” on page 64
Adding cluster members in Windows
Use the ClusterCATS Explorer to add servers to a cluster. If you used the Cluster Setup
Wizard (Windows only) to create a cluster and populate it with cluster members, you can
also add clusters using the following procedure.
To add an additional cluster member to a cluster:
1 Open the ClusterCATS Explorer and select a cluster.
2 Select Cluster > New > Cluster Member. Alternatively, you can click the Add button
or right-click the cluster icon and select New > Cluster Member.
The Add New Server to Cluster dialog box appears:
3 In the Web Server Name field, enter the fully qualified host name of the web server
(for example, doc.macromedia.com).
4 If you use the ClusterCATS dynamic IP addressing scheme and the maintenance IP
address is not bound to your NIC, select ClusterCATS Maintenance Support.
If you are not configuring this web server for offline maintenance support, go to step
6.
Note: You can set the maintenance support option only when creating a cluster or
adding a cluster member to a cluster. You cannot configure or modify this option after
you have created and added the cluster member to the cluster.
Enabling maintenance support for clusters requires that you configure your cluster
for ClusterCATS dynamic IP addressing. For more information, see “ClusterCATS
dynamic IP addressing (Windows only)” on page 132.
5 Enter the fully qualified host name of the maintenance address (for example,
serv1.yourcompany.com) in the Maintenance Address field.
6 Click OK.
7 Repeat steps 2 through 6 to add additional servers to the cluster manually.
Adding cluster members63
Adding cluster members in UNIX
Use the ClusterCATS Web Explorer to add cluster members.
To add a cluster member to a cluster:
1 Open the ClusterCATS Web Explorer if it is not already open.
2 Click the Add Server link.
The Add Server page appears:
3 Enter the fully qualified host name (for example, doc.macromedia.com) in the
Web Server Name field.
4 Click OK to add the cluster member to the existing cluster.
64Chapter 4 Configuring Clusters
Removing cluster members
You can remove servers from a cluster at any time. This section describes the following:
• “Removing cluster members in Windows” on page 65
• “Removing cluster members in UNIX” on page 65
Removing cluster members in Windows
Use the ClusterCATS Explorer to remove cluster members.
To remove a cluster member from a cluster:
1 Open the ClusterCATS Explorer and select a cluster member.
2 Select Server > Delete or right-click the server name and select Delete.
The selected cluster member is deleted from the cluster you selected.
Removing cluster members in UNIX
Use the ClusterCATS Web Explorer to remove cluster members.
To remove a cluster member from a cluster:
1 In the ClusterCATS Web Explorer, click the Delete Server link.
The Delete Server page appears:
2 Select a cluster member to delete from the Web Server Name drop-down box.
A message appears, telling you that the selected server has been deleted.
Note: If you delete the last cluster member in a cluster, the cluster is also deleted and
you are returned to the default page of the ClusterCATS Web Explorer.
3 Click OK.
Removing cluster members65
Server load thresholds
ClusterCATS ensures that your web applications remain available and running at
optimum performance by intelligently managing the HTTP traffic hitting your clustered
servers. By setting load thresholds on each server in your cluster, you can control and
manage your site’s availability and performance. Many of your threshold configuration
decisions hinge on your site’s architecture and where the bulk of your processing
resources must be allocated.
During an HTTP redirection, ClusterCATS evaluates the cluster’s state according to the
HTTP server state first, and then the JRun/ColdFusion server load. This policy is the
same in centralized and distributed ClusterCATS configurations. In a centralized
ClusterCATS cluster with all web servers at one site, ClusterCATS redirects only if the
server is busy or restricted.
For each cluster member, you configure two load thresholds:
• Peak load threshold — the maximum load the server can handle before its
performance degrades significantly or becomes unavailable.
• Gradual redirection threshold — the point at which HTTP requests begin to be
redirected to other less-loaded members in a cluster so the server’s performance does
not degrade or become unavailable.
By default, the peak load threshold is 90% and the gradual redirection threshold is 10%.
These default settings adequately handle HTTP traffic going across most websites.
However, if your website is particularly processing intensive, you should lower both
threshold settings to better accommodate the increased load.
If you want the server to handle as much load as possible, set the threshold values close to
one another. However, if you want redirection to occur well in advance of the server
nearing its peak threshold, set the values farther apart so there is a difference of at least
10% between the two threshold values.
This section shows you how to set the peak and gradual redirection load thresholds for
ClusterCATS Servers in the following sections:
• “Configuring load thresholds in Windows” on page 66
• “Configuring load thresholds on UNIX” on page 69
Configuring load thresholds in Windows
To adjust load thresholds for a cluster member:
1 Open the ClusterCATS Explorer and select a server.
2 Select Server > Properties or right-click the server and select Properties.
66Chapter 4 Configuring Clusters
The server’s Properties dialog box appears:
3 Click the Load tab.
4 Enter a numeric value (less than 100%) in the first Load Management field. This is
referred to as the peak load threshold. In the example above, the peak load threshold
is set to 90.
5 Enable the Gradual Redirection check box.
6 Enter a new value in the Gradual Redirection field. This value must be lower than the
peak load threshold.
7 Click OK to apply your new threshold settings.
Server load thresholds67
Viewing a cluster’s load status
JRun/ColdFusion reports its load data directly to ClusterCATS. You can view the load on
the servers at any time using the Server Load Monitor.
To view your cluster’s current load levels:
1 Open the ClusterCATS Explorer and select a cluster.
2 Select Monitor > Load or right-click the cluster you have selected and select Monitor
> Load.
The Server Loads dialog box appears, showing the current load status for each cluster
member in the cluster that you selected:
The load monitor shows three lines:
•Top line (red): Peak load threshold
•Middle line (yellow): Gradual Redirection load threshold
•Bottom line (green): JRun/ColdFusion server load
Adjusting load threshold settings graphically
You can view and set threshold settings of a cluster member using the Server Load
Monitor’s visual display. To set or change threshold settings, use the mouse to drag the
Peak (red) and Gradual Redirection (yellow) threshold lines to their settings instead of
entering numeric values in fields
To configure load threshold settings using the Server Load dialog box:
1 Open the ClusterCATS Explorer and select a server.
2 Select Monitor > Load or right-click the server and select Monitor > Load.
68Chapter 4 Configuring Clusters
The Server Load dialog box appears:
3 Use your mouse to drag the peak load threshold (red) up or down.
As you move the line, the peak load threshold percentage changes.
4 Enable gradual redirection by selecting the Gradual Redirection check box.
5 Drag the Gradual Redirection load threshold (yellow) to adjust it accordingly.
6 Close the dialog box to apply the load threshold settings you configured.
Configuring load thresholds on UNIX
To configure load thresholds for a cluster member:
1 In the ClusterCATS Web Explorer, click the Show Cluster link.
The Show Cluster page appears:
2 Enter the fully qualified host name of a server in the Web Server Name field.
Server load thresholds69
3 Click OK.
The Cluster Member List page appears. If you get an "Error: Server
<cluster_member_name> could not be found", ensure that you used the correct, fully
qualified server name and that the server is running.
4 Click the Server Attributes link.
The Connect To Server page appears:
5 Select a server to connect to from the Web Server Name list box.
6 Click OK.
70Chapter 4 Configuring Clusters
The selected server’s Server Properties page appears:
7 Click the Administration link under Server Attributes.
The Server Administration page appears for the selected server:
8 To change the peak load threshold, enter a new numeric value (less than 100%) in the
Standard Load Threshold field.
9 Enable the Gradual Redirection check box if it is not already enabled.
10 To change the Gradual Redirection load threshold, enter a new numeric value in the
Gradual Load Threshold field. This value must be lower than the standard load
threshold.
11 Click OK to apply your new load threshold settings.
Server load thresholds71
Session-aware load balancing
Managing a web application’s state in a clustered environment can be challenging. By
default, web application, session, and server variables that are stored in memory or a
repository during a user session do not persist during a server redirection. Consequently,
the web server cannot maintain the application’s state correctly.
To overcome this problem, ClusterCATS provides a session-aware load-balancing feature
that lets you maintain application state in a clustered environment.
One way to maintain your web application’s state is to create session variables that are
stored on the web server. For an e-commerce website that is clustered, it is vital that users
do not get redirected to another server in the middle of their session. If they did, their
online transactions would be interrupted, making for an unsuccessful and frustrating user
experience.
To ensure that users are not redirected from the server on which they start their session,
ClusterCATS provides a built-in feature for enabling session-aware load balancing.
Sometimes referred to as a “sticky” server, session-aware load balancing guarantees that
users will not get bumped from the server on which they start their session until the
session is complete, regardless of the load thresholds that have been defined for that
server.
Note: Session-aware load balancing may not work if you use absolute hyperlinks in your
web pages. Absolute links route the HTTP request back to the cluster entry point and
redirect according to the current load threshold without regard to the state of the requesting
client. To avoid inadvertent loss of state, use only relative linking in your web pages.
This section describes the following:
• “Enabling session-aware load balancing on Windows” on page 72
• “Enabling session-aware load balancing on UNIX” on page 72
Enabling session-aware load balancing on Windows
To enable session-aware load balancing:
1 Open the ClusterCATS Explorer and select a cluster.
2 Select Configure > Administration or right-click the cluster and select Configure >
Administration.
The cluster Properties dialog box appears.
3 Select the Session State Management check box.
4 Click OK.
Enabling session-aware load balancing on UNIX
To enable session-aware load balancing:
1 In ClusterCATS Web Explorer, click the Show Cluster link.
2 Enter the fully qualified host name of a server for which you want to configure
session-aware load balancing in the Web Server Name field.
72Chapter 4 Configuring Clusters
3 Click OK.
The Cluster Member List page appears:
4 Click the Administration link under Cluster Attributes.
The Cluster Administration page appears:
5 Select the Enable session-aware load balancing check box.
6 Click OK to enable session-aware load balancing for the selected cluster.
Session-aware load balancing73
Persistent session failover in JRun
JRun can be configured to enable session persistence, meaning that all session data is
saved (persisted) upon the completion of every request. When a server that is servicing a
client's session goes down, the client's active session data can be retrieved intact from a
common data store (such as a JDBC database) by another server. When the client
attempts to continue its active session and presents its session ID to the replacement
server, its session data is restored from the repository, completing the session failover.
This feature is called session swapping. The client's session state is effectively swapped
from one server to another when the first fails.
Session swapping overview
The following are required to use failover for persistent sessions with ClusterCATS:
• Session swapping must be enabled in JRun and ClusterCATS. For more information,
see “Configuring JRun for session swapping” on page 74 and “Configuring
ClusterCATS for session swapping” on page 74, respectively.
• Session-aware load balancing must be enabled. Because only one server can be
responsible for a session at a time, JRun session swapping must be used in
conjunction with the ClusterCATS session-aware load-balancing feature. This ensures
that multiple servers do not have concurrent access to the same session data. For more
information, see “Session-aware load balancing” on page 72.
• A repository used for persistent session data must be shared among the JRun servers
in a cluster. For information, see “Using shared files for session swapping” on page
75. For an example of using JDBC to connect to a shared repository of session
information, see “Using JDBC for session swapping” on page 76.
• Cookies must have domain scope for proper session swapping. For more information,
see “Configuring JRun for session swapping” on page 74.
Configuring JRun for session swapping
To enable session swapping in JRun, the following properties must be set in the JRun
server’s
local.properties file:
session.swapping=true
session.maxresident=0
The local.properties file must enable domain scope for cookies by including the
following property:
session.cookie.domain=yourdomain.com
The repository used for session swapping can be a shared file or a shared JDBC database.
For information, see “Using shared files for session swapping” on page 75 and “Using
JDBC for session swapping” on page 76.
Configuring ClusterCATS for session swapping
ClusterCATS must be configured to allow session swapping to function properly. The
following platform-specific procedures explain how to enable session swapping in
ClusterCATS.
74Chapter 4 Configuring Clusters
To enable session swapping on Windows:
1 Edit the registry (using regedit) and open the following key:
5 Save the file and exit your text editor.
6 Restart ClusterCATS with the following command:
# /usr/lib/btcats/btadmin start all
7 Repeat this procedure for every server in the cluster.
Using shared files for session swapping
To use file swapping, the JRun server's local.properties file should contain the
following properties:
session.persistence.service=file
session.persistence.file.class=allaire.jrun.session.FileSessionStorage
# See the following paragraph for more on this property.
session.persistence.file.path=/mnt/myothermachine/sessionpool
The session.persistence.file.path property must specify a shared path that all
computers can read and write to. For example, on UNIX, you must have server1 export
sessionpool
server1:/sessionpool to some mount point — for example, /mnt/sessionpool —
and set server2’s
permission.
Note: If JRun runs as an NT service, and you use a mapped drive, JRun does not have
permissions to write to the drive. To correct this problem, edit the properties for the JRun
Service and change the user account for the service to be a user with the necessary
privileges to write to the mapped drive.
and server1's file.path=/sessionpool. Now server2 should mount
file.path=/mnt/sessionpool. This assumes that server2 has write
/
Persistent session failover in JRun75
Using JDBC for session swapping
To use JDBC for session swapping, the JRun server's local.properties file should
contain the following properties:
JDBC swapping requires that you have a valid JDBC driver that can successfully connect
to the database. You must create a table in your database with an id column and a data
column. This example uses a table named sessions, an IDColumn named id, and a
DataColumn named data. Define the id column as varchar(255) and the data column as
binary data.
76Chapter 4 Configuring Clusters
Using ColdFusion probes
ClusterCATS provides load-balancing and failover support for your web applications in
two ways. First, it automatically interprets and reacts to the load metric that the
ColdFusion server generates. Second, ClusterCATS lets you create web application
monitors. These monitors can have multiple probes that periodically test the health and
operation of the websites that the servers process.
Note: Multiple probes are allowed per web server, and web applications can be restarted
individually. However, each web application should have only one probe that restarts on a
failure.
The probe is a high-availability feature that verifies that ColdFusion servers are running
properly on clustered servers. It periodically tests specific URLs at specified intervals and
verifies their validity against user-defined strings contained in the returned pages.
If the validation test succeeds, inbound HTTP requests continue to be sent to the server
for which the probe exists. However, if a test fails (the URL fails, times out, or does not
return the user-specified string in the page accessed), ClusterCATS restricts that server
and redirects requests to other available servers in the cluster. ClusterCATS continues to
test the restricted server; when the probe returns a valid value, the server is considered
available.
If a ColdFusion server hangs or fails, ClusterCATS attempts to recover the failed service.
When the service is recovered, the probe can restart the server and begin sending HTTP
traffic to it again.
This section describes the following:
• “Configuring ColdFusion probes in Windows” on page 77
• “Configuring ColdFusion probes in UNIX” on page 81
Configuring ColdFusion probes in Windows
This section describes the following:
• “Adding ColdFusion probes” on page 77
• “Removing ColdFusion probes” on page 81
Adding ColdFusion probes
ClusterCATS lets you set up one probe monitor for each server in the cluster. Each
monitor can have multiple probes associated with it. As a result, clusters will typically
have multiple probe monitors (one for each server), and each monitor can have one or
more probes.
The procedure for adding a new monitor and probe is different from adding a probe to a
server that already has a probe monitor. This section describes how to perform both
activities.
Note: The ColdFusion service must be running on your server to add a probe.
Using ColdFusion probes77
To add a new monitor and ColdFusion probe:
1 Open the ClusterCATS Explorer and select a server.
2 Select Server > New Monitor. Alternatively, you can right-click the server and select
New Monitor.
The New Monitor dialog box appears:
3 Enter a name to assign to this probe’s monitor in the Name field and click OK.
The monitor’s Properties dialog box appears:
78Chapter 4 Configuring Clusters
4 Click the New Probe button .
The ColdFusion Web Application Probe settings dialog box appears:
5 Configure the application probe settings as described in the following table:
FieldDescription
Web ServerSelect the name of the server from the drop-down list.
PathnameEnter the absolute path to the ColdFusion probe. Do not
Working directoryEnter the absolute path to the probe’s working directory. Do
Startup parametersReplace the <URL> with the actual URL of the site you want
Timeout (sec)Enter a time, in seconds, to indicate how long ClusterCATS
change the default selection unless you installed ColdFusion
to a directory other than the default installation directory.
not change the default selection unless you installed
ColdFusion to a directory other than the default installation
directory.
the probe to access, and replace <success string> with a text
string that appears on a page on the site you are probing.
Tip s:
• Be sure to include a space between the URL and the
success string that you specify. The success string must
be enclosed in quotation marks.
• Do not modify the RESTART explicit parameter if you
want the probe to automatically restart the ColdFusion
Server upon detecting a failure. However, if you do not
want ClusterCATS to automatically restart the ColdFusion
Server upon detecting a failure, replace RESTART with
NORESTART.
should wait before a ColdFusion server failure is registered.
Do not set this value to less than 60 seconds because
ClusterCATS might restart the ColdFusion server
inadvertently (due to network congestion, for example),
rather than detect an actual failure on the ColdFusion server.
Using ColdFusion probes79
FieldDescription
Frequency (sec)Enter a time, in seconds, to indicate how often the probe
Return ValueEnter 0 so that the probe succeeds on a successful probing
checks the ColdFusion server.
Probes that restart web applications should be configured to
run no more frequently than the time it takes to stop and
restart ColdFusion. This time is highly site-specific, because
it depends on the system resources available on the servers
and the volume of traffic at the site.
For probes that do not restart the web application, the
Frequency depends on how long you can reasonably afford
to have your web application off-line. A minimum Frequency
of 15 seconds is recommended.
of the page. Enter a non-zero number to have the probe
succeed on a failure.
The default is 0. Only under rare circumstances would you
change this to a non-zero number.
6 Click Register to create the probe.
7 Close all open dialog boxes.
Icons for the monitor and probe appear under the Monitor Manager in the
ClusterCATS Explorer.
To add a new probe to an existing probe monitor:
1 Open the ClusterCATS Explorer.
2 Select the cluster_name > Monitor Manager > monitor_name in the left pane.
3 Select Monitor > Properties. The monitor’s Properties dialog box appears:
80Chapter 4 Configuring Clusters
4 Click the New Probe button .
The ColdFusion Web Application Probe settings dialog box appears:
5 Configure the application probe settings as described in the table on page 79.
6 Click Register to create the probe.
7 Close all open dialog boxes.
An icon for the new probe appears under the Monitor Manager in the ClusterCATS
Explorer.
Removing ColdFusion probes
To remove a ColdFusion probe:
1 Open the ClusterCATS Explorer.
2 Select the cluster_name > Monitor Manager > monitor_name > probe_name in the left
pane.
3 Select Probe > Delete. Alternatively, you can right-click the probe and select Delete.
Configuring ColdFusion probes in UNIX
This section describes the following:
• “Adding ColdFusion probes” on page 81
• “Editing and removing ColdFusion probes” on page 83
Adding ColdFusion probes
To add a new ColdFusion probe:
1 Open the ClusterCATS Web Explorer if it is not already open.
2 Click the Show Cluster link.
The Show Cluster page appears.
3 In the Web Server Name field, enter the fully qualified host name of the server for
which you want to configure the ColdFusion probe.
4Click OK.
The Cluster Member List page appears.
5 Click the Server Attributes link.
The Connect To Server page appears.
6 Select the server to add a probe to from the Web Server Name listbox.
7Click OK.
The selected server’s Properties page appears.
8 Click the ColdFusion Probe link.
If there are existing probes for this server, the Probe List page appears.
Using ColdFusion probes81
9 To create a new probe, click New.
The ColdFusion Application Probe page appears. If this is the first probe for this
server or you clicked New to add another probe, the ColdFusion Application Probe
page appears.
10 Configure the application probe settings as described in the following table:
FieldDescription
StatusThis is an informational field. If the probe is not registered, the
Status displays Not registered. If the probe is registered, the
Status displays Succeeding.
PathnameEnter the path to the ColdFusion probe. Do not change the default
selection unless you installed ClusterCATS for ColdFusion to a
directory other than the default installation directory.
Working directoryEnter the path to the probe’s working directory. Do not change the
default selection unless you installed ClusterCATS for ColdFusion
to a directory other than the default installation directory.
Startup Parameters Enter the actual URL of the site you want the probe to access
followed by a text string that appears on a page within the site you
are probing (cfprobe.cfm in the screen shown in step 9.)
Note: Do not modify the RESTART explicit parameter if you want
the probe to automatically restart the ColdFusion Server upon
detecting a failure. However, if you do not want ClusterCATS to
automatically restart the ColdFusion Server upon detecting a
failure, replace RESTART with NORESTART.
Timeout (sec)Enter a time, in seconds, to indicate how long ClusterCATS should
wait before a ColdFusion server failure is registered.
Do not set this value to less than 60 seconds because
ClusterCATS might restart the ColdFusion server inadvertently
(due to network congestion, for example), rather than detect an
actual failure on the ColdFusion server.
Frequency (sec)Enter a time, in seconds, to indicate how often the probe checks
the ColdFusion server.
Probes that restart web applications should be configured to run
no more frequently than the time it takes to stop and restart
ColdFusion. This time is highly site-specific, because it depends
on the system resources available on the servers and the volume
of traffic at the site.
For probes that do not restart the web application, the Frequency
depends on how long you can reasonably afford to have your web
application off-line. A minimum Frequency of 15 seconds is
recommended.
Return valueEnter 0 so that the probe succeeds on a successful probing of the
page. Enter a non-zero number to have the probe succeed on a
failure.
The default is 0. Only under rare circumstances would you change
this to a non-zero number.
82Chapter 4 Configuring Clusters
11 Click Register to create the probe. ClusterCATS begins to test the selected server
immediately.
Editing and removing ColdFusion probes
To edit or remove a ColdFusion probe:
1 Open the ClusterCATS Web Explorer, if it is not already open.
2 Click the Show Cluster link.
The Show Cluster page appears.
3 Enter the fully qualified host name of the server for which you want to configure the
ColdFusion probe in the Web Server Name field.
4 Click OK. The Cluster Member List page appears.
5 Click the Server Attributes link.
The Connect To Server page appears.
6 Select the server that hosts the probe in the Web Server Name lis tbox.
7Click OK.
The selected server’s Properties page appears.
8 Click the ColdFusion Probe link.
The Probe List page appears.
9 Select the probe to edit or remove.
10 To remove the probe, click Delete.
ClusterCATS removes the ColdFusion probe.
11 To edit the probe, click Edit.
A page with all the available probes appears.
12 Edit the fields corresponding to the probe that you want to change, and click
Register.
Using ColdFusion probes83
Using JRun probes
ClusterCATS provides load-balancing and failover support for your web applications in
two ways. First, it automatically interprets and reacts to the load metric that the JRun
servers generate. Second, ClusterCATS lets you create web application monitors. These
monitors can have multiple probes that periodically test the health and operation of the
websites that the JRun servers process.
Note: Multiple JRun probes are allowed per web server, and JRun web applications can be
restarted individually. However, each web application should have only one probe that
restarts on a failure.
The probe is a high-availability feature that verifies that JRun servers are running
properly on clustered servers. It periodically tests specific JRun URLs at specified
intervals and verifies their validity against user-defined strings contained in the returned
pages.
If the validation test succeeds, inbound HTTP requests continue to be sent to the server
for which the probe exists. However, if a test fails (the URL fails, times out, or does not
return the user-specified string in the page accessed), ClusterCATS restricts that server
and redirects requests to other available servers in the cluster. ClusterCATS continues to
test the restricted server; when he probe returns a valid value, the server is considered
available.
If the JRun server hangs or fails, ClusterCATS attempts to recover the failed service.
When the JRun service is recovered, the probe can restart the JRun server and begin
sending HTTP traffic to it again.
This section describes the following:
• “Configuring JRun probes in Windows” on page 84
• “Configuring JRun probes in UNIX” on page 88
Configuring JRun probes in Windows
This section describes the following:
• “Adding JRun probes” on page 84
• “Removing JRun probes” on page 88
Adding JRun probes
ClusterCATS lets you set up one probe monitor for each server in a cluster. Each monitor
can have multiple probes associated with it. As a result, clusters typically have multiple
probe monitors (one for each server), and each monitor may have one or more probes.
The procedure for adding a new monitor and probe is different from adding a probe to a
server that already has a probe monitor. This section describes how to perform both
activities.
Note: The JRun service must be running on your server to add a probe.
84Chapter 4 Configuring Clusters
To add a new monitor and JRun probe:
1 Open the ClusterCATS Explorer and select a server.
2 Select Server > New Monitor or right-click the server and select New Monitor.
The New Monitor dialog box appears:
3 Enter a name to assign to this probe’s monitor in the Name field on the New Monitor
dialog box and click OK.
The monitor’s Properties dialog box appears:
Using JRun probes85
4 Click the New Probe button .
The JRun Application Probe settings dialog box appears:
5 Configure the application probe settings as described in the following table:
FieldDescription
Web ServerSelect the name of the server from the drop-down list.
PathnameEnter the absolute path to the JRun probe. Do not change the default
Wo rk in g
directory
Startup
parameters
selection unless you installed JRun to a directory other than the
default installation directory.
Enter the absolute path to the probe’s working directory. Do not
change the default selection unless you installed JRun to a directory
other than the default installation directory.
Enter parameters passed to the probe on execution using the
following syntax:
URL — enter the actual URL of the page you want the probe to test. By
default, this is http://<your_server>/btauxdir/jrunprobe.jsp. The probe
opens the page and searches for the success_string.
success_string — enter a text string that appears at the page
specified by the URL. If the success_string includes spaces, it must
be enclosed in quotation marks.
RESTART|NORESTART — enter RESTART to make the probe
automatically restart the default JRun server on probe failure. Enter
NORESTART if you do not want ClusterCATS to restart the JRun server
on a failure. If you installed JRun as a service, replace RESTART with
Service-<service_name> to restart a particular service, or replace
RESTART with the name of a specific JRun server (such as admin) to
restart.
LOG|NOLOG — enter LOG to enable logging for the ClusterCATS
application probe or NOLOG to disable it. The probe logs are stored in
the /<CC_install_directory>/log/ directory.
The default for Startup Parameters is http://<your_server>/btauxdir/
jrunprobe.jsp Hello NORESTART NOLOG
FieldDescription
Timeout (sec)Enter a time to indicate how long ClusterCATS waits before a JRun
Fr eq u en c y
(sec)
Return valueEnter 0 to make a probe succeed on a successful probing of the page.
server failure is registered.
Do not set this value to less than 60 seconds, because ClusterCATS
may restart the JRun server inadvertently (due to network congestion,
for example), rather than detect an actual failure on the JRun server.
Enter a time to indicate how often the probe checks the JRun server.
Probes that restart web applications should be configured to run no
more frequently than the time it takes to stop and restart JRun. This is
highly site-specific, because it depends on system resources available
on servers and the volume of traffic at a site.
For probes that do not restart the web application, the frequency
depends on how long you can reasonably afford to have your web
application offline. A minimum frequency of 15 seconds is
recommended.
Enter a non-zero number to make a probe succeed on a failure.
The default is 0. Only under rare circumstances would you change this
to a non-zero number.
6 Click Register to create the probe.
7 Close all open dialog boxes.
Icons for the monitor and probe appear under the Monitor Manager in the
ClusterCATS Explorer.
To add a new probe to an existing probe monitor:
1 In the ClusterCATS Explorer, select the cluster_name > Monitor Manager >
monitor_name in the left pane.
2 Select Monitor > Properties.
Using JRun probes87
The monitor’s Properties dialog box appears:
3 Click the New Probe button .
The JRun Application Probe settings dialog box displays.
4 Configure the application probe settings as described in the table in “Using JRun
probes” on page 84.
5 Click Register to create the probe.
6 Close all open dialog boxes.
An icon for the new probe appears under the Monitor Manager in the ClusterCATS
Explorer.
Removing JRun probes
To remove a JRun probe:
1 Open the ClusterCATS Explorer.
2 Select the cluster_name > Monitor Manager > monitor_name > probe_name in the left
pane.
3 Select Probe > Delete or right-click the probe and select Delete.
Configuring JRun probes in UNIX
This section describes the following:
• “Adding JRun probes” on page 89
• “Editing and removing JRun probes” on page 91
88Chapter 4 Configuring Clusters
Adding JRun probes
To add a new JRun probe:
1 In the ClusterCATS Web Explorer, click the Show Cluster link.
The Show Cluster page appears.
2 In the Web Server Name field, enter the fully qualified host name of a server for
which to configure the JRun probe.
3Click OK.
The Cluster Member List page appears.
4 Click the Server Attributes link.
The Connect To Server page appears.
5 Select a server to add a probe to from the Web Server Name list box.
6Click OK.
The selected server’s Properties page appears.
7 Click the JRun Probe link.
If there are probes for this server, the Probe List page appears:
8 To create a new probe, click New. The JRun Application Probe page appears.
If this is the first probe for this server, or you clicked New to add a probe, the JRun
Application Probe page appears:
Using JRun probes89
9 Configure the application probe settings as described in the following table:
FieldDescription
StatusThis is an informational field. If the probe is not registered, the Status
displays Not registered. If the probe is registered, the Status displays
Succeeding.
PathnameEnter the path to the JRun probe. Do not change the default selection
unless you installed ClusterCATS for JRun to a directory other than
the default installation directory. The default is /usr/lib/btcats/program/jrunprobe.
Wo rk in g
directory
Startup
Param eter s
Timeout (sec)Enter a time to indicate how long ClusterCATS waits before a JRun
Enter the path to the probe’s working directory. Do not change the
default selection unless you installed ClusterCATS for JRun to a
directory other than the default installation directory.
The default is /usr/lib/btcats/program/.
Enter parameters passed to the probe on execution, using the
following syntax:
URL — enter the actual URL of the page you want the probe to test. By default, this is http://<your_server>/btauxdir/
jrunprobe.jsp. The probe opens the page and searches for the
success_string.
success_string — enter a text string that appears at the page
specified by the URL. If the success_string includes spaces, it must
be enclosed in quotation marks.
RESTART|NORESTART — enter RESTART to make the probe
automatically restart the default JRun server on a failure. Enter
NORESTART if you do not want ClusterCATS to restart the JRun
server on a failure. You can replace RESTART with the name of a
specific JRun server (such as default) to restart.
LOG|NOLOG — enter LOG to enable logging for the ClusterCATS
application probe or NOLOG to disable it. The probe logs are stored in
the /<CC_install_directory>/log/ directory.
The default for Startup Parameters is http://<your_server>/btauxdir/
jrunprobe.jsp Hello NORESTART NOLOG
server failure is registered.
Do not set this value to less than 60, because ClusterCATS might
restart the JRun server inadvertently (due to network congestion, for
example), rather than detect an actual failure on the JRun server.
90Chapter 4 Configuring Clusters
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.