0% found this document useful (0 votes)
64 views

Cluster Computing: A Paper Presentation On

This document presents information about cluster computing. It discusses how a cluster connects multiple computers together over a network to act as a single system. Clusters aim to improve availability and capacity. They allow tasks to continue if one node fails by distributing loads across nodes. Clusters also reduce costs by using low-cost commodity hardware. The document provides details on cluster architectures, components, and interconnection technologies. It explains how clusters improve performance, availability, scalability, and lower operating costs compared to other parallel computing approaches.

Uploaded by

Vishal Jaiswal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views

Cluster Computing: A Paper Presentation On

This document presents information about cluster computing. It discusses how a cluster connects multiple computers together over a network to act as a single system. Clusters aim to improve availability and capacity. They allow tasks to continue if one node fails by distributing loads across nodes. Clusters also reduce costs by using low-cost commodity hardware. The document provides details on cluster architectures, components, and interconnection technologies. It explains how clusters improve performance, availability, scalability, and lower operating costs compared to other parallel computing approaches.

Uploaded by

Vishal Jaiswal
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 16

A Paper Presentation On

Cluster Computing
Presented By
Ashwin K Shah (TECSE) [email protected] & Abhishek Mehta (TECSE) [email protected]

DEPARTMENT OF COMPUTER SCIENCE ENGINEERING WALCHAND INSTITUTE OF TECHNOLOGY SOLAPUR 413 006

Cluster Computing
Abstract
A cluster is a set of computers harnessed together to present a single server resource to applications and to users. Clustering is a common technique and is implemented by most if not all, major web service providers. Clustering aims at taking care of two problems: availability and capacity. It involves the bundling together of several resources like servers so that they appear as one entity. Having a cluster of servers is more reliable than having one system handle each task. This is also called as network load balancing. Costs are reduced because clustering exploits low-cost, high-performance hardware. Clustering techniques are providing the next leap forward in system performance, reliability and cost. The UNIX system today enjoys a significant technology and market lead. UNIX system-based cluster architectures will continue to hold this lead in the marketplace for many years to come. Cluster architecture interconnects two or more computers using additional network (like Fast Ethernet, Infiniband) and software technology (TCP/IP, VMMC) to make a single virtual or logical server. Cluster architectures are in place today for applications that must provide continuous, uninterrupted service. In addition, cluster architectures can be scaled smoothly to provide for increasing system performance. The cluster architecture is one of several ways to exploit parallel processing - the harnessing of several processors to work on one or more workloads. Cluster architectures offer significant benefits, including higher performance, higher availability, greater scalability and lower operating costs. The cluster architecture is the way forward for system architectures.

TABLE OF CONTENTS 1. Introduction 2. Cluster Architecture 3. Interconnection technology of cluster architecture 4. Content Aware Request Distribution 5. Operation & Types of Cluster 6. Conclusion

Pg.No 3 4 7 9 12 15

1. Cluster Computing
Introduction
Todays world is a fast growing one and quick communication plays an important role in day to day activities. Internet provides a good means of communication. What is really happening on the internet? , a client issues a request to the server and the server in turn services the clients request. There are millions of computers on the internet at a time and if they want the service of a particular server then the load on the server increases and it may degrade the performance of the server leading to slow communication. This situation often occurs in case of large software (corporate) companies (e.g.:- yahoo, hotmail etc). To meet the requirements of super-fast computation parallel processing can be used. One form of parallel processing is Clustering. This allows us to connect two or more separate computers over a network and use them as loosely coupled parallel processors. It involves grouping together of several resources like servers, so that they appear like one entity. Advantage involved in grouping together resources is that even if one node (resource) fails other can take over its load. Having a cluster of servers is more reliable than having one system handle each task. This is also called as network load balancing. System architects can aggregate machines of different capacities in clusters of different sizes to target small, mid-size and very large system needs. Costs are reduced because clustering exploits low-cost, highperformance hardware. This kind of setup can be used by the corporate world to run their mission-critical applications to provide high reliability and high performance. It can be used for supercomputing applications such as scientific research, flight simulation, computer-graphics rendering and weather modeling. Basically cluster architecture provides solutions that offer high performance, highly available and scalable systems, both for current and future information systems. Further, the standardized, state-of-the-art UNIX operating system provides the best foundation for clustering architectures both today and for years to come.

