30.07.2013 Views

Development and Implementation of a File System for Gannet Virtual ...

Development and Implementation of a File System for Gannet Virtual ...

Development and Implementation of a File System for Gannet Virtual ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.4 Literature Review<br />

Having discussion regarding background knowledge about file system <strong>and</strong> the<br />

existing RAM-based file system, this sub section provides discussion regarding<br />

techniques from several file systems to represent files <strong>and</strong> directories.<br />

2.4.1 Metadata Representation <strong>of</strong> <strong>File</strong>s<br />

The design <strong>of</strong> metadata <strong>for</strong> <strong>Gannet</strong> file system is inherited from UNIX’s metadata<br />

which is represented with inode data structure (Thompson 1978, McKusick et al.<br />

1996). In recent years, inode data structure has evolved through many generations<br />

<strong>and</strong> it’s slightly different compared to the original inode design (McKusick et al.<br />

1984; Card et al. 1994).<br />

The inode <strong>for</strong> ext2 has 15 pointers used <strong>for</strong> locating the location <strong>of</strong> data blocks. The<br />

first 12 pointer point to the first 12 data blocks. After the direct data blocks are<br />

consumed, the 13 th pointer points to a single indirect block, which point to another<br />

data block that contains pointer to data block. The 14 th pointer points to a double<br />

indirect block, which in turn contain pointer to an indirect block. The 15 th pointer<br />

points to a triple indirect block, which contain pointers to double indirect blocks.<br />

Unix file system (UFS) <strong>and</strong> ext2 have 15 pointers which pointing to the location <strong>of</strong><br />

data blocks. The first 12 pointer is direct block which point to actual data block.<br />

BeFS file system has a slight different implementation <strong>of</strong> inode since it does not<br />

implement the 15 th pointer or triple indirect blocks inside the metadata. As solution<br />

to trade with triple indirect blocks, BeFS uses array <strong>of</strong> contiguous data blocks<br />

instead <strong>of</strong> a single data block (Giampaolo 1999). However, both types <strong>of</strong> metadata<br />

15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!