7.2 WebSphere clustering
A WebSphere cluster is a set of appservers that are managed together and participate in workload management. Application servers participating in a cluster can be on the same node, or on different nodes. A Network Deployment cell can contain no clusters, or it can have many clusters, depending on the need of the administration of the cell. The cluster is a logical representation of the appservers. It is not necessarily associated with any node, and does not correspond to any real server process running on any node. A cluster contains only appservers, and the weighted workload capacity associated with those servers.
When creating a cluster, note that it is possible to select an existing appserver as the template for the cluster without adding that appserver into the new cluster (the chosen appserver is used only as a template, and is not affected in any way by the cluster creation). All other cluster members are then created based on the configuration of the first cluster member.
Cluster members can be added to a cluster in various ways: during cluster creation and afterwards. During cluster creation, one existing appserver can be added to the cluster, or one or more new appservers can be created and added to the cluster. There is also the possibility of adding additional members to an existing cluster later on. Depending on the capacity of your systems, you can define different weights for the various cluster members.
Cluster members are required to have identical application components, but they can be sized differently in terms of weight, heap size, and other environmental factors. You must be careful, however, not to change anything that might result in different application behavior on each cluster member. This concept allows large enterprise machines to belong to a cluster that also contains smaller machines such as Intel-based Windows servers.
Starting or stopping the cluster starts or stops all cluster members automatically, and changes to the application are propagated to all appservers in the cluster.
In horizontal scaling, cluster members are created on multiple physical machines (or LPARs). This allows a single WebSphere application to run on several machines while still presenting a single system image, thereby making the most effective use of the resources of a distributed computing environment. Horizontal scaling is especially effective in environments that contain many smaller, less powerful machines. Client requests that overwhelm a single machine can be distributed over several machines in the system.
Failover is another important benefit of horizontal scaling. If a machine becomes unavailable, its workload can be routed to other machines containing cluster members. Horizontal scaling can handle appserver process failures and hardware failures (or maintenance) without significant interruption to client service.
Using a WebSphere Application Server multiple machine or LPAR configuration eliminates a given appserver process as a single point of failure. In IBM WebSphere Application Server Network Deployment V6, there are basically no dependencies on the administrative server process for security, naming, and transactions. Thus, a single process failure normally does not disrupt application processing.
WebSphere's workload management also takes care of failing over existing client requests to other, still available appservers, and of directing new requests only to available processes if an appserver in the cluster should fail. In addition, WLM enables servers to be transparently maintained and upgraded while applications remain available for users. You can add additional cluster members to a cluster at any point, thus providing scalability and performance if an existing environment is not able to handle the workload any more.
The basic steps for clustering a WebSphere Application are described in WebSphere Application Server V6 Scalability and Performance Handbook, SG24-6392.