Cluster Defination
1) In a computer system, a cluster is a group of servers and
other resources that act like a single system and enable high availability and,
in some cases, load balancing and parallel processing. See clustering.
2) In personal computer storage technology, a cluster is the
logical unit of file storage on a hard disk; it's managed by the computer's
operating system. Any file stored on a hard disk takes up one or more clusters
of storage. A file's clusters can be scattered among different locations on the
hard disk. The clusters associated with a file are kept track of in the hard
disk's file allocation table (FAT). When you read a file, the entire file is
obtained for you and you aren't aware of the clusters it is stored in.
Since a cluster is a logical rather than a physical unit
(it's not built into the hard disk itself), the size of a cluster can be
varied. The maximum number of clusters on a hard disk depends on the size of a
FAT table entry. Beginning with DOS 4.0, the FAT entries were 16 bits in
length, allowing for a maximum of 65,536 clusters. Beginning with the Windows
95 OSR2 service release, a 32-bit FAT entry is supported, allowing an entry to
address enough clusters to support up to two terabytes of data (assuming the hard
disk is that large!).
The tradeoff in cluster size is that even the smallest file
(and even a directory itself) takes up the entire cluster. Thus, a 10-byte file
will take up 2,048 bytes if that's the cluster size. In fact, many operating
systems set the cluster size default at 4,096 or 8,192 bytes. Until the file
allocation table support in Windows 95 OSR2, the largest size hard disk that
could be supported in a single partition was 512 megabytes. Larger hard disks
could be divided into up to four partitions, each with a FAT capable of
supporting 512 megabytes of clusters.
3) In some products, a cluster is a group of terminals or
workstations attached to a common control unit.
Cluster Computing
In computers, clustering is the use of multiple computers,
typically PCs or UNIX workstations, multiple storage devices, and redundant
interconnections, to form what appears to users as a single highly available
system. Cluster computing can be used for load balancing as well as for high
availability. Advocates of clustering suggest that the approach can help an
enterprise achieve 99.999 availability in some cases. One of the main ideas of
cluster computing is that, to the outside world, the cluster appears to be a
single system.
A common use of cluster computing is to load balance traffic
on high-traffic Web sites. A Web page request is sent to a "manager"
server, which then determines which of several identical or very similar Web
servers to forward the request to for handling. Having a Web farm (as such a configuration
is sometimes called) allows traffic to be handled more quickly.
Clustering has been available since the 1980s when it was
used in DEC's VMS systems. IBM's Sysplex is a cluster approach for a mainframe
system. Microsoft, Sun Microsystems, and other leading hardware and software
companies offer clustering packages that are said to offer scalability as well
as availability. As traffic or availability assurance increases, all or some
parts of the cluster can be increased in size or number.
Cluster computing can also be used as a relatively low-cost
form of parallel processing for scientific and other applications that lend
themselves to parallel operations. An early and well-known example was the
Beowulf project in which a number of off-the-shelf PCs were used to form a
cluster for scientific applications.
High availability
High availability is a system design approach and associated
service implementation that ensures a prearranged level of operational
performance will be met during a contractual measurement period.
Users want their systems, for example wrist watches,
hospitals, airplanes or computers, to be ready to serve them at all times.
Availability refers to the ability of the user community to access the system,
whether to submit new work, update or alter existing work, or collect the
results of previous work. If a user cannot access the system, it is said to be
unavailable. Generally, the term downtime is used to refer to periods when a
system is unavailable.
Some availability experts emphasize that, for any system to
be highly available, the parts of a system should be well-designed and
thoroughly tested before they are used. For example, a new application program
that has not been thoroughly tested is likely to become a frequent point-of-breakdown
in a production system.
Load Balancing
Distributing processing and communications activity evenly
across a computer network so that no single device is overwhelmed. Load
balancing is especially important for networks where it's difficult to predict
the number of requests that will be issued to a server. Busy Web sites
typically employ two or more Web servers in a load balancing scheme. If one
server starts to get swamped, requests are forwarded to another server with
more capacity. Load balancing can also refer to the communications channels
themselves.
Load balancing is a computer networking methodology to
distribute workload across multiple computers or a computer cluster, network
links, central processing units, disk drives, or other resources, to achieve
optimal resource utilization, maximize throughput, minimize response time, and
avoid overload. Using multiple components with load balancing, instead of a
single component, may increase reliability through redundancy. The load
balancing service is usually provided by dedicated software or hardware, such
as a multilayer switch or a Domain Name System server.
Architectural and
Cluster Terminology
This section defines terms used in this document.
Architecture
In this context the architecture refers to how the tiers of
an application are deployed to one or more clusters.
Web Application Tiers
A Web application is divided into several "tiers"
that correspond to the logical services the application provides. Because not
all Web applications are alike, your application may not utilize all of the
tiers described below. Also keep in mind that the tiers represent logical
divisions of an application's services, and not necessarily physical divisions
between hardware or software components. In some cases, a single machine
running a single Weblogic Server instance can provide all of the tiers
described below.
Web Tier
The web tier provides static content (for example, simple
HTML pages) to clients of a Web application. The web tier is generally the
first point of contact between external clients and the Web application. A
simple Web application may have a web tier that consists of one or more
machines running Weblogic Express, Apache, Netscape Enterprise Server, or
Microsoft Internet Information Server.
Presentation Tier
The presentation tier provides dynamic content (for example,
servlets or Java Server Pages) to clients of a Web application. A cluster of
Weblogic Server instances that hosts servlets and/or JSPs comprises the
presentation tier of a web application. If the cluster also serves static HTML
pages for your application, it encompasses both the web tier and the
presentation tier.
Object Tier
The object tier provides Java objects (for example,
Enterprise JavaBeans or RMI classes) and their associated business logic to a
Web application. A Weblogic Server cluster that hosts EJBs provides an object
tier.
Recommended Basic
Architecture
The recommended basic architecture is combined tier
architecture—all tiers of the Web application are deployed to the same Weblogic
Server cluster. This architecture is illustrated in the following figure.
The benefits of the Recommended Basic Architecture are:
Ease of administration
Because a single cluster hosts static HTTP pages, servlets,
and EJBs, you can configure the entire Web application and deploy/undeploy
objects using the Weblogic Server Console. You do not need to maintain a
separate bank of Web servers (and configure Weblogic Server proxy plug-ins) to
benefit from clustered servlets.
Flexible load balancing
Using load balancing hardware directly in front of the Weblogic
Server cluster enables you to use advanced load balancing policies for
accessing both HTML and servlets content. For example, you can configure your
load balancer to detect current server loads and direct client requests
appropriately.
Robust security
Placing a firewall in front of your load balancing hardware
enables you to set up a De-Militarized Zone (DMZ) for your web application
using minimal firewall policies.
Optimal performance
The combined tier architecture offers the best performance
for applications in which most or all of the servlets or JSPs in the
presentation tier typically access objects in the object tier, such as EJBs or
JDBC objects
Recommended
Multi-Tier Architecture
This section describes the Recommended Multi-Tier
Architecture, in which different tiers of your application are deployed to
different clusters.
The recommended multi-tier architecture uses two separate Weblogic
Server clusters: one to serve static HTTP content and clustered servlets, and
one to serve clustered EJBs. The multi-tier cluster is recommended for Web
applications that:
Require load balancing for method calls to clustered EJBs.
Require more flexibility for balancing the load between
servers that provide HTTP content and servers that provide clustered objects.
Require higher availability (fewer single points of
failure).
Benefits of
Multi-Tier Architecture
The multi-tier architecture provides these advantages:
Load Balancing EJB Methods
By hosting servlets and EJBs on separate clusters, servlets
method calls to EJBs can be load balanced across multiple servers. This process
is described in detail in Load Balancing Clustered Objects in a in Multi-Tier
Architecture.
Improved Server Load Balancing
Separating the presentation and object tiers onto separate
clusters provides more options for distributing the load of the web
application. For example, if the application accesses HTTP and servlets content
more often than EJB content, you can use a large number of Weblogic Server
instances in the presentation tier cluster to concentrate access to a smaller
number of servers hosting EJBs.
Higher Availability
By utilizing additional Weblogic Server instances, the
multi-tier architecture has fewer points of failure than the basic cluster
architecture. For example, if a Weblogic Server that hosts EJBs fails, the
HTTP- and servlets-hosting capacity of the Web application is not affected.