Extent (file systems)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

An extent is a contiguous area of storage reserved for a file in a file system, represented as a range. A file can consist of zero or more extents; one file fragment requires one extent. The direct benefit is in storing each range compactly as two numbers, instead of canonically storing every block number in the range.[1] Also extent allocation will result in much less file fragmentation.

Extent-based file systems can also eliminate most of the metadata overhead of large files that would traditionally be taken up by the block-allocation tree. Because the savings are small compared to the amount of stored data (for all file sizes in general) but make up a large portion of the metadata (for large files), the benefits in storage efficiency and performance are slight,[2] whereas the reduction in metadata is significant and reduces exposure to filesystem corruption[citation needed] as one bad sector in the block-allocation tree causes much greater data loss than one bad sector in stored data.

In order to resist fragmentation, several extent-based file systems do allocate-on-flush. Many modern fault-tolerant file systems also do copy-on-write, although that increases fragmentation. As a similar design, the CP/M file system uses extents as well, but those do not correspond to the definition given above. CP/M's extents appear contiguously as a single block in the combined directory/allocation table, and they do not necessarily correspond to a contiguous data area on disk.


The systems supporting filesystem extents include the following:

See also[edit]


  1. ^ "Understanding Ext4 (part1): Extents". 2010-12-20. Retrieved 2015-02-02. What's really a departure for EXT4 however, is the use of extents rather than the old, inefficient indirect block mechanism used by earlier Unix file systems (e.g. EXT2/EXT3) for tracking file content. Extents are similar to cluster runs in the NTFS file system; essentially, they specify an initial block address and the number of blocks that make up the extent. A file that is fragmented will have multiple extents, but EXT4 tries very hard to keep files contiguous. 
  2. ^ "Ext4 Disk Layout". 2015-01-26. Retrieved 2015-02-02. If flex_bg is enabled, it is possible to allocate very large files with a single extent, at a considerable reduction in metadata block use, and some improvement in disk efficiency. 
  3. ^ "Understanding Pages and Extents". msdn.microsoft.com. Retrieved 2014-08-14. 

External links[edit]