Features/Ext4

= ext4 filesystem =

Summary
Add ext4 preview support to Fedora

Owner

 * Name: EricSandeen

Current status

 * Targeted release: Fedora 9
 * Last updated: 2008-04-07
 * Percentage of completion: 100% (a devel version of ext4 exists in F9 today, anaconda can install onto ext4, and an extents-aware e2fsprogs will be available post-GA)
 * Beta installer can install onto an ext4dev root fs (see FedoraExt4 for caveats and details)
 * e2fsprogs creates 256-byte inodes by default both for ext3 and ext4, to ease later migration
 * grub handles these 256-byte inode systems (in ext3 format, not ext4 format, yet)
 * blkid recognizes ext4(dev) filesystems
 * udev already knows about ext4 fs type
 * the file utility recognizes ext4(dev) devices and filesystem images
 * still no full e2fsprogs support - will not be ready by GA, will update some time post-GA
 * e2fsprogs support for ext4 will hopefully appear around ... a future post-GA date.
 * Full-blown migration tool will not be available for F9
 * system-config-lvm needs to know about ext4; bug 432065 has a patch.
 * Several testers from fedora-devel have done ext4 root fs installs without major incident thus far.

Detailed Description
The ext4 filesystem is the evolution of ext3 - more scalable and better performing, thanks to a new on-disk extent format and new allocator heuristics. New features include:


 * Extent-based disk format
 * 48-bit block numbers
 * Multiblock Allocation
 * Delayed Allocation (not in initial release)
 * Break 32000 subdirectory limit
 * Directory Inodes reservation
 * Nanosecond timestamps
 * Inode version on disk
 * Uninitialized groups (not in initial release)
 * Journal checksumming
 * Persistent preallocation
 * Online Defragmentation (not in initial release)

These features are in various states of completion today. Fedora 9 has a preview of ext4; the installer will allow users to install onto an ext4 filesystem by adding "ext4" to the installer boot commandline, and choosing custom partitioning.

Note that admin tools (e2fsprogs) will not fully support ext4 when Fedora 9 is released, so this is still for testing/preview.

More information is available on the ext4 wiki

Benefit to Fedora
The ability to upgrade existing ext3 filesystems to the more scalable and better-performing ext4.

Scope
An incomplete version of ext4dev is already in the current F9-devel kernel. Completing this feature will mean getting pending patches from the ext4 patch queue upstream and into the Fedora kernel.

e2fsprogs must also be updated to understand the new on-disk format. ext4 filesystems can be created & tested today if simply made with 256-byte inodes, via the existing -I 256 option, and the -E test_fs option to allow mounting as ext4dev. However, tools such as fsck will not work with the new format in the currently released e2fsprogs.

anaconda will require work to allow creation of new ext4 filesystems, and to upgrade existing ext3 filesystems if desired during an OS upgrade.

Other system utilities, such as file, udev, blkid, system-config-lvm will require changes. All but the last seem to be in good shape now; the last has a bug filed, with a patch provided.

Test Plan
TBD. Need to test both fresh ext4 filesystems, and migrated existing ext3 filesystems. Early testing requests were sent to fedora-devel, with some takers, and no problem reports thus far.

User Experience
Should be seamless. Users should not notice any problems with the new filesystem, other than it is bigger/better/faster/more. In reality, this is a new filesystem, so reasonable caution is advised.

Dependencies
Updated kernel, e2fsprogs, and anaconda packages. e2fsprogs is lagging; it has some ext4-related updates but does not have full ext4 support as of F9 GA.

Contingency Plan
Fallback: do not release ext4, continue using existing filesystem options. Or, intermediate fallback: allow ext4 root installs only with "ext4" on commandline; ship updated e2fsprogs post-GA.

This latter option is what became reality.

Documentation
ext4 wiki, kernel Documentation/filesystems/ext4.txt, e2fsprogs man pages. Fedora-specific caveats etc at FedoraExt4.

Release Notes
Fedora 9 will ship without a fully ext4-compatible version of e2fsprogs. However, the shipped e2fsprogs version can create filesytems mountable by ext4, and the installer will allow ext4 installs or ext3 to ext4 upgrade migration if the string "ext4" is passed on the installer commandline. Because ext4 is still a very new filesystem, reasonable caution is advised. It is planned that a fully ext4-capable e2fsprogs will be available via updates in the future.