2. Cluster Architecture
2.1 Cluster Building Blocks
Cluster architecture interconnects two or more computers using additional network and software technology to make a single virtual or logical server. Clusters are composed of commodity hardware and software components. The hardware components include standalone computers (i.e., nodes) and networks. The architecture is such that a server is replicated on a cluster of workstations and a front end server is used to redirect client request onto one of the replicas. Front end operates as transport-layer switch which simply passes incoming data onto one of the server and the outgoing data from the servers to the respective client.

Web server

Web server

Web server

Web server
LAN

Front
Request

end

Response

Handles all incoming request and outgoing response

Cluster of Workstations Cluster nodes can be PCs, workstations,and SMPs(Symmetric Multiprocessing), NUMA (Non-uniform memory access), MPP (Massively parallel processors) computers with multiple microprocessors. Each node has its own memory, I/O devices and Operating system.Networks used for interconnecting cluster nodes can be local area networks such as Ethernet and Fast Ethernet, system area networks such as Myrinet and Quadrics switches, or upcoming InfiniBand communication fabric. Various operating systems, including Linux, Solaris, and Windows, can be used for managing node resources. The communication software can be based on standard TCP/IP (Transport Control Protocol/Internet Protocol).

2.2 Generic Cluster Architecture


Lowest level (switch) Middle level (SSI) Highest level (Applications)

Typical Cluster Architecture Lowest level consists of the switch which is the front end node.Applications are operated at the highest level.Middle level consists of all the nodes(PCs).

2.2.1 System-Level Middleware


System-level middleware offers Single System Image (SSI) and high availability infrastructure for processes, memory, storage, I/O, and networking. The single system image illusion can be implemented using the hardware or software infrastructure. This unit focuses on SSI at the operating system or subsystems level. This unit discusses design issues, architecture, and representative systems for job/resource management, network RAM, software RAID, single I/O space, and virtual networking. A number of operating systems have proposed SSI solutions, including MOSIX, Unixware, and Solaris -MC.

2.3 Price/Performance Ratio


The cluster architecture is one of several ways to exploit parallel processing - the harnessing of several processors to work on one or more workloads. Other parallel approaches include symmetric multiprocessing (SMP), non-uniform memory access (NUM) and massively parallel processing (MPP).Fault tolerant (FT) systems exploit parallel processing as a way to achieve greater reliability due to complete redundancy of components. Fault tolerant systems are built of independent, redundant subsystems, while clusters are built of independent, replicated subsystems. The redundant subsystems in a fault tolerant architecture are immediately available should the primary system fail, but do not under normal conditions assist the primary system in handling the processing load. The replicated subsystems that constitute a cluster provide high availability and also take a share of the workload. This distinction between redundant and replicated subsystems is the reason that cluster architectures enjoy price/performance advantages over fault tolerant designs.The graph below illustrates the advantages of cluster acrhitecture over other methods.

Scalable Performance (Y) vs. Availability (X) for Monolithic, SMP, MPP, FT and Clustering Systems. Cluster architectures provide three primary benefits: high availability, scalability and a lower cost of ownership. High availability is defined as the capability of a computing resource to remain online in the face of a variety of potential subsystem failures. Failure of a power supply, for example, may cripple a processor or disk storage systems. Failure of a network access interface may isolate a subsystem from its users. At every level of a cluster architecture, subsystems are replicated. Either failures or routine maintenance activities trigger failover processes steps are taken by the surviving subsystems to pick up the load. Scalability is the ability to vary the capacity of a system incrementally over as broad of a range as possible. Two methods possible monolithic systems become the building blocks for the cluster designers choose the number of computers in the cluster By selecting both the size and number of building blocks, designers of cluster architectures achieve a very wide and smooth capacity range. Lower the cost of ownership :- UNIX system servers are themselves a bargain, and when a cluster of inexpensive machines competes with a conventional, proprietary mainframe, and then cost savings are even more dramatic. All the portability and interoperability of the UNIX system remains available to the cluster. Finally and most importantly, a UNIX system cluster exploits the same core skills needed in UNIX system development and management that enterprises have been cultivating over the past 20 years Best known Cluster architectures perhaps are Digital Equipment Corporations (now Compaq) which provides scalability and a uniform application environment for its VAX family of computers.

3. The Interconnection Technology of Cluster Architectures


