Remote Files
Traditional Memory Interfaces Process Virtual Memory Virtual Memory File Management File Management Physical Memory Physical Memory Storage Devices Storage Devices Device Interface Secondary Memory InterfacePrimary Memory Interface
Multics Segmented Memory Process Segmented Virtual Memory Segmented Virtual Memory File Management File Management Physical Memory Physical Memory Storage Devices Storage Devices Device Interface Secondary Memory InterfacePrimary Memory Interface Normal data flow Alternative data flow
Explicit File Copying Need a way for a process on one machine to pass info to a process on another machine Technique –Sender writes a file –User manually copies file to a remote machine –Receiver opens the file and reads it Very coarse grained Very high latency
Remote Secondary Memory Process File Management File Management Storage Devices Storage Devices Device Interface Secondary Memory Interface Comm Network Comm Network Client Interface to Remote Store Client Interface to Remote Store
Refined View Process File Management File Management Storage Devices Storage Devices Secondary Memory Interface Comm Network Comm Network Remote Access Storage Devices Storage Devices Remote Secondary Storage Remote Secondary Storage Client Machine Server Machine Clients & server jointly implement file manager Disk storage is at a shared server Copy file contents to clients as needed
Remote Disk Server General File Management General File Management Storage Devices Storage Devices Comm Network Comm Network Virtual Disk Driver Virtual Disk Driver Storage Devices Storage Devices Remote Disk Application Remote Disk Application Client Machine Server Machine file mgr: diskRequest(details); VDD: Pack parameters; VDD: Send request; (wait for response) (waiting for a request) RDA: Unpack parameters; RDA: Generate local disk request; (waiting) RDA: Generate reply; RDA: Send reply (waiting for a request) VDD: Receive reply; VDD: Unpack parameters; VDD: Return to file mgr
Exploiting Remote Disks Diskless UNIX workstation X Terminal Network computer (“thin client”) Palmtops and PDAs
Performance & Reliability Became commercially feasible in about 1986 Biggest concern was reliability –Use datagrams for performance –How can the system assure that commands get executed? –If the server crashes: How can we prevent “incomplete transactions”? How can the client resume its operation?
Reliable Command Execution Using request time-outs –Issue command –Wait for a fixed t –Re-issue the command Failed command send operation –Re-issue is appropriate Failed command ACK operation –Is re-issued command appropriate? Idempotent operations
Crash Recovery Distributed state –Client’s view of open files –Server’s view of open files –Distribution less network traffic –Distribution recovering state is difficult Server must have stable memory Can be built without special hardware, but expensive Stateless servers –All state is kept at the client –All operations are idempotent –Stateless server more network traffic –Stateless server no server-side state recovery
Remote File Server General File Management General File Management Storage Devices Storage Devices Comm Network Comm Network Client Part of Remote File System Client Part of Remote File System Storage Devices Storage Devices Server Part of Remote File System Server Part of Remote File System Client Machine Server Machine Read/write management Pack/unpack byte stream Buffering... Block management Buffering Device management...
Block Caching Widely used in all file systems In RFS can buffer at: –Server Doesn’t avoid network latency –Client Consistency Sometimes use sequential write consistency (no sharing if there are multiple writers)
Crash Recovery Client has a file open and server crashes –Distributed state makes recovery difficult –Can counteract with a stateless server –But it requires that state be transmitted with every service request Recovery-oriented file service, e.g., Sun NFS Performance-oriented file service
File-Level Caching Copy an entire file to the client when it is needed –Requires enough client storage to hold any file –Widely-used in contemporary palmtops File Consistency –Synchronization on any file write operation –Immutable files
Directories -- Pathnames Need a path through the internet to host in addition to path from root at the host –goober:/usr/bernie/good/stuff –/../goober/usr/bernie/good/stuff Remote mounting –Mount a file system on a remote host (use a superpathname to reference server) –Use normal path names
Opening a File / usr bin etc … zipmt_pt / usr bin etc … s_mnt t_file / usr bin etc … zipt_mnt s_hop mount Machine R Machine S Machine T