+ All Categories
Home > Documents > A Fast File System for Unix

A Fast File System for Unix

Date post: 15-Mar-2016
Category:
Upload: dacey-cameron
View: 35 times
Download: 0 times
Share this document with a friend
Description:
A Fast File System for Unix. Presented By: Parang Saraf. Marshall K. Mckusick, William N. Joy, Samual J. Leffler and Robert S. Fabry Computer Systems Research Group, UCB. CS 5204: Operating Systems, Virginia Tech. About the Paper. - PowerPoint PPT Presentation
Popular Tags:
45
A Fast File System for Unix Marshall K. Mckusick, William N. Joy, Samual J. Leffler and Robert S. Fabry Computer Systems Research Group, UCB Presented By: Parang Saraf CS 5204: Operating Systems, Virginia Tech
Transcript
Page 1: A Fast File System for Unix

A Fast File System for UnixMarshall K. Mckusick, William N. Joy, Samual J. Leffler and Robert S. FabryComputer Systems Research Group, UCB

Presented By:Parang SarafCS 5204: Operating Systems, Virginia

Tech

Page 2: A Fast File System for Unix

About the Paper• Considered as one of the most fundamental papers in

operating systems

• Have been cited around 930 times

• Describes a new file system

2

Page 3: A Fast File System for Unix

Traditional File System• File System developed at Bell Laboratories

• A file system is described by its Super-Blocko Number of Data Blocks

o Count of maximum number of files

o Pointer to free list (linked list to all free blocks)

• Disk drive is divided into partitionso Each disk partition may contain one file system

o A file system never spans multiple partitions

3

Page 4: A Fast File System for Unix

Traditional File System

4

Page 5: A Fast File System for Unix

Traditional File System – Inode• Each file has a descriptor associated with it – Inode.

• Information includes:o Ownership of the file

o Time stamps marking last modification and access time

o Array of indices pointing to the data blocks Direct Blocks – 8

Indirect Blocks – Singly, Doubly and Triply

5

Page 6: A Fast File System for Unix

Traditional File System – Inode

6

Page 7: A Fast File System for Unix

Traditional File System – Inode

7

Page 8: A Fast File System for Unix

Traditional File System – Problem • Inode information segregated from Data

o Long seek time from inode to its data

• Files in single directory are not typically allocated consecutive slots for inode informationo Many non-consecutive blocks of inodes are accessed when executing

operations on inodes of several files in a directory

• Sub-optimum allocation of data blockso Small Block size – 512 bytes

o Many Seeks – Next sequential block is not on the same cylinder

o Limited read-ahead

8

Page 9: A Fast File System for Unix

Old File System• Developed at Berkeley

• Increased Throughput• Changing the basic block size from 512 bytes to 1024 bytes

• Each disk transfer accessed twice as much data

• Less number to indirect blocks used

• Increased Reliability• Staging modifications to critical file system information so that they could

either be completed or repaired cleanly after a crash

9

Page 10: A Fast File System for Unix

Old File System – Problem • Old file system was still using just 4% of disk bandwidth

• Main problem – Scrambled Free List

10

Page 11: A Fast File System for Unix

Old File System – Problem • Old file system was still using just 4% of disk bandwidth

• Main problem – Scrambled Free Listo Initially ordered for optimal access

o Scrambled because files were created and removed

o Eventually becomes entirely random – blocks allocated randomly

o On creation provides transfer rates up to 175 kbps

o Rate deteriorates to 30 kbps after a few weeks of moderate use

• Possible Solution – Dump, rebuild and restore / Fragmentation

11

Page 12: A Fast File System for Unix

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 disk partition

• Super-block is replicated to protect against catastrophic loss

• Block size is any power of two >= 4096 byteso Decided at the time of file system creation and can’t be changed

o File Systems can have different block sizes 12

Page 13: A Fast File System for Unix

New File System – Cylinder Groups• Comprises of one or more consecutive cylinders

13

Page 14: A Fast File System for Unix

New File System – Cylinder Groups• Comprises of one or more consecutive cylinders

• Disk partition is divided into one or more cylinder groups

• Has associated book-keeping information:o A redundant copy of super-block

o Space for inodes

o A bit map describing available blocks – replaces free list

o Summary information describing usage of data blocks