The key technology of clustering broadly stated is the interconnection among component computers ordinarily called nodes in the cluster. Additional software and hardware is required in order to interconnect the nodes. Interconnect technology is responsible for coordinating the work of the nodes and for effecting failover procedures in the case of a subsystem failure.

3.1 Interconnect technology


The foundation for clustering is an interconnection aimed at coordinating the activities of the nodes. Cluster interconnections are often a network or a bus dedicated to this purpose alone. High-performance cluster architectures require a network with high bandwidth, often in the 100 MBps range. Loosely coupled clusters may depend on simple twisted-pair linkages between serial ports. The exact requirements of the network vary with the design objectives for the cluster.

3.2 Shared vs. distributed storage


Clusters may be designed with shared persistent storage or with distributed persistent storage. In a shared storage architecture, the interconnection among nodes provides access to a common set of disks. The use of redundant array of inexpensive disks [RAID] technology for storage is conventional. Nodes operate in a shared address space, with software managing locks so that processes running in parallel do not disrupt each others work. In a distributed storage architecture, each node has access to its own disk storage. When information needed by one node is managed by another, then access is provided by message-passing mechanisms. Message-handling processes that distribute data and synchronize updates are the responsibility of the interconnect software. Distributed storage makes better sense for systems that access independent sets of data and for systems that are dispersed more widely across distance.

Cluster with Shared Storage

Cluster architectures are quite flexible and, as a result, it is possible to mix both shared and distributed storage when necessary. Such an architecture would strongly suit an enterprise with a corporate headquarters where large data warehouses are managed (with shared storage) and with offices around the globe that operate autonomously on a day-to-day basis (with distributed storage).

3.3 Shared vs. distributed memory


Main memory may be shared or distributed in a cluster architecture. Most commonly, main memory is distributed and communication among nodes is accomplished by message-passing via the interconnect network. Distributed main memory is favored when applications are able to run within the capacity of any of the independent nodes. CPU Memory I/O CPU Memory I/O

CPU

Memory

I/O

CPU

Memory

I/O

Shared Main Memory Higher performance can be achieved by unifying access to main memory for all nodes in the cluster, as shown in Figure 4. This is ordinarily accomplished with a second dedicated network that provides a shared, high-speed bus. Clusters operating with shared memory are very similar to SMP computers.

3.4 How failover works


Failover is the ability of a cluster to detect problems in a node and to accommodate ongoing processing by routing applications to other nodes. This process may be programmed or scripted so that steps are taken automatically without operator intervention. In other cases, such as taking a node out of operation for maintenance, the failover process may be under operator control. Fundamental to failover is communication among nodes, signaling that they are functioning correctly or telegraphing problems when they occur. The metaphor most commonly used is of a nodes "heartbeat." Namely, each computing machine listens actively to make sure that all of its companions are alive and well. When a machine fails, cluster interconnect software takes action. In the simplest failover situations, an operator is alerted. More sophisticated cluster software reacts to the problem by shifting applications and users automatically and quickly reconnects to one or more healthy members of the cluster. Journals may be necessary to bring an application up to its current transaction with integrity. Databases may need to be reloaded. All of this functionality is part of the cluster architecture interconnect software.The main drawback is that the front end does not take into account the contents of data requests coming from the clients. A better approach is to deploy content-aware request distribution scheme.

4. Content Aware Request Distribution


4.1 Purpose
In content aware request distribution the front end analyzes the content of the request and then forwards the request to the respective backend server. For example, whenever a client issues an HTTP request, it sets up a TCP connection to the server. The switch (front end) inspects the incoming HTTP request and then decides which server should handle the request. Content aware distribution has several advantages like, if the front end always forwards request for the same document to same server, that server may be able to effectively cache the document resulting in higher response times. In addition, it is possible to actually distribute the collection of documents among servers instead of having to replicate each document for each server. This approach makes more efficient use of available storage capacity and allows dedicated servers to handle special documents such as audio or video. Content-aware request distribution can improve scalability and flexibility by enabling the use of a partitioned server database and specialized server nodes.

4.2 Mechanisms involved in content aware distribution


