Ext4 Design
From Ext4
(Difference between revisions)
(New page: == Motivation for ext4 == === Ext3: default filesystem for many users, Reputation of dependability & compatibility === === Scaling up to support large filesystems === ==== Storage advan...) |
|||
Line 6: | Line 6: | ||
=== Scaling up to support large filesystems === | === Scaling up to support large filesystems === | ||
==== Storage advancements ==== | ==== Storage advancements ==== | ||
− | ====Increasing data storage requirements | + | ====Increasing data storage requirements==== |
− | + | === Features requiring on-disk format change=== | |
− | + | ||
− | + | ||
nanosec timestamps, fast EA, preallocation | nanosec timestamps, fast EA, preallocation | ||
− | + | === Reliability wrt on-disk corruption=== | |
− | + | ||
− | + | ||
− | + | ||
+ | <pre> | ||
/* | /* | ||
* This is the extent on-disk structure. | * This is the extent on-disk structure. | ||
Line 39: | Line 35: | ||
__u16 ei_unused; | __u16 ei_unused; | ||
}; | }; | ||
+ | </pre> |
Revision as of 16:51, 1 April 2008
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; };