CS162 Operating Systems and Systems Programming Lecture 25 Protection and Security in Distributed Systems November 28 2007 Prof John Kubiatowicz http inst eecs berkeley edu cs162 Review Use of caching to reduce network load read f1 V1 cache read f1 V1 read f1 V1 F1 V1 Client read f1 V1 write f1 OK read f1 V2 cache F1 V2 Read RPC Return Data C P R e it r W K AC Servercache F1 V2 F1 V1 Client Idea Use caching to reduce network load In practice use buffer cache at source and destination Advantage if open read write close can be done locally don t need to do any network traffic fast Problems Failure Client caches have data not committed at server Cache consistency Client caches not consistent with server each other 11 28 07 Kubiatowicz CS162 UCB Fall 2007 Lec 25 2 Goals for Today Finish discussing distributed file systems Caching Security Mechanisms Authentication Authorization Enforcement Cryptographic Mechanisms Note Some slides and or pictures in the following are adapted from slides 2005 Silberschatz Galvin and 11 28 07 Kubiatowicz CS162 UCB Fall 2007 Lec 25 3 Gagne Many slides Gagne generated from my lecture notes Network File System NFS Three Layers for NFS system UNIX file system interface open read write close calls file descriptors VFS layer distinguishes local from remote files Calls the NFS protocol procedures for remote requests NFS service layer bottom layer of the architecture Implements the NFS protocol NFS Protocol RPC for file operations on server Reading searching a directory manipulating links and directories accessing file attributes reading and writing files Write through caching Modified data committed to server s disk before results are returned to the client lose some of the advantages of caching time to perform write can be long Need some mechanism for readers to eventually notice changes more on this 11 28 07 Kubiatowicz CS162 UCB Falllater 2007 Lec 25 4 NFS Continued NFS servers are stateless each request provides all arguments require for execution E g reads include information for entire operation such as ReadAt inumber position not Read openfile No need to perform network open or close on file each operation stands on its own Idempotent Performing requests multiple times has same effect as performing it exactly once Example Server crashes between disk I O and message send client resend read server does operation again Example Read and write file blocks just re read or rewrite file block no side effects Example What about remove NFS does operation twice and second time returns an advisory error Failure Model Transparent to client system Is this a good idea What if you are in the middle of reading a file and server crashes Options NFS Provides both Hang until server comes back up next week Return an error Of course most applications don t know they are talking over network 11 28 07 Kubiatowicz CS162 UCB Fall 2007 Lec 25 5 NFS Cache consistency NFS protocol weak consistency Client polls server periodically to check for changes Polls server if data hasn t been checked in last 3 30 seconds exact timeout it tunable parameter Thus when file is changed on one client server is notified but other clients use old version of file until timeout cache F1 still ok F1 V2 F1 V1 No F1 V2 Client cache F1 V2 C P R e t i Wr K AC Servercache F1 V2 Client What if multiple clients write to same file In NFS can get either version or parts of both Kubiatowicz CS162 UCB Fall 2007 Completely arbitrary 11 28 07 Lec 25 6 Sequential Ordering Constraints What sort of cache coherence might we expect i e what if one CPU changes file and before it s done another CPU reads file Example Start with file contents A Client 1 Client 2 Client 3 Read gets A Read parts of B or C Write B Read gets A or B Write C Read parts of B or C Time What would we actually want Assume we want distributed system to behave exactly the same as if all processes are running on single system If read finishes before write starts get old copy If read starts after write finishes get new copy Otherwise get either new or old copy For NFS If read starts more than 30 seconds after write get new could get UCB partial 11 28 07 copy otherwise Kubiatowicz CS162 Fallupdate 2007 Lec 25 7 NFS Pros and Cons NFS Pros Simple Highly portable NFS Cons Sometimes inconsistent Doesn t scale to large clients Must keep checking to see if caches out of date Server becomes bottleneck due to polling traffic 11 28 07 Kubiatowicz CS162 UCB Fall 2007 Lec 25 8 Andrew File System Andrew File System AFS late 80 s DCE DFS commercial product Callbacks Server records who has copy of file On changes server immediately tells all with old copy No polling bandwidth continuous checking needed Write through on close Changes not propagated to server until close Session semantics updates visible to other clients only after the file is closed As a result do not get partial writes all or nothing Although for processes on local machine updates visible immediately to other programs who have file open In AFS everyone who has file open sees old version Don t get newer versions until reopen file 11 28 07 Kubiatowicz CS162 UCB Fall 2007 Lec 25 9 Andrew File System con t Data cached on local disk of client as well as memory On open with a cache miss file not on local disk Get file from server set up callback with server On write followed by close Send copy to server tells all clients with copies to fetch new version from server on next open using callbacks What if server crashes Lose all callback state Reconstruct callback information from client go ask everyone who has which files cached AFS Pro Relative to NFS less server load Disk as cache more files can be cached locally Callbacks server not involved if file is read only For both AFS and NFS central server is bottleneck Performance all writes server cache misses server Availability Server is single point of failure Cost server machine s high cost relative to workstation 11 28 07 Kubiatowicz CS162 UCB Fall 2007 Lec 25 10 World Wide Web Use client side caching to reduce number of interactions between clients and servers and or reduce the size of the interactions Time to Live TTL fields HTTP Expires header from server Client polling HTTP If Modified Since request headers from clients Server refresh HTML META Refresh tag causes periodic client poll What is the polling frequency for clients and servers Could be adaptive based upon a page s age and its rate of change Server load is still significant 11 28 07
View Full Document
Unlocking...