Ext4 Design

From Ext4
Revision as of 16:49, 1 April 2008 by Tthtlc (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


Contents

Motivation for ext4

Ext3: default filesystem for many users, Reputation of dependability & compatibility

Scaling up to support large filesystems

Storage advancements

====Increasing data storage requirements

  −
 Features requiring on-disk format change

    nanosec timestamps, fast EA, preallocation
  −
 Reliability wrt on-disk corruption


/*

* This is the extent on-disk structure.
* It's used at the bottom of the tree.
*/

struct ext4_extent {

       __le32  ee_block;       /* first logical block extent covers */
       __le16  ee_len;         /* number of blocks covered by extent */
       __le16  ee_start_hi;    /* high 16 bits of physical block */
       __le32  ee_start_lo;    /* low 32 bits of physical block */

};

/*

* This is index on-disk structure.
* It's used at all the levels except the bottom.
*/

struct ext4_extent_idx {

       __le32  ei_block;       /* index covers logical blocks from 'block' */
       __le32  ei_leaf_lo;     /* pointer to the physical block of the next *
                                * level. leaf or next index could be there */
       __le16  ei_leaf_hi;     /* high 16 bits of physical block */
       __u16   ei_unused;

};

Personal tools