Extent (file systems)
An extent is a contiguous area of storage in a computer file system, reserved for a file. When starting to write to a file, a whole extent is allocated. When writing to the file again, possibly after doing other write operations, the data continues where the previous write left off. This reduces or eliminates file fragmentation.
Extents are supported in:
- Macintosh Hierarchical File System and HFS Plus
- SGI XFS (Designed to be an extent based file system)
- Reiser4 (in "extents" mode)
- NTFS (via the preallocation API, namely SetEndOfFile and SetFileValidData functions)
- Universal Disk Format (UDF)
- VERITAS File System (via the preallocation API and CLI).
- Linux ext4 - (enabled by default since kernel 2.6.23)
- OS/2 and eComStation HPFS
- HP Multi-Programming Executive file system
- JFS for AIX, OS/2/eComStation and Linux
- BFS for BeOS, Zeta and Haiku
- The SINTRAN III file system
The CP/M file system uses extents as well, but those don't correspond to the definition given above. CP/M's extents are contiguous only in the sense that they appear as a single block in the combined directory/allocation table; they are not necessarily contiguous on the data area of the disk.
Note that a file system can be extent-based (i.e., addressing via extents rather than in single blocks) without requiring that each file be limited to a single, contiguous extent.
See also
External links
- Getting to know the Solaris filesystem, Part 1: Allocation and storage strategy - comparison of block-based and extent-based allocation