14

Page 15: A Fast File System for Unix

New File System – Cylinder Groups• Contains static number of inodes:

o Allocated at file system creation time

o Default policy – one inode for each 2048 bytes

• Book-keeping information begins at varying offset from the beginning of the cylinder groupo Redundant information spirals down into the cylinder

o Any single track, cylinder or platter can be lost without losing copies of the super-block

15

Page 16: A Fast File System for Unix

New File System – Structure

16

Page 17: A Fast File System for Unix

New File System – Key Contributions• Optimizing storage utilization

• File System Parameterization

• Layout Policies

17

Page 18: A Fast File System for Unix

Optimizing Storage Utilization• New 4096 size blocks – transfers 4 times more

• Problem with large blocks:o Wasted space due to small files

18

Page 19: A Fast File System for Unix

Optimizing Storage Utilization• Solution:

o Divide the 4096 block into 2, 4 or 8 fragments to accommodate small files

o Fragment size is specified at the time file system is created

o Block map records the space available at fragment level

19

Page 20: A Fast File System for Unix

Optimizing Storage Utilization• Free List vs Bitmap

20

Page 21: A Fast File System for Unix

Optimizing Storage Utilization• Space allocation:

o Space is allocated when a program does a write system call

o Three possible conditions: Enough space left in an already allocated block or fragment

File contains no fragmented blocks – allocate new blocks and fragments File contains one or more fragmented blocks but has insufficient space

to hold new data – new block is allocated, old fragments are copied and new fragments are appended

21

Page 22: A Fast File System for Unix

Optimizing Storage Utilization• Free space reserve

o Minimum acceptable percentage of file system blocks that should be free – 90%

o Only system administrator can allocate blocks after that

o Important for the layout policies to be effectiveo After this the file system throughput is cut in half because of the

inability to localize blocks in a file

22

Page 23: A Fast File System for Unix

Optimizing Storage Utilization• Wasted space comparison

o Space wasted by 4096/1024 byte new file system is same as 1024 byte Old File System

o New file system uses less space for indexing large files

o Uses same amount of space for small files

o Free space reserve should also be counted as wasted space

23

Page 24: A Fast File System for Unix

File System Parameterization• Optimum block allocation based on hardware parameters

o Speed of Processor

o Hardware support for mass storage transfers

o Characteristics of the mass storage devices

• Blocks are allocated on the same cylinder

• Block allocation depends on whether the processor has an input/output channel or not

24

Page 25: A Fast File System for Unix

File System Parameterization

25

Accessing which data is faster?

Page 26: A Fast File System for Unix

File System Parameterization

26

Accessing which data is faster?

Depends whether processor has I/O channel or not

Page 27: A Fast File System for Unix

File System Parameterization• Rotationally Optimal Blocks

o Processors without I/O channels must field an interrupt and then prepare for a new disk transfer

o Disk rotates during this timeo Place blocks such that disk rotation is taken into account before the start of a

new disk transfer operation

• Cylinder group summary information includes count of blocks based on different rotational positions – 8 positions

• Super-block contains a vector of lists called as Rotational Layout Tables – Used by system when

allocating new blocks27

Page 28: A Fast File System for Unix

File System Parameterization

28

Page 29: A Fast File System for Unix

Layout Policies• Layout policies divided into two distinct parts:

o Global Policies

o Local Allocation Routines

• Two allocable resources:o Inodes

o Data Blocks

29

Page 30: A Fast File System for Unix

Layout Policies• Global Policies

o Uses file system wide summary information to make decisions regarding the placement of new inodes and data blocks

o Tries to localize data that is concurrently accessed while spreads out unrelated data

o Inodes: Places all inodes of files in a directory in the same cylinder group A new directory is placed in a cylinder group that has a greater than

average number of free inodes and the smallest number of directories already in it – ensures that files are distributed throughout the disk

30

Page 31: A Fast File System for Unix

Layout Policies• Global Policies

o Data Blocks: Tries to place all data blocks for a file in the same cylinder group

None of the cylinder groups should ever become completely full Heuristic Solution – redirect block allocation to a different cylinder group

when a file exceeds 48 kb and at every MB thereafter

Ensures that cost of one long seek per MB is small New cylinder groups are chosen from those cylinder groups that have a

