Clusters offer a cost-effective, high-performance, and highly available
architecture for cluster-aware applications. There are many types of
clusters. Generally, clusters are classified based on their functionality.
The types of clusters are:
- Failover Clusters
- Scalable High Performance Clusters
- Application Clusters
- Network Load balancing clusters
- Other types of clusters
Let us examine the similarities and differences of each class of
clusters.
Failover Clusters
This class of cluster is the most widely used in today’s computing
environment. Sometimes they are also called HA clusters or segregated
clusters. With this type, the emphasis is on complete avoidance of unplanned
downtime and on achieving high availability.
If one of the nodes in a cluster becomes unavailable, due to either planned
downtime for maintenance or unplanned downtime due to failure, another node
takes over to provide the service to the end-user—a process known as
failover. When failover occurs, users who are accessing the cluster service
continue to access the service, and are unaware that it is being provided
from a different server (node). This architecture emphasizes the
availability of the database or application service, rather than performance
or load balancing.
High availability clusters allow multiple servers, in conjunction with
shared disk storage units, to quickly recover from failures. Hardware or
software failures, affecting either a critical component or an entire
system, trigger a failover from one system in the cluster to another.
Application processing and access to disk-based data is typically restored
within minutes, although recovery times vary depending upon the specific
characteristics of the application and the system configuration.
Scalable High Performance Clusters
This class of cluster provides scalability, high-performance, load
balancing, and high availability through the use of parallel middleware.
These are also sometimes called parallel clusters or high performance
computing clusters (HPCC). They provide a single system image, or in other
words, the application can be executed on any of the servers within the
cluster. They are used to execute compute-intensive and data-intensive
problems by running the job on multiple nodes at the same time.
These clusters utilize parallel-aware software that breaks the task down
into smaller chunks, which are dispatched across a network of interconnected
systems. The network processes the chunks concurrently and communicates with
the nodes using message-passing libraries to coordinate and synchronize the
results. Cluster-aware applications take advantage of the network
architecture in three ways:
- Parallel Computing, Multi-Threading, and Modularization
- Load Balancing
- Automatic Failure
Parallel database clusters like Oracle Real Application Clusters, IBM
Sysplex Database Cluster, and Beowulf Computers fit into this group of
clusters. Beowulf clusters are of particular interest to the scientific and
educational communities. Beowulf clusters are built by using commodity
systems – PCs, workstations, or servers running software such as Linux. They
feature a parallel computing system consisting of multiple interconnected
nodes and are able to execute parallel jobs.
Through message passing, nodes synchronize data and share results. Oracle
RAC uses message passing to process requests and update data on each node,
resulting in fast data access and a consistent database.
Application Server Clusters
Nodes running application server clusters are connected to provide
availability and scalability. In this type of cluster, each node runs an
instance of the application server. They run the application server
independently from each other’s instance. There is no concept of failover.
When clustered in this way, the state of certain objects is maintained
synchronously. Web server clients can connect to either of the application
server instances. Application servers such as WebLogic Server, Websphere,
and Oracle Application server are examples of this category of clusters.
As an example, the WebLogic Server cluster consists of multiple copies of
the WebLogic program running simultaneously and working together to provide
increased scalability and reliability. The cluster appears to the web server
clients as a single WebLogic Server instance. In WebLogic deployment,
Servlets, JSPs, EJB, Remote Method Invocation (RMI) objects, Java Messaging
Service (JMS) destinations, and Java Database Connectivity (JDBC)
connections are usually clustered.
Clustering in J2EE, as in the Oracle Applications server, is implemented
across a number of tiers, namely the client tier, Web tier, EJB tier, and
EIS tier. Every tier has load balancing and failover.
Other Types of Clusters
The term cluster is loosely used to specify a condition when two networking
components or two storage units are joined to provide backup and failover
facility. Two or more clusters can also be located at remote locations and
be linked to form a global cluster. Some of the other widely known clusters
include:
- NetApp Filer Clusters
- Network Load Balancing Clusters
- Global Clusters
 |
If you like Oracle tuning, check out my latest book "Oracle
Tuning: The Definitive Reference".
It's 980 pages of hard-core tuning insights, tips and
scripts, and you can buy it direct from the publisher for 30%-off.
|
|
|
|