New ext4 features
From Ext4
(Difference between revisions)
(→Delayed Allocation) |
(update with recent features) |
||
(7 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
+ | == Introduction == | ||
+ | |||
+ | This page contains information about new ext4 features which are currently under development. | ||
+ | |||
+ | For a description of Ext4 features as they appeared in the original 2.6.28 kernel when ext4 was first released, please see the [http://kernelnewbies.org/Ext4 Ext4 Kernelnewbies article]. | ||
+ | |||
+ | == Currently being worked on == | ||
+ | |||
+ | === Online Directory Shrink === | ||
+ | |||
+ | * Primary developer: Harshad Shirwadkar | ||
+ | * Status: In progress | ||
+ | * Latest patches: https://lore.kernel.org/linux-ext4/20190824023110.GB19348@mit.edu/T/#t | ||
+ | * e2fsprogs changes: Should not be needed with large directory support | ||
+ | * Outstanding issues: only shrinks if last block in directory is empty, needs to handle arbitrary empty blocks | ||
+ | |||
+ | == Done == | ||
+ | |||
=== Multiblock Allocation === | === Multiblock Allocation === | ||
* Primary developer: Alex Tomas | * Primary developer: Alex Tomas | ||
− | * Status: | + | * Status: Done |
* Changes on-disk format: No | * Changes on-disk format: No | ||
− | |||
* e2fsprogs changes: No | * e2fsprogs changes: No | ||
− | * | + | * Outstanding issues: None |
− | === Delayed Allocation === | + | === [[DelayedAllocation|Delayed Allocation]] === |
* Primary developer: Alex Tomas | * Primary developer: Alex Tomas | ||
− | * Status: | + | * Status: Done |
* Changes on-disk format: No | * Changes on-disk format: No | ||
− | |||
* e2fsprogs changes: No | * e2fsprogs changes: No | ||
− | * | + | * Outstanding issues: None |
− | === | + | === Exceed 32000 subdirectory limit === |
− | * Primary developer: Andreas | + | * Primary developer: Andreas Dilger |
* Status: Done | * Status: Done | ||
* Changes on-disk format: Yes | * Changes on-disk format: Yes | ||
− | |||
* e2fsprogs changes: done | * e2fsprogs changes: done | ||
− | * | + | * Outstanding issues: None |
=== directory Inodes reservation === | === directory Inodes reservation === | ||
Line 31: | Line 46: | ||
* Status: Patch available | * Status: Patch available | ||
* Changes on-disk format: No | * Changes on-disk format: No | ||
− | |||
* e2fsprogs changes: Needed | * e2fsprogs changes: Needed | ||
− | * | + | * Outstanding issues: |
=== nsec timestamps === | === nsec timestamps === | ||
− | * Primary developer: Andreas | + | * Primary developer: Andreas Dilger |
* Status: Done | * Status: Done | ||
* Change on-disk format: Yes | * Change on-disk format: Yes | ||
− | |||
* e2fsprogs changes: Done | * e2fsprogs changes: Done | ||
− | * | + | * Outstanding issues: |
=== inode version on disk === | === inode version on disk === | ||
Line 49: | Line 62: | ||
* Status: Done | * Status: Done | ||
* Change on-disk format: Yes | * Change on-disk format: Yes | ||
− | |||
* e2fsprogs changes: None | * e2fsprogs changes: None | ||
− | * | + | * Outstanding issues: None |
− | === uninitialized groups === | + | === uninitialized block groups === |
* Primary developer: Andreas Dilger | * Primary developer: Andreas Dilger | ||
* Status: Done | * Status: Done | ||
* Change on-disk format: Yes | * Change on-disk format: Yes | ||
− | |||
* e2fsprogs changes: Done | * e2fsprogs changes: Done | ||
− | * | + | * Outstanding issues: None |
=== journal checksumming === | === journal checksumming === | ||
− | * Primary developer: | + | * Primary developer: Darrick Wong |
* Status: Prototype available | * Status: Prototype available | ||
* Change on-disk format: Yes | * Change on-disk format: Yes | ||
− | + | * e2fsprogs changes: Done | |
− | * e2fsprogs changes: | + | * Outstanding issues: None |
− | * | + | |
− | === persistent preallocation === | + | === persistent preallocation (fallocate) === |
* Primary developer: Amit Arora, Suparna | * Primary developer: Amit Arora, Suparna | ||
− | * Status: | + | * Status: Done |
* Change on-disk format: Yes | * Change on-disk format: Yes | ||
− | |||
* e2fsprogs changes: complete | * e2fsprogs changes: complete | ||
− | * | + | * Outstanding issues: |
=== Online Defragmentation === | === Online Defragmentation === | ||
* Primary developer: Takashi Sato | * Primary developer: Takashi Sato | ||
− | * Status: | + | * Status: Done |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
* Related discussions | * Related discussions | ||
ext3 online defrag: | ext3 online defrag: | ||
Line 93: | Line 98: | ||
* Dependencies: Multiple block allocation from Alex Thomas | * Dependencies: Multiple block allocation from Alex Thomas | ||
* Change on-disk format: No | * Change on-disk format: No | ||
− | |||
* e2fsprogs changes: No | * e2fsprogs changes: No | ||
− | * | + | * Outstanding issues: |
− | + | ||
− | + | ||
− | * Primary | + | === First Class [[Quota]] Support === |
− | * | + | |
− | * | + | * Primary developer: Aditya Kali |
− | * | + | * Status: Done |
− | * e2fsprogs changes: | + | * Design document: [[Design For 1st Class Quota in Ext4]] |
− | * | + | * e2fsprogs changes: Done |
+ | * Outstanding issues: None | ||
+ | |||
+ | === Big Allocation Blocks === | ||
+ | |||
+ | * Primary developer: Theodore Ts'o | ||
+ | * Status: Done | ||
+ | * Design document: [[Design for Big Allocation Blocks]] | ||
+ | * e2fsprogs changes: Done | ||
+ | * Outstanding issues: None | ||
+ | |||
+ | === Metadata Checksums === | ||
+ | |||
+ | * Primary developer: Darrick J. Wong | ||
+ | * Status: Done | ||
+ | * Design document: [[Ext4_Metadata_Checksums|Design for Metadata Checksums]] | ||
+ | * e2fsprogs changes: Done | ||
+ | * Disk format change needed: Minor tweaks to existing structures. Old code will still be able to mount read-only. tune2fs/e2fsck generally can make the changes without problems. | ||
+ | * Outstanding issues: None | ||
=== Large file support === | === Large file support === | ||
* Primary Developer: Takashi Sato | * Primary Developer: Takashi Sato | ||
− | * status: | + | * status: Done |
* Change on-disk format: | * Change on-disk format: | ||
− | * | + | * e2fsprogs Changes: Done |
− | * e2fsprogs Changes: | + | * Outstanding issues: |
− | * | + | |
+ | === Large directory support === | ||
+ | |||
+ | * Primary Developer: Liang Zhen, Artem Blagodarenko | ||
+ | * status: Done | ||
+ | * Change on-disk format: increase maximum htree level to 3, allow directories over 2GB | ||
+ | * e2fsprogs Changes: Done | ||
+ | * Outstanding issues: None |
Latest revision as of 02:12, 26 August 2019
[edit] Introduction
This page contains information about new ext4 features which are currently under development.
For a description of Ext4 features as they appeared in the original 2.6.28 kernel when ext4 was first released, please see the Ext4 Kernelnewbies article.
[edit] Currently being worked on
[edit] Online Directory Shrink
- Primary developer: Harshad Shirwadkar
- Status: In progress
- Latest patches: https://lore.kernel.org/linux-ext4/20190824023110.GB19348@mit.edu/T/#t
- e2fsprogs changes: Should not be needed with large directory support
- Outstanding issues: only shrinks if last block in directory is empty, needs to handle arbitrary empty blocks
[edit] Done
[edit] Multiblock Allocation
- Primary developer: Alex Tomas
- Status: Done
- Changes on-disk format: No
- e2fsprogs changes: No
- Outstanding issues: None
[edit] Delayed Allocation
- Primary developer: Alex Tomas
- Status: Done
- Changes on-disk format: No
- e2fsprogs changes: No
- Outstanding issues: None
[edit] Exceed 32000 subdirectory limit
- Primary developer: Andreas Dilger
- Status: Done
- Changes on-disk format: Yes
- e2fsprogs changes: done
- Outstanding issues: None
[edit] directory Inodes reservation
- Primary developer: Coly
- Status: Patch available
- Changes on-disk format: No
- e2fsprogs changes: Needed
- Outstanding issues:
[edit] nsec timestamps
- Primary developer: Andreas Dilger
- Status: Done
- Change on-disk format: Yes
- e2fsprogs changes: Done
- Outstanding issues:
[edit] inode version on disk
- Primary developer: Jean-Noel Cordenner, Kalpak Shah
- Status: Done
- Change on-disk format: Yes
- e2fsprogs changes: None
- Outstanding issues: None
[edit] uninitialized block groups
- Primary developer: Andreas Dilger
- Status: Done
- Change on-disk format: Yes
- e2fsprogs changes: Done
- Outstanding issues: None
[edit] journal checksumming
- Primary developer: Darrick Wong
- Status: Prototype available
- Change on-disk format: Yes
- e2fsprogs changes: Done
- Outstanding issues: None
[edit] persistent preallocation (fallocate)
- Primary developer: Amit Arora, Suparna
- Status: Done
- Change on-disk format: Yes
- e2fsprogs changes: complete
- Outstanding issues:
[edit] Online Defragmentation
- Primary developer: Takashi Sato
- Status: Done
- Related discussions
ext3 online defrag: http://marc.theaimsgroup.com/?l=linux-fsdevel&m=116160640814410&w=2
- Dependencies: Multiple block allocation from Alex Thomas
- Change on-disk format: No
- e2fsprogs changes: No
- Outstanding issues:
[edit] First Class Quota Support
- Primary developer: Aditya Kali
- Status: Done
- Design document: Design For 1st Class Quota in Ext4
- e2fsprogs changes: Done
- Outstanding issues: None
[edit] Big Allocation Blocks
- Primary developer: Theodore Ts'o
- Status: Done
- Design document: Design for Big Allocation Blocks
- e2fsprogs changes: Done
- Outstanding issues: None
[edit] Metadata Checksums
- Primary developer: Darrick J. Wong
- Status: Done
- Design document: Design for Metadata Checksums
- e2fsprogs changes: Done
- Disk format change needed: Minor tweaks to existing structures. Old code will still be able to mount read-only. tune2fs/e2fsck generally can make the changes without problems.
- Outstanding issues: None
[edit] Large file support
- Primary Developer: Takashi Sato
- status: Done
- Change on-disk format:
- e2fsprogs Changes: Done
- Outstanding issues:
[edit] Large directory support
- Primary Developer: Liang Zhen, Artem Blagodarenko
- status: Done
- Change on-disk format: increase maximum htree level to 3, allow directories over 2GB
- e2fsprogs Changes: Done
- Outstanding issues: None