0% found this document useful (0 votes)
51 views

Lecture 2 Advanced File Systems

The document discusses various file system issues including performance, reliability, extensibility, and using alternative storage. It covers topics like file system basics, mounting file systems, file representations, links, disk hardware layouts, and file allocation methods.

Uploaded by

Udayini Inturi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views

Lecture 2 Advanced File Systems

The document discusses various file system issues including performance, reliability, extensibility, and using alternative storage. It covers topics like file system basics, mounting file systems, file representations, links, disk hardware layouts, and file allocation methods.

Uploaded by

Udayini Inturi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 66

Advanced File Systems Issues

Andy Wang
COP 5611
Advanced Operating Systems
Outline
 File systems basics
 Better performance
 Reliability
 Extensibility
 Using other forms of persistent storage
File System Basics
 File system: a collection of files
 An OS may support multiples FSes
 Instances of the same type
 Different types of file systems
 All file systems are typically bound into
a single namespace
 Often hierarchical
Why not a single FS?
Pros of Having Multiple FSes
 Easier support for multiple HW devices
 More control over disk usage
 Fault isolation
 Quicker to run consistency checks
 Support for multiple types of FSes
A Hierarchy of File Systems
Hierarchical Organizations
 Constrained
 Unconstrained
Constrained Organizations
 Independent FSes located at particular
places
 Usually at the highest level in the

hierarchy (e.g., DOS/Windows and Mac)


+ Simplicity, simple user model
- lack of flexibility
Unconstrained Organizations
 Independent FSes can be put anywhere
in the hierarchy (e.g., UNIX)
+ Generality, invisible to user
- Complexity, not always what user
expects
 These organizations requires mounting
Some Questions…
 Why hierarchical? What are some
alternative ways to organize a
namespace?
Types of Namespaces
 Flat
 Hierarchical
 Relational
 Contextual
 Content-based
Example: “Internet FS”
 Flat: each URL mapped to one file
 Hierarchical: navigation within a site
 Relational: keyword search via search
engines
 Contextual: page rank to improve
search results
 Content-based: searching for images
without knowing their names
Mounting File Systems
 Each FS is a tree with a single root
 Its root is spliced into the overall tree
 Typically on top of another file/directory
 Or the mount point
 Complexities in traversing mount points
Mounting Example

tmp

root
mount(/dev/sd01, /w/x/y/z/tmp)
After the Mount

tmp
root

mount(/dev/sd01, /w/x/y/z/tmp)
Before and After the Mount
 Before mounting, if you issue
 ls /w/x/y/z/tmp
 You see the contents of /w/x/y/z/tmp
 After mounting, if you issue
 ls /w/x/y/z/tmp
 You see the contents of root
Questions
 Can we end up with a cyclic graph?
 What are some implications?
 What are some security concerns?
What is a File?
 A collection of data and metadata
(often called attributes)
 Usually in persistent storage
 In UNIX, the metadata of a file is
represented by the i_node data
structure
Logical File Representation
Name(s)  i-node
 File attributes

 Data

File
File Attributes
 Typical attributes include
 File length
 File ownership
 File type
 Access permissions
 Typically stored in special fixed-size
area
Extended Attributes
 Some systems store more information
with attributes (e.g., Mac OS)
 Sometimes user-defined attributes
 Some such data can be very large
 In such cases, treat attributes similar to file
metadata
Storing File Data
 Where do you store the data?
 Next to the attributes, or elsewhere?
 Usually elsewhere
 Data is not of single size
 Data is changeable
 Storing elsewhere allows more flexibility
 Co-placement is also possible (see WAFL)
Physical File Representation
Name(s)  i-node
 File attributes

 Data locations

 Data blocks

File
Ext2/3 i-node
data block location data block location

12
data block location data block location

index block location

index block location

index block location

i-node

How about making


each block pointing
to its parent?
A Major Design Assumption
 File size distribution
number of files

22KB – 64 KB file size


Pros/Cons of i_node Design
+ Faster accesses for small files (also
accessed more frequently)
+ No external fragmentations
- Internal fragmentations
- Limited maximum file size
Directories
 A directory is a special type of file
 Instead of normal data, it contains
“pointers” to other files
 Directories are hooked together to
create the hierarchical namespace
Ext2/3 Dir Representation
data block location file1
file1
file i-node
i-nodelocation
number

file2
file1
data block location
file2
file i-node
i-nodelocation
number
index block location
Why need i-
index block location
node number?
index block location Why not just
use names?
i-node
Links
 Different names for the same file
 A Hard link: A second name that points
to the same file
 A Symbolic link: A special file that
directs name translation to take another
path
Hard Link Diagram
data block location file1
file1
file i-node
i-nodelocation
number

file2
file1
data block location
file1
file i-node
i-nodelocation
number
index block location

index block location

index block location

i-node
Implications of Hard Links
 Indistinguishable pathnames for the
same file
 Need to keep link count with file for
garbage collection
 “Remove” sometimes only removes a
name
 Do not work across file systems
Symbolic Link Diagram

data block location file1


file1
file i-node
i-nodelocation
number

file2
file1
data block location
file2
file i-node
i-nodelocation
number file1
index block location

index block location

index block location

i-node
Implications of Symbolic Links
 If file at the other end of the link is
removed, dangling link
 Only one true pathname per file
 Just a mechanism to redirect pathname
translation
 Less system complications
Ext4 i-node
index
data block
node location
location data block
extent
location

i-node
Disk Hardware

One head/platter; they typically move


together, with one head activated at a time

One or more rotating


