Cluster Computing: A Paper Presentation On
Cluster Computing: 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
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).
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).
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.
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).
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.
10
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.
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.
14
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