From Ext4
Revision as of 18:11, 11 October 2013 by Djwong (Talk | contribs)

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


The Bigalloc Feature


The bigalloc feature (EXT4_FEATURE_RO_COMPAT_BIGALLOC) changes ext4 to use clustered allocation, so that each bit in the ext4 block allocation bitmap addresses a power of two number of blocks. For example, if the file system is mainly going to be storing large files in the 4-32 megabyte range, it might make sense to set a cluster size of 1 megabyte. This means that each bit in the block allocation bitmap now addresses 256 4k blocks. This shrinks the total size of the block allocation bitmaps for a 2T file system from 64 megabytes to 256 kilobytes. It also means that a block group addresses 32 gigabytes instead of 128 megabytes, also shrinking the amount of file system overhead for metadata.

Kernel Support

The bigalloc feature first appeared in the v3.2 kernel. As of this writing (in the v3.7 kernel) bigalloc still has some problems if the delayed allocation is enabled, especially if the file system is close to full.

E2fsprogs Support

The bigalloc feature was first supported in e2fsprogs 1.42, although there are bug fixes which are only present in 1.42.7, users who wish to experiment with bigalloc are strongly suggested to upgrade to the latest e2fsprogs 1.42.x maintenance release. Resizing of bigalloc file systems (both online and off-line resize) has not been extensively tested so users are strongly encouraged to be careful.

As of October 2013, anyone taking the huge risk of running resize with bigalloc should run e2fsck -fy afterwards.

Personal tools