COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION
17.5 CLUSTERS
An  important  and  relatively  recent  development  computer  system  design  is  clus-
tering. Clustering is an alternative to symmetric multiprocessing as an approach to 
providing  high  performance  and  high  availability  and  is  particularly  attractive  for 
server  applications.  We  can  define  a  cluster  as  a  group  of  interconnected,  whole 
computers  working  together  as  a  unified  computing  resource  that  can  create  the 
illusion  of  being  one  machine.  The  term  whole  computer  means  a  system  that  can 
run on its own, apart from the cluster; in the literature, each computer in a cluster is 
typically referred to as a node.
[BREW97] lists four benefits that can be achieved with clustering. These can 
also be thought of as objectives or design requirements:
 ? Absolute scalability: It is possible to create large clusters that far surpass the 
power of even the largest standalone machines. A cluster can have tens, hun-
dreds, or even thousands of machines, each of which is a multiprocessor.
  ?  Incremental scalability: A cluster is configured in such a way that it is possible 
to  add  new  systems  to  the  cluster  in  small  increments.  Thus,  a  user  can  start 
out with a modest system and expand it as needs grow, without having to go 
through a major upgrade in which an existing small system is replaced with a 
larger system.
  ?  High  availability:  Because  each  node  in  a  cluster  is  a  standalone  computer, 
the failure of one node does not mean loss of service. In many products, fault 
tolerance is handled automatically in software.
  ?  Superior  price/performance:  By  using  commodity  building  blocks,  it  is  pos-
sible  to  put  together  a  cluster  with  equal  or  greater  computing  power  than  a 
single large machine, at much lower cost.
an alternative to symmetric multiprocessing
原文:http://www.cnblogs.com/yuanjiangw/p/6240577.html