Types of Clusters
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:
Let us examine the similarities and differences of each class of 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. (Fig 3.2) 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 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. Fig 3.3 shows the typical components in a parallel cluster.
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. We will look into some of the widely known clusters of this type.
NetApp Filer Clusters
A NetApp Filer Cluster is a pair of interconnected storage filer units. Two NetApp storage appliances are connected through an interconnect adapter, and configured as a cluster to provide increased protection against hardware failures. Both storage appliances share access to the same set of Fiber Channel disks. Each appliance uses the NetApp cluster-interconnect to continually monitor the availability of the partner storage appliance.
Each storage appliance has primary responsibility for a subset of the disks, and both can operate independently. The NetApp cluster architecture is an active/active configuration. During normal operation, both storage appliances are operating and serving data from their individual disk arrays. When a failure occurs in one appliance in a cluster, the clustered partner appliance will perform a takeover of the failed appliance functions and provide clients access to the data on the failed appliance's disk arrays.
Network Load Balancing Clusters
A Network Load Balancing cluster, sometimes called an IP Load balancing cluster, provides high availability and scalability for TCP/IP-based services, including web servers, FTP servers, other mission-critical servers, and COM+ applications. In a Network Load Balancing scenario, multiple servers run independently and do not share any resources.
Client requests are distributed among the servers, and in the event of a server failure, a Network Load Balancing cluster detects the problem and the load is distributed to another server. From the remote user’s point of view, the network requests can be serviced continuously, even in the face of server failure. Examples include the Microsoft Network Load Balancing Cluster for Windows, and the RedHat IP Load balancing Cluster (Piranha).
Global clustering is a mechanism for coordinating multiple individual clusters and resources to provide high availability services among them. It enables monitoring of systems and application services for an entire site, as well as the restarting of services at a different site when system resources at the main site become unavailable.
Within a database cluster, data replication at the disk storage unit level is usually necessary. The disk storage unit attached to a local cluster replicates data, almost instantaneously, and transmits it to the remote storage unit by methods such as EMC’s SRDF (Symmetrix Remote Data Facility). When the primary site fails due to site-specific disasters such as fire, sustained power outages, etc., the global or geo cluster framework activates the remote cluster. The Veritas Global cluster and EMC geospan cluster are good examples of this category of cluster.
For more information, see the book Oracle Grid and Real Application Clusters 30% off if you buy it directly from Rampant TechPress .
Written by top Oracle experts, this RAC book has a complete online code depot with ready to use RAC scripts.
Copyright © 1996 - 2014 by Burleson. All rights reserved.
Oracle® is the registered trademark
of Oracle Corporation.