greater than average number of free blocks left

Finally it calls Local Allocation Routines for block allocation

31

Page 32: A Fast File System for Unix

Layout Policies• Local Allocation Routines

o Allocates a free block as requested by the Global layout policies

o Uses a four level allocation o First Level – use the next free block that is rotationally closest to the requested

block on the same cylinder

32

Cylinder 0

Page 33: A Fast File System for Unix

Layout Policies• Local Allocation Routines

o Second Level – if there are no free blocks on the same cylinder, a free block in the same cylinder group is selected

33

Cylinder GroupCylinder 0

Cylinder 1

Page 34: A Fast File System for Unix

Layout Policies• Local Allocation Routines

o Third Level – if the cylinder group is full, use the quadratic hash function to hash the cylinder group number to find another cylinder group to look for a free block

o Fourth Level – if the hash fails, use an exhaustive search on all cylinder groups

o Quadratic Hasho is used because of its speed in finding unused slots in nearly full hash tables

o File systems parameterized to maintain 10% free space rarely use this

34

Page 35: A Fast File System for Unix

Performance• Measured Throughput

35

Page 36: A Fast File System for Unix

Performance• List Directory command performance

o For large directories containing many directories, disk access for inodes is cut by a factor of two

o For large directories containing only files, disk access for inodes is cut by a factor of eight

• Both reads and writes are faster in new file systemo Because larger block sizes are used

o The overhead of allocating is more but cost per byte allocation is same

o Reading rate is always at least as fast as writing rate Writes are slower for 4096 byte block as compared to 8096 byte block

In old file system writing was 50% faster than reading

36

Page 37: A Fast File System for Unix

New File System - Limitations• Limited by memory to memory copy operations required

to move data from disk buffers in the system’s address space to data buffers in the user’s address spaceo Buffer alignment of both address space

• One block is allocated to a file at a timeo Pre-allocate several blocks at once and releasing unused ones on file closing

37

Page 38: A Fast File System for Unix

Functional Enhancements• Long File Name

• File Locking

• Symbolic Links

• Rename

• Quotas

38

Page 39: A Fast File System for Unix

Long File Name• Maximum length of file name is 255 characters

• Directories are allocated 512 byte units called chunks

• Chunks are broken into Directory Entries:o Contains information necessary to map the name of file with inodeo First three fields are fixed length – inode number, size of entry and length of

file name

39

Page 40: A Fast File System for Unix

File Locking• Hard Lock – always enforced when a program tries to

access a file

• Advisory shared or exclusive locks – requested by the programs

• System administrator privilege can override locks

• No deadlock detection is attempted

40

Page 41: A Fast File System for Unix

Symbolic Links• A symbolic link is implemented as a file that contains a

pathname

• Pathname can be relative or absolute

• On encountering a symbolic link while interpreting a component of a pathname, the contents of the symbolic link is prepended to the rest of the pathname

41

Page 42: A Fast File System for Unix

Rename• Old file system required three system calls for renaming

• Target file could be left with temporary name due to crash

• New rename system call added that guarantees the existence of the target name

• Renaming works both on directory and files

42

Page 43: A Fast File System for Unix

Quotas• Old file system – any single user can allocate all the

available space in the file system

• Quota restricts the amount of file system resources that a user can obtain

• Sets limits to both inodes and number of disk blocks

• Hard and soft limits

43

Page 44: A Fast File System for Unix

Key Take-Away points• Substantially higher throughput rates – large block size

• Flexible allocation policieso Better locality of reference

o Less wastage

• Adapted to wide range of peripheral and processor characteristics

44

Page 45: A Fast File System for Unix

References• Presentation on “A Fast File System” by:

o Zhifei Wang : www.cs.pdx.edu/~walpole/class/cs533/spring2006/slides/191.ppt

o pdc-amd01.poly.edu/~wein/cs6243/ppts/fastfile.ppto Sean Mondesire and Subramanian Kasi :

www.cs.ucf.edu/courses/cop5611/spring05/item/FFS.ppt

o www.scs.ryerson.ca/~aabhari/File_System.ppt

• http://flylib.com/books/en/3.224.1.79/1/

• http://osr507doc.sco.com/en/HANDBOOK/graphics/harddisk.gif

45


Recommended