DISTRIBUTED SYSTEMS Week 6: Network Attached Storage Part 1: Network Attached Storage

DISTRIBUTED SYSTEMS Week 6: Network Attached Storage Part 1: Network Attached Storage

CS 417 – DISTRIBUTED SYSTEMS Week 6: Network Attached Storage Part 1: Network Attached Storage © 2021 Paul Krzyzanowski. No part of this content, may be reproduced or reposted in Paul Krzyzanowski whole or in part in any manner without the permission of the copyright owner. Accessing files File sharing with socket-based programs HTTP, FTP, telnet: – Explicit access – User-directed connection to access remote resources We want more transparency – Allow user to access remote resources just as local ones NAS: Network Attached Storage CS 417 © 2021 Paul Krzyzanowski 2 System Design Issues • Transparency – Integrated into OS or access via APIs? • Consistency – What happens if more than one user accesses the same file? – What if files are replicated across servers? • Security – The local OS is no longer in charge • Reliability – What happens when the server or client dies? • State – Should the server keep track of clients between requests? CS 417 © 2021 Paul Krzyzanowski 3 File service models Download/Upload model Remote access model – Read file: copy file from server to client File service provides functional interface: – Write file: copy file from client to server – create, delete, read bytes, write bytes, etc… Advantage Advantages – Simple – Client gets only what’s needed – Local access speeds – Server can manage coherent view of file system Problems Problem – Wasteful: what if client needs small piece? – Possible server and network congestion – Problematic: what if client doesn’t have • Servers are accessed for duration of file access enough space? • Same data may be requested repeatedly – Consistency: what if others need to modify the same file? CS 417 © 2021 Paul Krzyzanowski 4 Semantics of file sharing Sequential Semantics Session Semantics Read returns result of last write Relax the rules Easily achieved if • Changes to an open file are initially – We use a remote access model visible only to the process (or machine) – Server data is not replicated that modified it. – Clients do not cache data • Need to hide or lock file under BUT modification from other clients – Performance problems if no cache • Last process to close the file wins • Clients get obsolete data – We can write-through • Must notify all clients holding copies • Requires extra state, generates extra traffic CS 417 © 2021 Paul Krzyzanowski 5 Remote File Service Server • File Directory Service – Maps textual names for file to internal locations that can be used by file service • File service – Provides file access interface to clients Client • Client module (driver) – Client-side interface for the file and directory service – Can provide access transparency if implemented in the kernel CS 417 © 2021 Paul Krzyzanowski 6 Accessing Remote Files For maximum transparency, implement the client module as a file system type under VFS Apps Apps Apps Apps Apps Apps System call interface VFS Sockets Remote ext4 NTFS procfs Network protocols FS Operating Operating system kernel Kernel-level sockets interface Net devices sosend, soreceive in BSD & Linux network CS 417 © 2021 Paul Krzyzanowski 7 Stateful or Stateless design? Stateful Stateless Server maintains client-specific state Server stores no information on client accesses • Shorter requests • Each request must identify file and offsets • Server can crash and recover – or fail over • Better performance in processing – No state to lose requests • Client can crash and recover • Cache coherence is possible • No open/close operations needed – Server can know who’s accessing what – They only establish state • File locking is possible • No server space used for state – Don’t worry about the # of clients to support • Client caching can affect consistency • Problems if file is deleted on server • File locking not possible CS 417 © 2021 Paul Krzyzanowski 8 Caching Hide latency to improve performance for repeated accesses File data can reside in several places – Server’s disk ← original version – Server’s buffer cache – Client’s buffer cache WARNING: risk of cache consistency – Client’s disk problems across multiple systems CS 417 © 2021 Paul Krzyzanowski 9 Approaches to caching Write-through Write on close – What if another client reads its own (out-of- – Admit that we have session semantics date) cached copy? – All accesses will require checking with server Read-ahead (prefetch) – Or … server maintains state and sends – Request chunks of data before it is needed invalidations – Minimize wait times if that data is later needed Delayed writes (write-behind) – Data can be buffered locally Centralized control (watch out for consistency – others won’t see – Keep track of who has what open and updates!) cached on each node – Remote files updated periodically – More state to track on the server & more – One bulk write is more efficient than lots of messages little writes – Problem: semantics become ambiguous CS 417 © 2021 Paul Krzyzanowski 10 Next… Coda AFS NFS NFSv4 DFS SMB SMB2,3 GFS CS 417 © 2021 Paul Krzyzanowski 11 The End CS 417 © 2021 Paul Krzyzanowski 12.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us