What is clustering?An approach to provide:• High Performance• High Availability Server Application
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?
NASA 128-processor Beowulf cluster: Acluster built from 64 ordinary PCs.
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)
Cluster Configuration 1 • High speed link is used to exchange messages for coordination of cluster activity Figure: Standby Server with no shared disk)
Cluster Configuration 2Shared disk • Use of RAID (Redundant Array of Independent Disks; originally Redundant Array Of Inexpensive Disks)
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.
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.
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 changesShared DiskAll computers have access to all the systems• This requires some locking facility
Operating System IssuesEnhancement 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
Cluster MiddlewareCluster middleware is a set of programs which provide SSICluster 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
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/