1 / 26

A Fast File System For UNIX

A Fast File System For UNIX. By Marshall Kirk McKusick, William N.Joy Samuel J.Leffler Robert S. Fabry Presented by Zhifei Wang. Outline. Introduction Old file system overview New file system New organization Functional Enhancement Performance Conclusion. Introduction.

laqueta
Download Presentation

A Fast File System For UNIX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Fast File System For UNIX By Marshall Kirk McKusick, William N.Joy Samuel J.Leffler Robert S. Fabry Presented by Zhifei Wang

  2. Outline • Introduction • Old file system overview • New file system • New organization • Functional Enhancement • Performance • Conclusion

  3. Introduction • UNIX File Abstraction • Everything as sequential byte stream • Old File System • Developed at Bell Labs • Each disk drive is divided into one or more partitions • Each disk partition may contain one file system • File system never spans multiple partitions

  4. Old File System • File System Layout • I-Nodes • Problems

  5. Old File System Disk Layout

  6. INodes • INodes: • File ownership information • Time Stamps for last modification/access • Array of pointers to data blocks of the underlying file

  7. INodes

  8. Old File System • Problem • Low Throughput • Long seek time • Why? • Transfer only 512 bytes once, at most • No read-ahead • Almost every access needs seek

  9. New File System • Each disk drive contains one or more file systems. • A file system is described by its super-block • located at the beginning of the file system’s disk partition • contains critical data • Divides a disk partition into one or more cylinder groups

  10. New File System – Cylinder Group • Cylinder Group • Redundant copy of super-block kept at varying offset so it spirals through the disk • i-nodes • Bit map describing available blocks Summary info describing usage of data blocks

  11. New File System – Optimization at storage utilization • Larger blocks can be transferred in a single disk transaction • By increasing block size, disk access in NFS can transfer 4 times information than OFS per disk transaction. • eg: File in NFS – 4096 byte blocks • Problem: Huge Waste • Most UNIX file systems are composed of small files • Large block size wastes internal space

  12. New File System –Waste due to large-size block Solution: Use Fragment!

  13. New File System –Fragments in a block • Divide single block into one or more fragments • 2, 4 or 8 fragments for each block specified at file system creation • Lower bound disk sector size (512 bytes)

  14. New File System –Space Allocation • New space to be allocated upon write system call • Each time the system checks to see if the size of the file has increased Strategies: • If enough space, just do it. • No fragmented blocks and no space in last block • Write in already-allocated / new full block • File contains one or more fragments with no space • If (size of new data + size of data already in fragments) > size of a full block, then a new block allocated and contents of the fragment are copied. Then continue to do as situation2 • But, this would cause problem! • Don’t make completely full, 90% is optimal

  15. New File System –Parameterization • Goal • To parameterize the processor capabilities & mass storage characteristics so that blocks can be allocated in an optimum configuration-dependent way • Parameters used • Speed of the processor • Hardware support for mass storage transfers • Characteristics of the mass storage devices

  16. New File System –Parameterization (cont’d) • How to achieve optimum configuration • Allocate new blocks on same cylinder as previous block • Cylinder group summary info keeps count of available blocks in cylinder group at different rotational positions • 8 rotational positions • Super-block contains vector of lists called rotational layout tables • Parameter that defines the number of milliseconds between completion of a data transfer and the initiation of another data transfer on same cylinder can be changed at any time

  17. New File System – Layout Policy • Goal: • Increase locality of reference to minimize seek latency • Improve layout of data to make larger transfers possible • Global Policies • Make placement decisions for new i-nodes and data blocks • Calculate rotationally optimal block layouts • Decide when to force long seek because insufficient blocks • Local Policies • Use locally optimal scheme to lay out data blocks • Must strike a balance to avoid too much locality

  18. New File System – Layout Policy (cont’d) • Tries to place all i-nodes of files in a directory in the same cylinder group • Allocation of i-nodes is done randomly/using a next free strategy within a cylinder group • Small & constant upper bound on the number of disk transfers (to access the i-nodes for all files in a directory) • When data blocks are used, file spilling is handled by redirecting block allocation to a different cylinder group • Advantage over OFS • All i-nodes for a particular cylinder group can be read with 8-16 disk transfers (OFS require a disk transfer to fetch i-node)

  19. New File System – Layout Policy (cont’d) • Global policy routines call local allocation routines • If requested block not available • Use next available, rotationally closest block • If no blocks open on same cylinder, use block in same cylinder group • If cylinder group full, quadratically hash to choose another cylinder group • Exhaustive search

  20. New File System – Functional Enhancements • Long file names • File names can be of arbitrary length. (255 chars) • File Locking • Old File System • No provision for locking files • Processes consumed CPU time by looping over attempts to create locks • Locks left lying around because of system crashes had to be manually removed • Process running as administrator were forced to use a different mechanism. • New File System • Provides file locking. [ 2 Schemes : Hard locks , Advisory locks ]

  21. Symbolic Links Implemented as a file that contains a pathname When system encounters a symbolic link while interpreting a component of a pathname, the contents of the symbolic link is pre-pended to the rest of the pathname, and this name is interpreted to yield the resulting pathname Allows references across physical file systems and supports inter-machine linkage. Rename Old system required 3 system calls New implementation to avoid losing file with only temporary name if system crashes New File System – Functional Enhancements (cont’d)

  22. New File System – Functional Enhancements (cont’d) • Quotas • Old system - Any single user can allocate all available space in the file system • New system - Quota mechanism sets limit on both number of inodes and the number of disk blocks that a user may allocate.

  23. Performance • Both reads and writes are faster • Effective i-nodes layout • Larger block size

  24. Inode layout policy is effective Large directory having many directories within. # disk accesses for inodes cut by a factor of 2. Large directory containing only files. # disk accesses for inodes cut by a factor of 8. Bandwidth Old file system uses only 3-5% of disk bandwidth New file system uses up to 47% Reads and writes faster Due to larger block size in new file system Writes same speed as reads in contrast to old system Performance

  25. Conclusion • NFS is the basis for Unix File System • Nearly all UNIX machines use a variant of NFS including • Solaris • Unix BSD, Free Unix • Mac OS offers UFS as an alternative to its HFS • Linux offers partial support for UFS

  26. Reference • Andrew S. Tanenbaum, Modern Operating Systems • Wikipedia.org

More Related