Relaying front end is one of the mechanisms for supporting content-aware request distribution. An HTTP proxy running on the front-end accepts client connections and maintains persistent connections with all the back nodes. When a request arrives on a client connection, the connection is assigned according to request distribution strategy (e.g., LARD), and the proxy forwards the clients request message on the appropriate back-end node, the front end proxy forwards the data on the client connection, buffering the data if necessary. The principal advantage of this approach is its simplicity and the ability to be deployed without requiring any modification of the operating system kernel on any cluster node. The primary disadvantage, however, is the overhead incurred in forwarding all the response data from the back-ends to the clients, via the proxy application. TCP slicing is an optimization of the front end relaying approach where the data forwarding at the front-end is done directly in the operating system kernel. This eliminates the expensive copying and context switching operations that result from the use of a user-level application. TCP splicing has lower overhead than front-end relaying, yet it incurs high overheads as the data transfer takes place through the front-end. TCP handoff mechanism enables the forwarding of back-end responses directly to clients without passing through the front as intermediary node. TCP handoff is achieved by handing off the TCP connection established between client and the front end node to one of the back end node who is going to handle the request. Client state remains same in TCP handoff. Client is transparent to TCP handoff; it assumes that the data sent by the back end is from the front end and any TCP acknowledgments sent by the client to front-end are forwarded to appropriate back-end. TCP handoff has upper hand over TCP slicing and relaying but still the scalability of TCP handoff is very less, practically clusters of size of only ten nodes is feasible. The reason behind this is that the front end must establish a TCP connection, and then serialize and handoff the connection to a back end node.

10

Front end should not form a bottleneck in the performance of cluster.

4.3 Scalability of Front end


This section addresses the scalability problem with content-aware request distribution. A proposed cluster configuration, which is more scalable, is as follows. Main Components Dispatcher Distributor Server Dispatcher is the component that implements the request distribution strategy; its task is to decide which server should handle a given request. Distributor component interfaces with the client and distributes the client requests to back-end nodes; it implements either a form of TCP handoff or splicing mechanism. Server represents the back end nodes i.e. the servers which are responsible for processing requests (like HTTP requests). Advantage of using such a configuration Overhead incurred at front end node is handled by the distributor not the dispatcher. The distributor component can be readily distributed since its individual tasks are completely independent. A scalable request distribution is achieved by distributing the distributor over multiple cluster nodes. Scalable content aware request distribution cluster configuration But the dispatcher has to be centralized on a dedicated node. Experiments were performed on the discussed cluster configuration with multiple distributors, and the results were such that for TCP handoff, the processing overhead for handling a typical connection was 300 sec for the distributor while it was only 0.8sec for the dispatcher. Distributing the distributor and leaving the dispatcher centralized increases the scalability of the request distribution by an order of magnitude

11

Multiple Front ends In a multiple front end nodes, a choice must be made as to which front end should receive a given client request. This choice can be made either explicitly by the user with strategies like mirroring, or in a client transparent manner using DNS round robin. But even these approaches lead to poor load balance. Another drawback of the above cluster configuration with multiple front ends is that efficient partitioning of cluster nodes into either nodes front end or back end nodes depend upon the workload and not on priority. For example, for workloads that generate significant load on the back-end nodes (e.g. queries for online databases), efficient cluster utilization can be achieved using few front-end nodes and a large number of back end nodes. For other workloads, it might be necessary to have a large number of front-end nodes. A suboptimal partitioning, relative to prevailing workload might result in low cluster utilization, i.e. either the front end nodes become a bottleneck when the back-end nodes are idle or vice versa.

Co-Distributed Distributors and servers An alternate design is to have distributed components co-located with server components. As each cluster node hosts both the distributor and the server components, the cluster can be efficiently utilized irrespective of the workload.

12

5. Operation of Cluster
A cluster consists of following components switch, dispatcher, distributor and the servers. The function of switch is as given below.

5.1 Switch
It maintains a small amount of state for each client connection being handled by the cluster. This state is used to determine the cluster node where packets from the client are to be forwarded. Additionally, the switch maintains the load on each cluster node based on the number of client connections handled by that node. Upon seeing a connection establishment packet (TCP SYN packet), the switch chooses a distributor on the least loaded node in the cluster. Subsequent packets from the clients are sent to same node unless an update message instructs the switch to forward packets to some other node (update messages are sent by the distributor after a TCP connection handoff). Upon connection termination, a close message is sent to switch by the cluster node that handles the connection and is used for discarding connection state at the switch. A switch using strategy like DNS round-robin has several advantages. The first is increased security. By hiding the back end nodes of the cluster from the outside world, would be attackers cannot directly attack these nodes. The second advantage is availability. By making the individual cluster nodes transparent to the client, failed or off-line server nodes can be replaced transparently. Finally, when combined with TCP handoff, the use of switch increases efficiency, as ACK packets from clients need not be forwarded by the server node that originally received a request.

