Introduction


The term cluster is generally used to describe a broad range of distributed processing systems, but those who use the term in the computer industry have yet to agree upon a definition that has any weight to it. Gregory Pfister in his 1997 book, In Search of Clusters,[1] spends more than 500 pages grappling with this problem. He proposes the following elegant definition:

A cluster is a type of parallel or distributed system that:

  • Consists of a collection of interconnected whole computers.

  • Is used as a single unified computing resource.

Let me further clarify what I mean when I use the term Linux Enterprise Cluster by describing its properties and architecture.

image from book
IEEE TASK FORCE ON CLUSTER COMPUTING

In 1999, the prestigious 380,000-member Institute of Electrical and Electronics Engineers, Inc. (IEEE) created the Task Force on Cluster Computing (TFCC). For details, see http://www.ieeetfcc.org. In the "Cluster Computing White Paper" (2000), Thomas Sterling, writing on behalf of the TFCC (http://arxiv.org/ftp/cs/papers/0004/0004014.pdf), described a specific type of cluster called a commodity cluster. Sterling defined a commodity cluster as "a local computing system comprising a set of independent computers and a network interconnecting them." He then described the implementation of a commodity cluster as follows:

A cluster is local in that all of its component subsystems are supervised within a single administrative domain, usually residing in a single room and managed as a single computer system. The constituent computer nodes are commercial-off-the-shelf (COTS), are capable of full independent operation as is, and are of a type ordinarily employed individually for standalone mainstream workloads and applications. The nodes may incorporate a single microprocessor or multiple microprocessors in a symmetric multiprocessor (SMP) configuration. The interconnection network employs COTS local area network (LAN) or systems area network (SAN) technology that may be a hierarchy of or multiple separate network structures. A cluster network is dedicated to the integration of the cluster compute nodes and is separate from the cluster's external (worldly) environment. A cluster may be employed in many modes including but no limited to: high capability or sustained performance on a single problem, high capacity or throughput on a job or process workload, high availability through redundancy of nodes, or high bandwidth through multiplicity of disks and disk access or I/O channels.

A Linux Enterprise Cluster is a type of commodity cluster that typically runs mission-critical applications to support a community of users. Users of a Linux Enterprise Cluster do not need to sit in front of a Linux workstation; they may connect to the cluster using a web browser, telnet client, or any client application that knows how to communicate with the services running on the cluster nodes.

image from book

Properties of a Linux Enterprise Cluster

If we succeed in building a system that can be used as a "single unified computing resource" using "a local computing system comprising a set of independent computers and a network interconnecting them," then the user, the programmer, the program, and even the networking equipment and the other servers on the network will not know that they are using or communicating with a cluster.

Thus, the four basic properties of a Linux Enterprise Cluster are:

Users do not know that they are using a cluster

  • If users do know they are using a cluster, they are using distinct, distributed servers and not a single unified computing resource.

Nodes within a cluster do not know they are part of a cluster

  • In other words, the operating system does not need to be modified to run on a cluster node, and the failure of one node in the cluster has no effect on the other nodes inside the cluster. (Each cluster node is whole or complete—it can be rebooted or removed from the cluster without affecting the other nodes.)

    A Linux Enterprise Cluster is a commodity cluster because it uses little or no specialty hardware and can use the normal Linux operating system. Besides lowering the cost of the cluster, this has the added benefit that the system administrator will not have to learn an entirely new set of skills to provide basic services required for normal operation, such as account authentication, host-name resolution, and email messaging.

Applications running in the cluster do not know that they are running inside a cluster

  • If an application—especially a mission-critical legacy application—must be modified to run inside the cluster, then the application is no longer using the cluster as a single unified computing resource.

    Some applications can be written using a cluster-aware application programming interface (API),[2] a Message Passing Interface (MPI),[3] or distributed objects. They will retain some, but not all, of the benefits of using the cluster as a single unified computing resource. But multiuser programs should not have to be rewritten[4] to run inside a cluster if the cluster is a single unified computing resource.

Other servers on the network do not know that they are servicing a cluster node

  • The nodes within the Linux Enterprise Cluster must be able to make requests of servers on the network just like any other ordinary client computer. The servers on the network (DNS, email, user authentication, and so on) should not have to be rewritten to support the requests coming from the cluster nodes.

[1]This book (and the artwork on its cover) inspired the Microsoft Wolfpack product name.

[2]Such as the Distributed Lock Manager discussed in Chapter 16.

[3]MPI is a library specification that allows programmers to develop applications that can share messages even when the applications sharing the messages are running on different nodes. A carefully written application can thus exploit multiple computer nodes to improve performance.

[4]This is assuming that they were already written for a multiuser operating system environment where multiple instances of the same application can run at the same time.



The Linux Enterprise Cluster. Build a Highly Available Cluster with Commodity Hardware and Free Software
Linux Enterprise Cluster: Build a Highly Available Cluster with Commodity Hardware and Free Software
ISBN: 1593270364
EAN: 2147483647
Year: 2003
Pages: 219
Authors: Karl Kopper

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net