CSE 306: Opera.ng Systems
Fast File System
Don Porter
1
Fast File System Don Porter 1 CSE 306: Opera.ng Systems How to - - PowerPoint PPT Presentation
CSE 306: Opera.ng Systems Fast File System Don Porter 1 CSE 306: Opera.ng Systems How to place a file system on disk? Lets assume we have the following: Super block (allocaCon bitmap, FS-level metadata) Inodes (file-level
CSE 306: Opera.ng Systems
1
CSE 306: Opera.ng Systems
– Super block (allocaCon bitmap, FS-level metadata) – Inodes (file-level metadata) – Data blocks
2
CSE 306: Opera.ng Systems
3
Super- block Inodes Data DISKSZ
CSE 306: Opera.ng Systems
4
Super- block Inodes Data DISKSZ Head
CSE 306: Opera.ng Systems
5
CSE 306: Opera.ng Systems
– Some data replicated (good for crash tolerance) – Some data distributed (free block bitmap)
6
S Ino des Data DISKSZ S Ino des Data S Ino des Data
CSE 306: Opera.ng Systems
– Average case: Inode + data relaCvely close
– Put things together that are accessed together – How?
7
S Ino des Data DISKSZ S Ino des Data S Ino des Data
CSE 306: Opera.ng Systems
– New directories placed in least-uClized cylinder group
– Blocks of files should be allocated in same group as inode – Place files in same directory in same group
8
CSE 306: Opera.ng Systems
– OpCon 1: Fill up 1+ enCre block groups (best fit)
– Degenerate case: only a few blocks free in each group
– OpCon 2: Spread data across many block groups (worst fit)
9
CSE 306: Opera.ng Systems
– Let’s say 10 ms on a current HDD
– Let’s say 125 MB/s on a current HDD
10
CSE 306: Opera.ng Systems
– I.e., we want to spend 10 ms in transfer Cme
11
CSE 306: Opera.ng Systems
– Idea: pack mulCple small files into one 1.25 MB chunk
– Approach: load balance across block groups – No good soluCon when disk is nearly full
12
CSE 306: Opera.ng Systems
– Change the pointer from name to inode
– Create in one block group – Rename to directory in a different block group – Directory contents no longer in same group
13
CSE 306: Opera.ng Systems
– Live with it (one of several was a file system ages) – Move the data (slow):
14
CSE 306: Opera.ng Systems
– Ext* family on Linux – FFS sCll used in BSD
– Block/cylinder groups – Data placement heurisCcs – AmorCzing seeks
15