XFS

Extents File System

XFS is a high-performance 64-bit journaling file system created by Silicon Graphics(SGI) in 1993. The file system was ported to the Linux kernel in 2001. As of 2014, XFS is supported by most Linux distributions, some of which use it as the default file system.

Major features:

  • Capacity - 64-bit file system supports a maximum file system size of 8 exbibytes minus one byte.
  • Journaling
  • Allocation groups
  • Striped allocation
  • Extent based allocation
  • Variable block sizes
  • Delayed allocation
  • Sparse files
  • Extended attributes
  • Direct I/O
  • Guaranteed-rate I/O
  • DMAPI
  • Snapshots
  • Online defragmentation
  • Online resizing
  • Native backup/restore utilities
  • Atomic disk quotas

XFS excels in the execution of parallel input/output (I/O) operations due to its design, which is based on allocation groups. XFS enables extreme scalability of I/O threads, file system bandwidth, and size of files and of the file system itself when spanning multiple physical storage devices.

XFS ensures the consistency of data by employing metadata journaling and supporting write barriers. Space allocation is performed via extents with data structures stored in B+ trees, improving the overall performance of the file system, especially when handling large files.

Delayed allocation assists in the prevention of file system fragmentation; online defragmentation is also supported. A feature unique to XFS is the pre-allocation of I/O bandwidth at a pre-determined rate, this is suitable for many real-time applications.