• No results found

Main Points. File layout Directory layout

N/A
N/A
Protected

Academic year: 2022

Share "Main Points. File layout Directory layout"

Copied!
33
0
0

Loading.... (view fulltext now)

Full text

(1)

File  Systems  

(2)

Main  Points  

•  File  layout  

•  Directory  layout  

(3)

File  System  Design  Constraints  

•  For  small  files:  

– Small  blocks  for  storage  efficiency  

– Files  used  together  should  be  stored  together  

•  For  large  files:  

– Con>guous  alloca>on  for  sequen>al  access   – Efficient  lookup  for  random  access  

•  May  not  know  at  file  crea>on  

– Whether  file  will  become  small  or  large  

(4)

File  System  Design  

•  Data  structures  

– Directories:  file  name  -­‐>  file  metadata  

•  Store  directories  as  files  

– File  metadata:  how  to  find  file  data  blocks   – Free  map:  list  of  free  disk  blocks  

•  How  do  we  organize  these  data  structures?  

– Device  has  non-­‐uniform  performance  

(5)

Design  Challenges  

•  Index  structure  

–  How  do  we  locate  the  blocks  of  a  file?  

•  Index  granularity  

–  What  block  size  do  we  use?  

•  Free  space  

–  How  do  we  find  unused  blocks  on  disk?  

•  Locality  

–  How  do  we  preserve  spa>al  locality?  

•  Reliability  

–  What  if  machine  crashes  in  middle  of  a  file  system  op?  

(6)

File  System  Design  Op>ons  

FAT   FFS   NTFS  

Index  

structure   Linked  list   Tree  

(fixed,  assym)   Tree   (dynamic)  

granularity   block   block   extent  

free  space  

alloca>on   FAT  array   Bitmap   (fixed   loca>on)  

Bitmap     (file)   Locality   defragmenta>on   Block  groups  

+  reserve   space  

Extents   Best  fit   defrag  

(7)

Named  Data  in  a  File  System  

file name

offset directory file number

offset storage

block index

structure

(8)

MicrosoW  File  Alloca>on  Table  (FAT)  

•  Linked  list  index  structure  

– Simple,  easy  to  implement  

– S>ll  widely  used  (e.g.,  thumb  drives)  

•  File  table:  

– Linear  map  of  all  blocks  on  disk   – Each  file  a  linked  list  of  blocks  

(9)

FAT  

file 9 block 3

file 9 block 0 file 9 block 1 file 9 block 2 file 12 block 0

file 12 block 1 file 9 block 4 01

23 45 67 89 1011 1213 1415 1617 1819 20

MFT Data Blocks

(10)

FAT  

•  Pros:  

–  Easy  to  find  free  block   –  Easy  to  append  to  a  file   –  Easy  to  delete  a  file  

•  Cons:  

–  Small  file  access  is  slow  

–  Random  access  is  very  slow   –  Fragmenta>on  

•  File  blocks  for  a  given  file  may  be  scaYered  

•  Files  in  the  same  directory  may  be  scaYered  

•  Problem  becomes  worse  as  disk  fills  

(11)

Berkeley  UNIX  FFS  (Fast  File  System)  

•  inode  table  

– Analogous  to  FAT  table  

•  inode  

– Metadata  

•  File  owner,  access  permissions,  access  >mes,  …  

– Set  of  12  data  pointers  

– With  4KB  blocks  =>  max  size  of  48KB  files  

(12)

FFS  inode  

•  Metadata  

– File  owner,  access  permissions,  access  >mes,  …  

•  Set  of  12  data  pointers  

– With  4KB  blocks  =>  max  size  of  48KB  files  

•  Indirect  block  pointer  

– pointer  to  disk  block  of  data  pointers  

•  Indirect  block:  1K  data  blocks  =>  4MB  (+48KB)  

(13)

FFS  inode  

•  Metadata  

–  File  owner,  access  permissions,  access  >mes,  …  

•  Set  of  12  data  pointers  

–  With  4KB  blocks  =>  max  size  of  48KB  

•  Indirect  block  pointer  

–  pointer  to  disk  block  of  data  pointers  

–  4KB  block  size  =>  1K  data  blocks  =>  4MB  

•  Doubly  indirect  block  pointer  

–  Doubly  indirect  block  =>  1K  indirect  blocks   –  4GB  (+  4MB  +  48KB)  

(14)

FFS  inode  

•  Metadata  

–  File  owner,  access  permissions,  access  >mes,  …  

•  Set  of  12  data  pointers  

–  With  4KB  blocks  =>  max  size  of  48KB  

•  Indirect  block  pointer  

–  pointer  to  disk  block  of  data  pointers   –  4KB  block  size  =>  1K  data  blocks  =>  4MB  

•  Doubly  indirect  block  pointer  

–  Doubly  indirect  block  =>  1K  indirect  blocks   –  4GB  (+  4MB  +  48KB)  

•  Triply  indirect  block  pointer  

–  Triply  indirect  block  =>  1K  doubly  indirect  blocks   –  4TB  (+  4GB  +  4MB  +  48KB)  

(15)

Inode Array

File Metadata

Indirect Pointer Dbl. Indirect Ptr.

Tripl. Indirect Ptr.

Inode

Data Blocks Indirect

Blocks Double

Indirect Blocks Triple

Indirect Blocks

DP Direct Pointer

DP DP DP DP DP DP DP DP DP Direct Pointer

(16)

FFS  Asymmetric  Tree  

•  Small  files:  shallow  tree  

– Efficient  storage  for  small  files  

•  Large  files:  deep  tree  

– Efficient  lookup  for  random  access  in  large  files  

•  Sparse  files:  only  fill  pointers  if  needed  

