Title: Remote Files
1Remote Files
2Traditional Memory Interfaces
Process
Secondary Memory Interface
Primary Memory Interface
Virtual Memory
File Management
Device Interface
Physical Memory
Storage Devices
3Multics Segmented Memory
Process
Secondary Memory Interface
Primary Memory Interface
Segmented Virtual Memory
File Management
Device Interface
Physical Memory
Storage Devices
Normal data flow
Alternative data flow
4Explicit 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
5Remote Secondary Memory
Process
Secondary Memory Interface
File Management
Device Interface
Storage Devices
6Refined View
Client Machine
- Clients server jointly implement file manager
- Disk storage is at a shared server
- Copy file contents to clients as needed
Process
Secondary Memory Interface
File Management
Server Machine
Remote Access
Remote Secondary Storage
Storage Devices
Comm Network
Storage Devices
7Remote Disk Server
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
Client Machine
General File Management
Server Machine
Virtual Disk Driver
Remote Disk Application
Storage Devices
Comm Network
Storage Devices
8Exploiting Remote Disks
- Diskless UNIX workstation
- X Terminal
- Network computer (thin client)
- Palmtops and PDAs
9Performance 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?
10Reliable 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
11Crash Recovery
- Distributed state
- Clients view of open files
- Servers 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
12Remote File Server
- Read/write management
- Pack/unpack byte stream
- Buffering
- ...
- Block management
- Buffering
- Device management
- ...
Client Machine
General File Management
Server Machine
Client Part of Remote File System
Server Part of Remote File System
Storage Devices
Comm Network
Storage Devices
13Block Caching
- Widely used in all file systems
- In RFS can buffer at
- Server
- Doesnt avoid network latency
- Client
- Consistency
- Sometimes use sequential write consistency (no
sharing if there are multiple writers)
14Crash 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
15File-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
16Directories -- 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
17Opening a File
Machine R
/
Machine S
usr
bin
etc
/
zip
mt_pt
usr
bin
etc
mount
Machine T
s_mnt
/
s_hop
mount
usr
bin
etc
zip
t_mnt
t_file