Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
EEC-681/781 Distributed Computing Systems Lecture 4 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University [email protected] 2 Outline • • • • Architecture Model Server load balancing End-to-end arguments in system design Inter-process communications (part 1) Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 3 Architectural Models • Client-server model • Peer-to-peer model Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 4 Basic Client–Server Model Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 5 Servers • Servers: Generally provide services related to a shared resource: – Servers for file systems, databases, implementation repositories, etc. – Servers for shared, linked documents – Servers for shared applications – Servers for shared distributed objects Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 6 Client • Clients: Allow remote service access – Programming interface transforming client’s local service calls to request/reply messages – Devices with (relatively simple) digital components (barcode readers, teller machines, hand-held phones) – Computers providing independent user interfaces for specific services – Computers providing an integrated user interface for related services (compound documents) Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 7 Application Layering • Traditional three-layered view: – User-interface layer contains units for an application’s user interface – Processing layer contains the functions of an application, i.e. without specific data – Data layer contains the data that a client wants to manipulate through the application components Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 8 Multitiered Architecture Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 9 Multitiered Architecture 1-30 Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 10 Horizontal Distribution 1-31 Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 11 Modern Architectures • Vertical distribution – According to application logic • Horizontal distribution – Scalability and availability • In practice, a system is distributed in both directions Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 12 Peer-to-Peer Model • A different way to construct client-server systems where most, or all, of the server functionality resides on the clients themselves • Advantages – Scalable to very large numbers (millions) – Stable under very high load – Self-repairing when disruptive failures occur Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 13 Why Server Load Balancing? • Scalable - Upgrade out instead of up • Easily grow - Spread your load across your existing low-cost servers as your needs grow • HA - Can work closely with High Availability solutions to add and remove servers as necessary Slides on server load balancing taken from Dustin Puryear’s talk on “LVS – Load Balancing and High Availability for Free” at USENIX LISA 2003 Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 14 SLB Layout Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 15 SLB Definitions • Virtual IP (VIP) – The IP used by clients to access a service • Load Balancer (LB) or Server Load Balancer (SLB) – the server that balances packets going to or from the servers providing the service • Real Server – The server providing the actual service (i.e., the server running Apache) • Real IP (RIP) – The IP of each real server • Schedule – How the SLB determines which real server gets the next connection Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 16 SLB Transaction Walkthrough 1. 2. 3. 4. 5. Client established TCP connection with SLB. SLB determines which real server is ready for a connection using configured schedule, and creates a connection to that server. Client sends HTTP request. SLB forwards HTTP request to real server. Real server responds back to.. Who? Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao So How Exactly Does the Real Server Respond? • There are two traditional methods to solving this problem: – Network Address Translation (NAT) – Direct Routing/Direct Server Return Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 17 18 NAT-Based SLB Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 19 NAT-Based SLB • SLB sits between the client and real servers for all incoming and outgoing packets, just like a router that does NAT • The SLB can rewrite the IP packet in one of two ways: – Half-NAT: load-balancer rewrites the destination IP – Full-NAT: load-balancer rewrites the source and destination IP • The VIP is only assigned on the load-balancer Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 20 Half-NAT 1. SLB gets packet from client 2. SLB changes the destination IP in the header of the packet 3. SLB forwards packet to real server • Major benefit of this method is that the real server knows the real IP of the client – – The real server can properly log client IP’s The real server can do better security based on the IP address of the client Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 21 Full-NAT 1. SLB gets packet from client. 2. SLB changes the destination IP and source IP in the header of the packet. 3. SLB forwards packet to real server. • Major drawback to this technique: – The real server has no idea who sent the original request Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 22 Direct Routing/Direct Server Return Layer 2 LB Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 23 Direct Routing/Direct Server Return 1. 2. 3. 4. SLB gets packet from client SLB changes destination IP in packet header SLB forwards packet to real server, which also has VIP Real server responds directly to the client with VIP as the source IP • There are benefits and costs to this approach – Without having to push data back through the SLB you can decrease latency – How do you handle ARP if multiple devices have the same IP (the VIP)? Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 24 End-to-End Arguments in System Design • Concerned with placement of functions among modules of a distributed system • Layered systems are very common – Network protocols and Middleware • Claim – Functions at low levels of a system may be redundant or of little use – Moving a function upward in a layered system closer to application that uses the function Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 25 Careful File Transfer • Objective: move a file from computer A’s storage to computer B’s storage • Application program: file transfer program Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 26 Careful File Transfer • Fault-free steps of file transfer – A reads the file from its disk – A sends the file to its networking stack and the file is packetized at the networking protocol stack – Communication network moves packets from A to B – At B, B’s networking protocol stack delivers transmitted file to the file transfer program running in B – B’s file transfer program asks its file system to write the file to B’s disk Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 27 Careful File Transfer • What can go wrong in each step – File corrupted due to disk error – Software bugs in buffering and copying the file, in A or B – Processor or memory transient error during buffering or copying – Communication system error, e.g., drop or change bits, or duplicate delivery – Host might crash Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 28 Careful File Transfer • How to cope with the threats – Reinforce each step along the way using time-out and retry, error detection, crash recovery, etc. – Doing everything three times Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 29 End-to-end Check and Retry • Assuming low probability of the threats • As a final additional step – B reads back the file from disk into memory – Recalculates checksum – Sends this value back to A – A compares the value with checksum of original file – If two checksums agree, file transfer completes. Otherwise, retry from beginning Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 30 Is Reliable Communication Useful? • Communication system can be made reliable with Packet checksums, sequence number, internal retry, etc. • Is it enough to ensure correct file transfer? – No. Other threats can still corrupt the file – The extra end-to-end check and retry still necessary – Usefulness: Reducing frequency of retry Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 31 Is Reliable Communication Useful? • Conclusion – Communication system to go out of its way to be extraordinarily reliable does not reduce the burden on the application program to ensure reliability Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 32 Performance Aspects • Cannot conclude that lower levels should play no part in obtaining reliability – If file is long, retry the transfer of the file is too expensive – By providing reliable communication, can significantly enhance the performance Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 33 Performance Aspects • Putting reliability measures in lower level – An engineering trade-off based on performance – Not a requirement for correctness – Must be careful. Might not always improve performance • Other application might not need the extra functionality • Might not have enough information to operate efficiently Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 34 Inter-Process Communications • Techniques: – Shared memory – Message passing • Objectives: – Data exchange – Synchronization: processes at different hosts, executing at different rates, need to influence the overall execution pattern => Constraints on the order of events Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 35 The OSI Network Architecture Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 36 Low-level Layers • Physical layer: contains the specification and implementation of bits, and their transmission between sender and receiver • Data link layer: prescribes the transmission of a series of bits into a frame to allow for error and flow control • Network layer: describes how packets in a network of computers are to be routed Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 37 Transport Layer • The transport layer provides the actual communication facilities for most distributed systems. • TCP: connection-oriented, reliable, stream-oriented communication • UDP: unreliable (best-effort) datagram communication Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 38 Application Layer • Many application protocols are directly implemented on top of transport protocols that do a lot of applicationindependent work FTP WWW Transfer FTP HTTP Encoding 7-bit text + 8-bit binary 8-bit + content type Naming Host + path URL Distribution Pull Pull Replication Caching + DNS tricks Caching + DNS tricks Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 39 Message Layout Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 40 Middleware Layer • Middleware is invented to provide common services and protocols that can be used by many different applications: – – – – – A rich set of communication protocols Marshaling and unmarshaling of data Naming protocols Security protocols Scaling mechanisms • What remains are truly application-specific protocols Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao An Adapted Reference Model with Middleware Layer 2-5 Fall Semester 2006 EEC-681: Distributed Computing Systems Wenbing Zhao 41