- Recovery, Reliability
- Consistency checking; compares data in directory with data blocks on disk, tries to fix inconsistencies (e.g., UNIX fsck)
- Use system programs to back up data from disk to another device (optical media, magnetic tape) (disaster scenarios)
- Recover lost file or disk by restoring from backup
- Efficiency and Performance
- Efficiency dependent on:
- disk allocation and directory algorithms
- types of data kept in file's directory entry
- Performance: disk and page caches
- disk cache: frequently used blocks in main memory
- free-behind, read-ahead: optimize sequential access
- improve PC performance by dedicating section of memory as virtual disk, or RAM disk.
- Log Structured File Systems
- Log structured (or journaling) file systems record each update to file system as transaction.
- All transactions written to log. Transaction considered committed once written to log file system may not yet be updated.
- Transactions in log asynchronously written to file system. When file system modified, transaction removed from log.
- If file system crashes, all remaining logged transactions must still be performed
- Sun Network File System (NFS)
- Implementation and specification of software system for accessing remote files across LANs (or WANs)
- Implemented as part of Solaris, SunOS on Suns: uses unreliable datagram protocol (UDP/IP and Ethernet)
- Widely used in UNIX (including free kinds)
- Interconnected machines seen as independent with independent file systems allowing transparent sharing
- remote directory mounted over local file system directory; mounted directory looks like integral subtree of local file system, replacing subtree descending from local directory
- specification of remote directory for mount operation nontransparent; host name of remote directory provided: files in remote directory can then be accessed transparently
- subject to access-rights, potentially any file system (or directory within file system), can be mounted remotely on top of any local directory
- NFS designed to operate in heterogeneous environment: different machines, OSes, network architectures; NFS specifications independent of these details
2004-05-25