5.2 Cluster operation

Cluster operation with DNS round robin A client communicates with a distributor through the switch (using DNS round robin). The figure shows the user level processes and protocol stacks at the client and the distributor and server nodes. The client application (e.g., Web browser) is unchanged and runs on an unmodified standard operating system. The figure illustrates the cluster operations from the time the client sends the request, to the instant when it receives a response from the cluster. 13

1. The client process (e.g., Netscape) uses the TCP/IP protocol to connect to chosen distributor 2. The distributor component accepts the connection and parses the client request. 3. The distributor contacts the dispatcher for assignment of request to a server 4. The distributor hands off the connection using the TCP handoff protocol to server chosen by the dispatcher. 5. The server takes over the connection using its handoff protocol. 6. The server application at server node accepts the created connection. 7. The server sends the request directly to the client. Any TCP acknowledgements sent by the client to the distributor are forwarded to server node using a forwarding module at the distributor node. The dispatcher component is centralized; its performance determines the scalability of the cluster. The overhead imposed on the dispatcher node is associated with communication with other cluster nodes. The key to achieving greater cluster scalability, therefore, is to reduce this communication. The communication overhead can be reduced in two ways 1. By reducing the size of the messages sent to the dispatcher. 2. By limiting the number of network packets sent to the dispatcher. For first method the distributor compacts the request URL by hashing it into 32-bit integer before sending it to the dispatcher. Second method is achieved by batching together several messages before they are sent to the dispatcher. This enables several messages to be put in the same TCP packet and reduces interrupt and protocol processing overheads at the dispatcher node.

5.3 Types of Clusters 5.3.1 Computational Clusters


Computational or high performance clusters use the combined processing power of computers in the cluster to run high CPU intensive applications. Computational cluster can be further divided into two: 1. Grid computing 2. High performance clusters

5.3.2 Grid Computing


In this configuration we have a server and one or more clients connected to the server over a network. Distributed processing over clients is achieved by using some software program, which has a server part running on the server and client part running on the clients. To execute a large application, the server software divides the application into small execution units. These units are then transmitted to the clients over the network. The clients then do the requisite processing on these units and return the results back to the server. The clients can run multiple operating systems and may or may not be different from the server OS. One example of grid computing is the seti@home project to search for extraterrestrial intelligence. The central system captures radio signals from space and then transfers the data captured in small packets, to several million computers connected to the Internet. The client computers process these packets of data in their idle time and return the results.

14

5.3.3 High-performance Cluster


The other form of computational cluster also uses a single server and one or more client nodes connected via a network. But, unlike grid computing, where each client computer runs its own operating system, this one is controlled and managed by a single OS running across the computers in the cluster. The server provides various files to clients for execution. Applications are run on the clients which are just dumb terminals using parallel processing algorithms.

5.3.4 High Availability Clusters


A simple high availability cluster consists of two computers. One is primary and the second a stand-by. If the primary computer fails, switch over to stand-by computer happens so that users continue to get the services. For more complex systems multiple stand-by computers may be used. 5.3.5 Load Balancing Clusters In a load balanced cluster two or more computers run the same set of services like a web server and the incoming network traffic is divided among them to distribute the load. This setup is highly scalable and reliable as you can easily add more systems as load increases and the services dont get interrupted if any of the computers goes down. This setup is used for providing Web and ftp services, where theres a large user base accessing them.

15

Conclusion
The cluster architecture provides the blueprint for building available systems, now and in the future. Cluster interconnect technology has been refined over the past 15 years and is being deployed. In fact, innovative enterprises have successfully applied cluster solutions to mission-critical applications in order to gain high availability without the cost of fault tolerant systems. Cluster architectures depend heavily on the operating systems resident on each node. This is part of the reason that UNIX system-based cluster architectures are so much better, faster and more reliable than proprietary products. In addition to the advantages of a robust, standard operating environment, the marketplace for the UNIX system is also vibrant. Fierce competition has forged strong product lines from all UNIX system suppliers. As such, UNIX systems are far ahead in terms of functionality, scalability and reliability.

16

You might also like