2. What is clustering?
An approach to provide:
• High Performance
• High Availability
Server Application
3. Definition:
“A cluster is a group of interconnected, whole computers
working together as a unified computing resource that can
create an illusion of being one single machine.”
• Whole Computer? What the heck is that???
• How would a cluster then look like?
5. Benefits /Objectives/Design Requirements
• Absolute Scalability
• Incremental Scalability
• High Availability
• Superior price/performance (Google mantra!)
But same is achieved if SMP is used! How is it different then?
(We will see later)
6. Cluster Configuration 1
• High speed link is used to exchange messages for coordination
of cluster activity
Figure: Standby Server with no shared disk)
7. Cluster Configuration 2
Shared disk
• Use of RAID (Redundant Array of Independent Disks;
originally Redundant Array Of Inexpensive Disks)
8. Clustering Approaches
1: Passive Standby
• One computer handle all the processing load
• Other computer remains inactive (for backup)
What about coordination?
• Primary system periodically sends “ heart beat” message
• Increased Availability, but same old Performance
Not at all Clustering coz :-
I. Not maintaining the image of Single System to outside world.
II. “All are actively doing process” not followed.
9. Clustering Approaches continued…
2: Separate Server
• Each computer is a Separate Server
• Private disk is maintained
• High performance and high availability
• Scheduling software needed to schedule tasks among sep. ser.
• Load balancing provided
(Q): How availability?
Data is constantly copied among systems to maintain current
state of data in all the systems.
Disadv: Comes at cost of performance penalty.
10. Shared Nothing
Common disks partitioned into volumes & each system given a
volume
• Each volume is owned by a single computer
• If a system fail, volume ownership changes
Shared Disk
All computers have access to all the systems
• This requires some locking facility
11. Operating System Issues
Enhancement to the single system OS
• Failure management
• Load Balancing
• Parallelizing Computation
a. Compiler time
b. At Application layer via Message Passing
c. Parametric Computing E.g. Simulation
12. Cluster Middleware
Cluster middleware is a set of programs which provide SSI
Cluster middleware Duties/Functional Components:
• job management system
• cluster monitoring system
• parallel libraries
• automatic client installation systems
• cluster management tools
• distributed and parallel file systems
• global process space
14. References:
1) Cluster-Based Scalable Network Services -Armando Fox Steven
D. Gribble Yatin Chawathe Eric A. BrewePaul Gauthier,
University of California at Berkeley
2) Operating Systems- Internals and Design Principles(6th Edition)
by William Stalling
3) http://www.scfbio-iitd.res.in/doc/clustering.pdf
4) http://en.wikipedia.org/wiki/Cluster_computing
5) http://www.cro-ngi.hr/en/technologies/cluster-technologies/