(17)

FFS  Locality  

•  Block  group  alloca>on  

– Block  group  is  a  set  of  nearby  cylinders  

– Files  in  same  directory  located  in  same  group   – Subdirectories  located  in  different  block  groups  

•  inode  table  spread  throughout  disk  

– inodes,  bitmap  near  file  blocks  

•  First  fit  alloca>on  

– Small  files  fragmented,  large  files  con>guous    

(18)

Free Space Bitmap Free S

pace B itmap

Inodes Data Blo

cks fo r files in

dire ctorie

s /b, /a/g, /z

Free S paapce Bitm od In es

Data Blocks for files in dire/p ct /aoriend s a/dc,/q, /

Block Group 0 Block Group 1 Block Group 2

Inodes

Data Blocks for files in directories /a, /d, and/c /b

(19)

FFS  First  Fit  Block  Alloca>on  

...

In-Use Block Start of

Block Group

Free Block

(20)

FFS  First  Fit  Block  Alloca>on  

Start of

...

Block Group

Write Two Block File

(21)

FFS  First  Fit  Block  Alloca>on  

Start of

...

Block Group

Write Large File

(22)

FFS  

•  Pros  

– Efficient  storage  for  both  small  and  large  files   – Locality  for  both  small  and  large  files  

– Locality  for  metadata  and  data  

•  Cons  

– Inefficient  for  >ny  files  (a  1  byte  file  requires  both  an   inode  and  a  data  block)  

– Inefficient  encoding  when  file  is  mostly  con>guous  on   disk  (no  equivalent  to  superpages)  

– Need  to  reserve  10-­‐20%  of  free  space  to  prevent   fragmenta>on  

(23)

NTFS  

•  Master  File  Table  

– Flexible  1KB  storage  for  metadata  and  data  

•  Extents  

– Block  pointers  cover  runs  of  blocks   – Similar  approach  in  linux  (ext4)  

– File  create  can  provide  hint  as  to  size  of  file  

•  Journalling  for  reliability  

– Next  chapter  

(24)

NTFS  Small  File  

Std. Info. File Name Data (resident) (free)

MFT Record (small file) Master File Table

(25)

NTFS  Medium-­‐Sized  File  

MFT

MFT Record

Start

Length

Start

Length

Std. Info. File Name Data (nonresident) (free)

Data ExtentData Extent

(26)

NTFS  Indirect  Block  

MFT

MFT Record (part 2)

Std. Info. Data (nonresident) (free) MFT Record

(part 1)

Std. Info. Attr.list File Name Data (nonresident)

Data Extent Data Extent Data Extent Data Extent

Data Extent

(27)

MFT Record (normal file) MFT

Std. Info. Data (nonresident)

MFT Record (small file)

Std. Info. Data (resident)

MFT Record

(big/fragmented file)

Std. Info. Attr.list Data (nonresident)

Data (nonresident)

Data (nonresident)

Data (nonresident)

MFT

MFT Record

(huge/badly-fragmented file)

Std. Info. Attr.list (nonresident)

Data (nonresident)

Data (nonresident)

Data (nonresident)

Data (nonresident)

Extent with part of attribute list Extent with part of attribute list

Data (nonresident)

(28)

Named  Data  in  a  File  System  

file name

offset directory file number

offset storage

block index

structure

(29)

Directories  Are  Files  

music 320 work 219 foo.txt 871

(30)

Recursive  Filename  Lookup  

music 320 work 219 foo.txt 871 File 830

/home/tom mike 682 ada 818 tom 830 File 158

/home

File 871 /home/tom/foo.txt bin 737

usr 924 home 158 File 2

/

The quick brown fox jumped over the lazy dog.

(31)

Directory  Layout  

File 830 /home/tom

End of File

Name File Number Next

. 830

..

158

music 320

work

219 Free Space

foo.txt

871 Free Space

Directory  stored  as  a  file  

Linear  search  to  find  filename  (small  directories)  

(32)

Large  Directories:  B  Trees  

Search for Hash (foo.txt) = 0x30

Before Child Pointer

240 510 730 980 Root

Hash Entry Pointer

15 30 44 58

Leaf

. 830

..

158

30 foo.txt

871

music 320

...

...

work 219

code 3

bin 014

...

...

test 324 Leaf

Hash Number Name File Number

Before Child Pointer

58 121 180 240 Child

780 841 930 980 Child

(33)

Large  Directories:  Layout  

Directory Entries B+Tree Nodes

... work

219 music ...

320

... Root Child Leaf Leaf

Child ...

Name File Number

File Containing Directory

References

Related documents

• Prior to Windows 7 and Windows Server 2008 R2, certain file system metadata associated with user data files (for example, reparse point or Encrypting File System (EFS) data)

deo rápido se ha realizado para disponer de información y datos que no son públicos, pero que pueden ser muy útiles para establecer el perfil de bloguero en Trabajo Social en

The project is focused on complex data representation and manipulation which will consist of developing an appropriate graphical user interface tool to interpret a

impersonals, the Nehan language of northern Bougainville uses non-referential actor indexing for middle voice-like constructions, undergoer promotion, and—perhaps

This transcription is for educational purposes only and matches a DVD available from Hudson Music, by Thomas Lang, called Creative Control.. This transcription is not for sale and

In this article we introduce a FCT stabilized Radial Basis Function (RBF)-Finite Dif- ference (FD) method for the numerical solution of convection dominated problems.. The

the retention of his seat in the Governor-General’s Council; and the 2 command of the Bengal army to he placed under two Lieutenant-Generals. The Secretary of State asked

Having to make a decision about which connection to revise or add creates an authentic need for effective criteria and supporting evidence to distinguish among ideas in