ext4 bigalloc
Ext4 bigalloc allocates space in power-of-two clusters of filesystem blocks, with each allocation-bitmap bit tracking a cluster.
Cluster size and filesystem block size are different parameters. A larger cluster reduces the bitmap bits needed to describe a given address space, while making allocation coarser. This is not a change to the logical sector size reported by a drive. [1]
Mke2fs selects block size with -b and cluster size with -C; -C requires bigalloc, and bigalloc requires extents. Record both the explicit options and the resulting feature set, rather than assuming defaults are unchanged across systems. [2] [3]
Hesela's offline e2fsprogs 1.47.0 controls used 4 KiB blocks in every image. A dense 65,537-byte file had 68 KiB of inode-reported allocation without bigalloc, versus 128 KiB with 64 KiB clusters. This is a userspace image observation, not a kernel allocation or performance benchmark. [4]
Relations
Limitations
- Coarser allocation can increase slack for small, non-inline files; bitmap savings are not total-filesystem savings. [1]
- Successful image creation does not validate every kernel, repair, resize or defragmentation workflow. [3]
Citations
- Linux kernel documentation: ext4 bigalloc and clustered allocation
- e2fsprogs 1.47.0 mke2fs(8): block size, cluster size and directory import
- e2fsprogs 1.47.0 ext4(5): bigalloc requires extents
- Hesela: ext4 bigalloc offline image controls, observations and boundaries
Sources & caveats
- Format semantics from kernel documentation and versioned e2fsprogs manuals; original control observations are separately identified.