disk platters

Disk arm
Disk Hardware

Smallest atomic Track


access unit (512B
– 4KB)

Sector
Cylinder
More Complexities
 Zone-bit recording
 More sectors near outer tracks
 Track skews
 Track starting positions are not aligned
 Optimize sequential transfers across
multiple tracks
 Thermo-calibrations
Shingled Magnetic Recording
Write head width Read head width
(1,000 atoms)

1
Write tracks 1, 2, 1 2
okay
3

1
Write tracks 1, 2, 1 2
not okay 3
Are Disks Obsolete?
Laying Out Files on Disks
 Consider a long sequential file
 And a disk divided into sectors with 1-
KB blocks
 Where should you put the bytes?
File Layout Methods
 Contiguous allocation
 Threaded allocation
 Segment-based allocation
 Variable-sized, extent-based
 Indexed allocation
 Fixed-sized, extent-based
 Multi-level indexed allocation
 Inverted (hashed) allocation
Contiguous Allocation
+ Fast sequential access
+ Easy to compute random offsets
- External fragmentation
Threaded Allocation
 Example: FAT
+ Easy to grow files
- Internal fragmentation
- Not good for random accesses
- Unreliable
Segment-based Allocation
 A number of contiguous regions of
blocks
+ Combines strengths of contiguous and
threaded allocations
- Internal fragmentation
- Random accesses are not as fast as
contiguous allocation
Segment-Based Allocation

segment list location begin block location

end block location


i-node

begin block location

end block location


Indexed Allocation
+ Fast random
accesses
- Internal data block location

fragmentation
- Complexity in data block location

growing/shrinking i-node
indices
Multi-level Indexed Allocation
 UNIX, ext2/3/4
+ Easy to grow indices
+ Fast random accesses
- Internal fragmentation
- Complexity to reduce indirections for
small files
Multi-level Indexed Allocation

data block location data block location

12
data block location data block location

index block location

index block location

index block location

Ext2/3 i-node
Inverted Allocation
 Venti
+ Reduced storage requirement for
archives (deduplication)
- Slow random accesses (for disks)
data block location data block location

data block location data block location

i-node for file A i-node for file B


FS Performance Issues
 Disk-based FS performance limited by
 Disk seek
 Rotational latency
 Disk bandwidth
Typical Disk Overheads
 ~3 msec seek time
 ~2 msec rotational delay
 ~0.003 msec to transfer a 1-KB block
(based on 300MB/sec)
 To access a random location
 ~5 msec to access a 1-KB block
 ~ 200KB/sec effective bandwidth
How are disks improving?
 Density: 25-40% per year
 Capacity: 25% per year
 Transfer rate: 10-15% per year
 Seek time: 5% per year
 All slower than processor speed
increases
The Disk/Processor Gap
 Since aggregate CPU processing cycles
double every 2-3 years
 And disk access times half every 10-20
years
 CPUs are waiting longer and longer for
data from disk
 Important for OS to cover this gap
Disk Usage Patterns
 57% of disk accesses are writes
 Optimizing writes is a very good idea
 18-33% of reads are sequential
 Read-ahead of blocks likely to win
Disk Usage Patterns (2)
 8-12% of writes are sequential
 Perhaps not worthwhile to focus on
optimizing sequential writes
 50-75% of all I/Os are synchronous
 Keeping files consistent is expensive
 67-78% of writes are to metadata
 Need to optimize metadata writes
Disk Usage Patterns (3)
 13-42% of total disk access for user I/O
 Focusing on user patterns isn’t enough
 10-18% of writes are to previously
written block
 Savings possible by clever delay of writes
What Can the OS Do?
 Minimize amount of disk accesses
 Improve locality on disk
 Maximize size of data transfers
 Fetch from multiple disks in parallel
Minimizing Disk Access
 Avoid disk accesses when possible
 Use caching (LRU) to hold file blocks in
memory
 Generally used for all I/Os, not just disk
 Effect: decreases latency by removing
the relatively slow disk from the path
Buffer Cache Design Factors
 Most files are small
 Large files can be very large
 User access is bursty
 70-90% of accesses are sequential
 75% of files are open < ¼ second
 65-80% of files live < 30 seconds
Implications
 Design for holding small files
 Read-ahead is good for sequential
accesses
 Read blocks that are likely to be used later
 During times where disk would otherwise
be idle
Pros/Cons of Read-ahead
+ Very good for sequential access of
large files (e.g., executables)
+ Allows immediate satisfaction of disk
requests
- Contend memory with LRU caching
- Extra OS complexity
Buffering Writes
 Buffer writes so that they need not be
written to disk immediately
 Reducing latency on writes
 But buffered writes are asynchronous
 Potential cache consistency and crash
problems
 Some systems make certain critical
writes synchronously
Should We Buffer Writes?
 Good for short-lived files
 But danger of losing data in face of crashes
 And most short-lived files are also short in
length
 ¼ of all bytes deleted/overwritten in 30
seconds
Improved Locality
 Make sure next disk block you need is
close to the last one you got
 File layout is important here
 Ordering of accesses in controller helps
 Effect: Less seek time and rotational
latency
Maximizing Data Transfers
 Transfer big blocks or multiple blocks
on one read
 Readahead is one good method here
 Effect: Increase disk bandwidth and
reduce the number of disk I/Os
Use Multiple Disks in Parallel
 Multiprogramming can cause some of
this automatically
 Use of disk arrays can parallelize even a
single process’ access
 At the cost of extra complexity
 Effect: Increase disk bandwidth

You might also like