Fact-checked by Grok 2 weeks ago

XFS

XFS is a high-performance, 64-bit journaling file system originally developed by Silicon Graphics, Inc. (SGI) in October 1993 for the IRIX operating system and first released in 1994, with subsequent porting to Linux kernels starting in the late 1990s to provide scalable storage solutions for large-scale computing environments. Designed for high scalability and reliability, XFS employs extent-based allocation to efficiently manage large files and directories, supporting theoretical maximum file system sizes of up to 8 exabytes (EiB) and billions of inodes through its use of B+tree structures for metadata indexing, including directories, extents, attributes, and free space. The file system divides storage into allocation groups (AGs), each up to 1 terabyte, enabling parallel operations across multiple threads and processors for improved performance in multi-user and high-throughput scenarios. Metadata journaling ensures atomic logging of changes for rapid crash recovery, while delayed logging and allocation techniques minimize write overhead by batching operations and deferring space commitments until necessary. Key features include support for variable block sizes (typically 4 KB), extended attributes with up to 64 KB values in user, trusted, or secure namespaces, and quota management via dedicated inodes with hard and soft limits for users, groups, and projects. XFS also incorporates stripe-aware allocation for optimized performance on and logical volume setups, online and resizing (expansion only, as reduction is not supported), and nanosecond timestamp precision supported since early versions, with the default relatime mount option to accuracy and . The v5 format, introduced in 3.14 (2014), added metadata checksumming with CRC32c for enhanced integrity and strengthened metadata verification; the v4 format is deprecated as of 2025, with support removal planned for September 2030. Subsequent enhancements include sparse inodes to reduce overhead (kernel 4.2, 2015), reflink for efficient and cloning (kernel 4.9, 2016), bigtime for extended timestamp ranges up to the year 2486 via 64-bit s (kernel 5.10, 2020), compatibility with zoned storage devices (kernel 6.15, 2025), and online filesystem repair capabilities. In distributions, XFS has become a default choice for data partitions in enterprise environments due to its robustness for large-scale storage, such as in 7 and later, SUSE Linux Enterprise Server, and , where it excels in workloads involving streaming, databases, and . However, its performance-oriented design can occasionally lead to "ENOSPC" (no space left) errors under heavy load despite available space, as it prioritizes delayed allocation for throughput over immediate guarantees. XFS supports subvolumes for low-latency I/O applications, using separate bitmaps and summary inodes, and remains actively maintained under the with ongoing enhancements for modern storage hardware.

History

Origins and IRIX Development

Silicon Graphics, Inc. (SGI) initiated the development of XFS in 1993 as a high-performance specifically for its operating system, aiming to succeed the earlier Extent File System (EFS). The initial design document was circulated internally in October 1993 under the provisional name "xFS: the extension of EFS," emphasizing for emerging storage demands. Core design goals centered on supporting large filesystems up to 1 terabyte on 32-bit architectures, tailored for production and workloads that required rapid handling of massive files and high concurrent I/O operations. XFS made its debut in December 1994 alongside 5.3, marking the first generation with foundational features like extent-based space allocation for efficient large-file management and metadata journaling to ensure quick from crashes. This version supported files up to 1 terabyte and directories with millions of entries, leveraging structures for operations to boost performance in I/O-intensive environments. Key early contributors at SGI included engineers Mike Holton and Raj Das, who focused on integrating XFS with IRIX's volume manager for seamless workflows. The second generation emerged in the late 1990s with 6.x releases, introducing enhancements for greater scalability, such as improved online defragmentation and resize capabilities to minimize downtime in production systems. These updates built on the initial journaling mechanism—a core reliability feature that logs metadata changes asynchronously—to better accommodate growing storage arrays in scientific simulations. Steve Lord joined the development efforts around this period, contributing to refinements that optimized XFS for 64-bit addressing introduced in 6.0. By , the third generation of XFS further advanced 64-bit capabilities, enabling support for filesystems up to 8 exabytes (EiB) and files of similar scale, aligning with SGI's push toward petabyte-scale storage for advanced rendering and computational . This evolution maintained while enhancing allocation algorithms for even larger workloads, solidifying XFS as IRIX's default filesystem through subsequent updates.

Linux Port and Evolution

Silicon Graphics Inc. (SGI) initiated the port of XFS to in late 1999 to extend its high-performance capabilities beyond and enable broader adoption through open-source collaboration. The effort culminated in the release of an initial version under the GNU General Public License (GPL) in 1999, allowing community contributions while maintaining compatibility with 's interfaces. By 2000, SGI presented the porting work at the Annual Technical Conference, highlighting adaptations to 's (VFS) layer, including modifications for multi-threaded operations and extent-based allocation inherited from . The first pre-release (version 0.9) became available in early 2001 for 2.4, marking XFS as experimental and suitable primarily for testing on high-end storage environments. XFS remained in experimental status through Linux 2.4, with full integration into the mainline kernel occurring in the 2.6 series. It was merged into the development branch leading to Linux 2.6.0 in December 2003, but achieved stable status with the release of Linux 2.6.5 in April 2004, following fixes for locking, logging, and compatibility issues. Concurrently, SGI released xfsprogs version 1.3.12 in October 2001, providing essential user-space tools for creating, repairing, and managing XFS filesystems on Linux. Key evolutions included the addition of quota support in 2004, enabling per-user and per-group disk usage limits integrated with XFS's journaling mechanism for efficient enforcement. Extended attributes, allowing metadata attachments to files and directories, were enhanced in 2005 with the attr2 on-disk format, improving scalability for security labels and custom properties. Adapting IRIX-specific features posed significant challenges during the port. Notably, the Data Migration API (DMAPI), used in for , required substantial rework to align with Linux's absence of a direct equivalent, resulting in partial on-disk support by the mid-2000s but incomplete kernel-level implementation until later efforts. These adaptations ensured XFS's core journaling and recovery mechanisms functioned reliably under Linux's scheduler and , though early versions prioritized over full feature parity. By 2007, XFS saw increased stability in environments, with tools like xfsprogs maturing to large-scale deployments. Widespread adoption in enterprise Linux distributions accelerated by 2010, driven by XFS's strengths in handling massive filesystems and high-throughput workloads. Distributions such as Server, which included XFS since version 8 in 2002, and , where it became a supported option in version 5 (2007), favored it for data centers requiring scalability beyond 100 TB. By this period, XFS powered critical storage in sectors like media rendering and scientific computing, benefiting from community contributions that refined its integration with 's evolving I/O stack.

Recent Enhancements

The XFS v5 format, introduced in 3.14 (2014), added metadata checksumming with CRC32c for enhanced integrity, enabling verification of on-disk structures to detect and mitigate corruption during reads and writes. This enhancement uses CRC32c checksums embedded in metadata blocks to ensure data consistency without requiring full filesystem shutdowns for validation. The 4.8 , released in 2016, added reverse mapping btrees to XFS, allowing the filesystem to track block ownership in reverse and detect btree corruptions by cross-referencing forward and reverse mappings during operations. This feature enhances by enabling proactive identification of inconsistencies, such as orphaned blocks or incorrect extent associations, which was particularly useful for large-scale deployments where manual repairs were previously disruptive. With 5.1 in 2019, XFS gained reflink support, implementing semantics for efficient file deduplication and cloning, where multiple files can share identical data blocks until modifications trigger a write to new extents. This allows tools like cp --reflink to create instant copies with minimal overhead, integrating Btrfs-like deduplication capabilities into XFS without full functionality, thereby reducing storage redundancy in virtualized or environments. Linux 5.10, released in 2020, implemented "bigtime" timestamps in XFS, extending inode precision to 64-bit s and supporting dates from 1901 to 2554, effectively deferring the for the filesystem. This refactor of encoding ensures compatibility with modern hardware clocks while maintaining for older filesystems, providing nanosecond granularity for access, modification, and change times without overflow risks until well beyond contemporary needs. The Linux 6.x series, spanning 2022 to 2025, introduced online scrub and repair tools in kernel 6.10, enabling mounted filesystems to detect and fix metadata corruptions—such as rebuilding allocation btrees or directory entries—without unmounting, using the xfs_scrub utility to invoke kernel-level repairs. Concurrently, improvements to online resize operations extended practical support to 8 EiB volumes, leveraging 64-bit addressing for seamless expansion on high-capacity NVMe arrays while preserving performance. As of 2025, XFS remains under active maintenance in 6.11 and later versions, with ongoing optimizations for NVMe integration, including atomic write support for untorn I/O, and zoned storage compatibility introduced in 6.15 to handle SMR drives and ZNS SSDs via device extensions. These efforts emphasize reliability on flash-based hardware, positioning XFS for enterprise-scale deployments in and AI workloads.

Design Principles

On-Disk Layout

The XFS filesystem employs a structured on-disk optimized for high-performance, scalable , utilizing extent-based allocation and B+ trees for management. This divides the filesystem into independent units to facilitate parallel operations and includes redundant for reliability. The layout supports block sizes ranging from 512 bytes to 64 , which must be sector-aligned to ensure with underlying devices. The serves as the primary structure, located at offset 0 in the filesystem (block 0 of allocation group 0), and occupies one sector. It contains essential global information, including the filesystem UUID, , number, total data blocks, and free space counts. For , a secondary superblock resides at the start of each allocation group, enabling tools like xfs_repair to recover from primary superblock corruption. The superblock's magic number is 0x58465342 ("XFSB"), and in 5, it incorporates fields for advanced features such as CRCs. To promote scalability and parallelism, the filesystem is partitioned into allocation groups (AGs), which function as self-contained units typically sized up to 1 TB each. Each AG maintains its own superblock, along with B+ trees for free space management (via the AG Free Space structure, tracking blocks by number and size) and inode allocation (via the AG Inode structure). This division allows independent handling of inodes and free space within each AG, reducing contention in multi-threaded environments while the primary AG (AG 0) holds global filesystem metadata. Inodes in XFS represent files, directories, and other objects, with a variable size that defaults to 256 bytes in version 4 but requires a minimum of 512 bytes in version 5, extending up to 2048 bytes depending on configuration. Each inode includes fixed fields for extents (describing contiguous block ranges for data and attributes), timestamps (access, modification, and change times), and mode bits (indicating file type and permissions). Extents are stored in forks within the inode, supporting efficient representation of large files without fragmentation. Version 5 inodes add support for sparse allocation and reflink capabilities. Directories leverage a flexible format that evolves with size: small directories use a shortform structure within the inode, while larger ones transition to block, , or formats, culminating in a for directories exceeding certain thresholds. The employs hash-based keys for entries, with nodes holding name-to-inode mappings and internal nodes for navigation; version 5 uses enhanced headers (e.g., magic number 0x3dff for blocks) to include CRCs for integrity. This structure ensures logarithmic-time lookups even for directories with millions of entries. The , or log, records changes for crash recovery and can be placed internally as a extent at the end of the filesystem or externally on a dedicated . Its size typically ranges from 0.1% to 1% of the total filesystem capacity, with version 2 logs supporting up to 256 KiB records and using Log Sequence Numbers for ordering. External placement enhances performance by isolating journal I/O from operations. XFS supports multiple on-disk versions from v0 to v5, each building on the previous for enhanced features and compatibility. Version 5, introduced for modern kernels, includes support for metadata CRCs (using CRC32c) to detect corruption. Optional parent pointers, available since Linux 6.16 (as of 2025), can be enabled via extended attributes in the ATTR_PARENT namespace linking to parent directories for backup and repair, and bigtime timestamps extending beyond 2038 up to the year 2486 in nanosecond precision. Earlier versions like v4 lack these, and v5 filesystems are backward-compatible when mounted on older kernels supporting the features.

Metadata Management

XFS employs B+trees extensively to manage metadata structures, enabling efficient operations on large-scale filesystems by supporting logarithmic-time searches, insertions, and deletions. These B+trees are used for inode allocation within allocation groups (AGs), directory entries in large directories, and extent maps for files with numerous extents, which helps maintain scalability as filesystem size grows beyond traditional linear structures. For instance, directory B+trees utilize hashed keys and variable-length records to handle millions of entries without performance degradation. Inode allocation in XFS involves dense packing within AGs, where each AG can span up to 1 terabyte and contains chunks of 64 inodes to optimize space utilization and reduce fragmentation. Inodes are dynamically allocated as needed, using 64-bit inode numbers that combine the identifier with a relative offset, allowing support for filesystems with trillions of inodes. This approach contrasts with fixed inode counts in other filesystems and facilitates high concurrency through per- isolation. Extended attributes in XFS store additional as key-value pairs associated with inodes, with options including inline placement in the inode for small values or external allocation in separate blocks for larger ones, supporting up to 64 kilobytes per attribute. For attributes exceeding inline capacity, a leaf format or full structure is used in the inode's attribute fork, ensuring efficient access and for applications requiring rich like labels or custom tags. Quotas in XFS track resource usage for , groups, and through dedicated B+trees rooted in special quota inodes, providing scalable enforcement without scanning the entire filesystem. User quotas use one inode, while group and quotas share another, with between the latter two; these structures allow limits on disk space and inode counts, updated incrementally during file operations. In XFS version 5 filesystems with the feature enabled (available since 6.16, 2025), parent pointers are implemented as extended attributes in the ATTR_PARENT , storing a file handle to the parent and enabling rapid path resolution during operations like renames or deletions. This feature facilitates efficient directory tree reconstruction and reduces traversal overhead in complex hierarchies. Delayed allocation in XFS buffers data writes in until a flush is required, deferring updates such as extent mappings and thereby minimizing immediate disk I/O for . This mechanism reduces fragmentation and overhead by allowing the allocator to choose optimal placements based on aggregated writes, though it requires careful log intent handling to maintain consistency. As a result, operations are more efficient, particularly for workloads with bursty or streaming I/O. Unlike ext4, which relies on global locking for metadata operations, XFS implements per-AG locking to enhance concurrency, allowing parallel access across independent allocation groups without widespread contention. This design scales better in multi-threaded environments, as operations confined to a single AG do not block those in others.

Core Features

Journaling and Recovery

XFS employs to guarantee the atomicity and recoverability of modifications, recording changes in a dedicated before applying them to the main filesystem structures. This approach ensures that filesystem operations remain consistent even in the event of a or power failure, with logged prior to commit while journaling remains optional and disabled by default to prioritize . The , which can reside internally on the filesystem or externally on a separate , uses log sequence numbers (LSNs) to track and order transactions, enabling efficient management of updates across allocation groups for parallelism. The journaling system supports short-form , which captures only changes such as inode or quota updates, and long-form , which includes relevant data payloads for operations like modifications to ensure complete replayability. Logical logging formats handle high-level structures like inodes and dquots, while physical formats buffer contents directly, allowing XFS to aggregate multiple changes and minimize disk I/O through relogging mechanisms. Transactions consist of start records, operation details, and commit markers, with deferred operations using intent-done pairs (e.g., extent free intent and extent free done) to manage complex updates without blocking ongoing activity. During recovery, XFS scans and replays the upon , reapplying committed transactions in LSN order to restore while truncating or discarding uncommitted ones to prevent . The Active Item List (AIL), an in-memory structure ordered by LSN, tracks pinned log items and facilitates ordered writes by advancing items forward in the log after I/O completion, ensuring that accurately reconstructs the filesystem without scanning unrelated structures. This typically completes in seconds, far outperforming traditional filesystem checks on non-journaled systems like , which require full scans and can take hours on large volumes, though XFS's metadata-only focus means it offers no inherent protection against user from partial writes. Journal performance is enhanced through tunable parameters, with log sizes configurable via tools like mkfs.xfs (e.g., minimum 512 blocks, maximum around 2 GB for external logs), and buffer sizes defaulting to 32 KB but adjustable up to 256 KB to match workload demands and reduce reservation overhead. Write barriers integrate with the pipeline to flush critical journal data to stable , safeguarding against power failures by enforcing strict ordering without relying on volatile caches. support allows non-blocking transaction commits, with delayed deferring writes to buffers until necessary, which cuts metadata I/O by an and alleviates journal contention in high-throughput scenarios. A key enhancement for came in with the default enablement of CRC32c checksums on log items and other , allowing early detection of corruption during and recovery to prevent propagation of errors. This v5 feature, including checksums on transaction headers and buffer data, bolsters reliability on modern hardware without significantly impacting performance.

Space Allocation

XFS employs extent-based allocation to manage disk space efficiently, representing file data as variable-length runs of contiguous rather than individual blocks. This approach reduces metadata overhead and fragmentation by allowing extents up to a maximum length of 2^21 blocks, which equates to 8 for a default 4 KB block size. Extents are tracked using B+ trees, enabling quick searches for free space while supporting large files and filesystems. The filesystem divides its data section into allocation groups (AGs), each typically ranging from 16 MB to 1 TB in size, to enable parallel allocation operations and improve scalability. The number and size of AGs are determined during filesystem creation with mkfs.xfs, aiming for roughly equal divisions, and each AG maintains its own free space B+ tree to track available blocks independently. This per-AG structure allows allocations to occur concurrently across groups, minimizing contention in multi-threaded environments. For striped storage configurations like , XFS supports striped allocation by aligning extents to configurable stripe units and widths, specified via options such as su= (stripe unit in basic blocks) and sw= (stripe width) during mkfs.xfs. This ensures optimal I/O performance by preventing extent splits across stripe boundaries, with the allocator rounding requests to match the underlying array geometry. Delayed allocation enhances write efficiency by deferring actual block allocation until data is flushed to disk, using speculative reservations in the buffer cache to coalesce multiple small writes into larger extents. This mechanism reduces fragmentation and updates, with reservations managed dynamically based on heuristics or fixed sizes via the allocsize option (ranging from 4 KiB to 1 GiB in power-of-2 increments). Journaling protects these allocation changes, ensuring during . XFS handles sparse files by marking unwritten extents, which represent holes without allocating or zero-filling underlying blocks, thereby conserving space for applications that write non-contiguous data. When data is later written to these extents, the filesystem converts them to written extents atomically, avoiding unnecessary I/O. Block sizes in XFS are fixed per filesystem and set at creation time (e.g., 512 bytes to 64 KB), influencing allocation granularity and performance for different workload types. Larger block sizes suit media files by enabling bigger extents, while smaller ones benefit small-file scenarios. In low free space conditions, XFS activates specialized allocation modes, such as the low-space allocator, to locate smaller or fragmented extents across multiple AGs when standard optimal allocation fails. Free space thresholds trigger these behaviors, potentially leading to ENOSPC errors if only a few blocks remain, prioritizing performance by avoiding exhaustive searches.

File and Directory Handling

XFS handles file creation by allocating a new inode from an allocation group, which includes space for metadata such as timestamps and permissions, and optionally an initial extent for data if the file is opened for writing. This process ensures that the inode number remains unique within the filesystem, with support for 64-bit inode numbers when mounted with the inode64 option to allow allocation across the entire filesystem rather than limiting to the first terabyte. Upon creation, the inode's link count is set to 1, and the file appears empty until data is written, leveraging delayed allocation to defer block assignment until necessary for efficiency. Directories in XFS are implemented as special files containing entries that map names to inodes, supporting efficient operations through a structure. For small directories with fewer than approximately 100 entries, a linear format is used within the inode for simplicity; larger directories transition to a with leaf nodes storing sorted entries, enabling logarithmic-time insertions, deletions, and lookups. Hash-based lookups accelerate name resolution by precomputing and storing hash values alongside entries, reducing the need to entire blocks during searches, particularly beneficial for case-insensitive filenames. Sparse files in XFS are managed transparently to applications, where unwritten regions, or "holes," are not allocated on disk, conserving space for files like databases or virtual machine images that contain large zero-filled areas. Hole detection occurs via the extent map in the inode or associated , allowing reads from holes to return zeros without physical storage, and tools like lseek with SEEK_HOLE can query these gaps programmatically. This feature integrates seamlessly with delayed allocation, minimizing fragmentation by batching extent allocations during writes. Extended attributes in XFS provide a mechanism to associate arbitrary name-value pairs with files and directories, compatible with the POSIX.1e draft standard for additional metadata beyond standard permissions. These attributes are stored separately in an attribute fork, which can use in-inode space for small values, extents for medium-sized ones, or a B+tree for large sets, with a maximum value size of 64 KiB per attribute. Namespaces such as , trusted, and allow flexible usage, including for security modules like SELinux. XFS supports standard Unix semantics for hard and symbolic links, where hard links increment the inode's link count to share the same blocks across multiple directory entries. Initial inodes use a 16-bit link count (maximum ), but exceeding this upgrades the inode to version 2 with a 32-bit link count (maximum 4294967295). Symbolic links, or soft links, store the target as within the link's inode, using in-inode storage for short paths or extents for longer ones, and they can cross filesystem boundaries unlike hard links. Directory entry limits apply, preventing cycles in hard links to directories to maintain filesystem integrity. Renaming and deletion operations in XFS are , ensured by the journaling mechanism that logs changes before committing them to disk, preventing partial updates in case of crashes. During rename, the source and target directory entries are updated transactionally, swapping inodes if necessary while preserving timestamps; deletion decrements the link count and, if it reaches zero, queues the inode for reuse via an unlinked list managed per allocation group. Unlike some filesystems with native ACL support, XFS relies on the posix_acl module for Access Control Lists, which implements them as extended attributes under the "system.posix_acl_access" and "system.posix_acl_default" namespaces for fine-grained permissions beyond traditional Unix modes. This approach uses the existing xattr infrastructure for security, allowing up to 25 ACL entries per file while maintaining compatibility with tools like getfacl and setfacl.

Advanced Capabilities

Scalability and Performance Optimizations

XFS leverages a 64-bit architecture to support massive storage capacities, enabling filesystems up to 8 exbibytes (EiB) in size and individual files up to 8 EiB, limited by the 64-bit block addressing in its and inode structures. This scalability accommodates exabyte-scale deployments, such as large data archives or environments, where traditional 32-bit filesystems would fragment or fail. The design distributes across multiple allocation groups, each capped at approximately 1 terabyte but scalable to 2^32 groups total, ensuring efficient management without centralized bottlenecks. To optimize I/O for bandwidth-intensive workloads like databases, XFS supports direct I/O, which bypasses the and performs () between applications and storage devices. This mode requires 4 KiB alignment for offsets and lengths to match size, minimizing overhead and enabling high-throughput transfers without buffering. Applications invoke it via the O_DIRECT flag in open(2), providing raw-device semantics within the filesystem for predictable in patterns. Online addresses fragmentation in active filesystems through the utility, which reorganizes file extents without requiring unmounting or . The tool scans mounted filesystems, selects files with the most extents (prioritizing the top 10% per pass), and relocates blocks to contiguous regions while preserving via mechanisms during moves. When run without arguments, it processes all regular files across mounted XFS volumes for up to 10 passes or a configurable , improving sequential read on spinning disks without interrupting operations. For striped storage configurations, XFS incorporates stripe-aware allocation using stripe and width parameters to align data placement with underlying or logical volume geometries. The stripe (sunit) specifies the basic striping in 512-byte blocks, while the stripe width (swidth) defines the full stripe size as a multiple of the , ensuring allocations round up to width boundaries for files larger than the width. These options, set during mkfs.xfs or , prevent read-modify-write cycles on arrays by optimizing extent placement across devices, enhancing parallel I/O throughput in multi-disk setups. Introduced in 4.9, the reflink feature enables efficient file cloning via block-level (CoW), allowing instantaneous copies that share unchanged data blocks between files. Applications use the clone ioctl or copy_file_range(2) to create reflinks, where modifications to one file trigger CoW to allocate new blocks, preserving the original while saving space—ideal for deduplication or snapshot-like operations in virtualized environments. This reduces storage overhead for duplicate data without performance penalties for reads, as shared extents are referenced directly until divergence. Since Linux kernel 5.10, online scrub provides proactive metadata validation and repair on mounted filesystems, detecting and correcting inconsistencies without downtime. As of Linux kernel 6.12 (October 2024), online scrub is enabled by default for new XFS filesystems, allowing automatic metadata checks. The xfs_scrub utility invokes kernel ioctls to scan b-trees, inodes, and directories for corruption, cross-referencing records against checksums and structural invariants; repairs, when enabled, rewrite faulty metadata in-place using transactionally safe updates. This capability, matured in kernel 5.13 with improved b-tree handling, maintains data integrity in production while avoiding the disruptions of traditional fsck.

Administrative Tools

XFS administrative tools facilitate ongoing management of filesystems without requiring unmounting in many cases, supporting tasks such as , quota enforcement, backups, checks, , and . These utilities are part of the xfsprogs package and are designed for use on systems hosting XFS. The xfs_growfs command enables online of an existing XFS filesystem by incorporating additional space from the underlying block device or logical . When invoked without a size specification, it grows the filesystem to the maximum capacity supported by the device, which can reach up to 8 exabytes (8 EiB) on 64-bit systems. This process requires the filesystem to be mounted and updates the metadata accordingly, ensuring seamless integration of new storage. Quota management in XFS is handled by the xfs_quota utility, which allows administrators to enable, set, and monitor disk usage limits for users, groups, and projects (quota types uquota, gquota, and pquota). Quotas must first be activated via mount options or the quotactl system call, after which xfs_quota can report current usage in basic or expert mode and enforce soft or hard limits to prevent overconsumption. This supports project-based quotas for hierarchical resource allocation in environments like shared hosting. For backup and restoration, XFS employs the xfsdump and xfsrestore utilities, which create and recover full or incremental dumps to files, tapes, or other media. xfsdump supports level-based incrementals (0 for full, 1-9 for differentials or cumulatives), tracking changes via an inventory database to optimize subsequent backups and enable . xfsrestore can restore entire filesystems or selective files/directories, preserving attributes and extended attributes, though it is recommended to unmount the filesystem for full restores to avoid potential inconsistencies. These tools are particularly effective for large-scale data protection due to their parallelism and support for multi-session dumps. Filesystem repair and integrity verification rely on xfs_repair for offline operations, which scans and corrects inconsistencies on unmounted XFS volumes, serving as the equivalent of for other filesystems. Unlike traditional tools, xfs_repair does not run automatically at but must be invoked manually after detection, such as via warnings. Complementing this, the xfs_scrub , developed in the late 2010s and integrated into versions starting around 5.10, performs online scrubbing and repair on mounted filesystems, detecting issues like mismatches or structural errors without downtime and enabling automated repairs in some cases. Tuning XFS behavior often involves mount options specified in /etc/fstab or via the command to optimize performance for specific workloads. The noatime option disables updates to file access times on reads, reducing metadata writes and improving throughput in read-heavy scenarios like web serving. Similarly, allocsize sets the preallocation size for buffered I/O in delayed allocation, defaulting to 64 KiB but adjustable (e.g., to 1 ) to minimize fragmentation for large sequential writes, though larger values increase temporary space usage. These options can be combined with others like inode64 for better on large volumes. Monitoring and are supported by xfs_db, a low-level tool for examining and modifying XFS structures such as inodes, directories, and allocation groups directly on the device or image file, useful for forensic analysis or manual repairs. In contrast, xfs_info provides a high-level summary of the filesystem's geometry, including block size, inode size, and feature flags, by querying the without altering data. These tools aid in diagnosing issues like allocation imbalances or verifying .

Platform-Specific Extensions

XFS, originally developed for ' IRIX operating system, included several platform-specific extensions tailored to IRIX's hardware and software ecosystem, particularly for and multimedia workloads. These features leveraged IRIX's unique architecture, such as its integration with the XVM volume manager and specialized I/O scheduling, but were not fully ported to due to differences in design, hardware dependencies, and the availability of alternative Linux tools like LVM. While the core XFS filesystem was adapted for starting in 2001, these extensions remained IRIX-exclusive or were deprecated early in the Linux port to prioritize compatibility and simplicity. One key IRIX-specific extension was the Data Management (DMAPI), which provided a standardized interface for (HSM) systems, allowing applications to migrate data between online disk storage and slower offline media like tapes without kernel modifications. In XFS on IRIX, DMAPI hooked into filesystem events to support seamless , enabling efficient management of large datasets in environments like scientific computing. This feature was integral to IRIX's enterprise storage solutions, such as SGI's DMF HSM software, but its implementation relied on IRIX-specific and was never fully functional in the port due to incomplete upstreaming. DMAPI support was ultimately removed from the in version 4.18 in 2018, as it saw minimal use and maintenance became burdensome without broad adoption. Guaranteed-rate I/O (GRIO) represented another -optimized capability, offering I/O scheduling guarantees for and streams by reserving disk bandwidth and enforcing deadlines through the kernel's scheduler. On XFS filesystems in , GRIO utilized a dedicated subvolume to ensure predictable throughput for up to 64 concurrent streams, preventing from competing I/O operations—a critical need for and rendering on SGI workstations. This required specialized hardware support, such as 's rotor-based disk scheduling, and was not ported to , where general-purpose schedulers like CFQ or deadline I/O handle similar but less guaranteed needs. IRIX XFS also supported filesystem snapshots via the XVM volume manager, employing a mechanism to create point-in-time images of volumes with minimal overhead by only duplicating modified blocks. These snapshots facilitated rapid backups and testing in IRIX environments but were tightly coupled to XVM's logical volume features, which were not ported to Linux owing to the complexity of integrating a proprietary volume manager with the . Instead, Linux XFS relies on LVM for snapshot functionality, avoiding the need to replicate IRIX's bespoke implementation and reducing maintenance overhead in a multi-filesystem ecosystem. The decision to drop native XFS snapshots stemmed from LVM's established snapshots providing equivalent capabilities without introducing IRIX-specific dependencies. Additionally, XFS in integrated with the operating system's audit subsystem for security logging, capturing detailed records of filesystem access events, including pathnames and attributes, to support compliance and intrusion detection. This XFS feature logged security-relevant operations directly from filesystem changes, enhancing 's overall auditing framework for regulated environments. Unlike core XFS journaling, this was an IRIX-specific extension tied to the OS's Basic Security Module and was not carried over to , where tools like auditd handle similar logging at the level. These extensions highlight the end of IRIX production in 2006, with support ending in 2013; nonetheless, their design principles influenced XFS's focus on and reliability for large-scale . The deprecation of features like DMAPI and the omission of IRIX-specific tools underscore the port's emphasis on broad compatibility over niche optimizations.

Limitations and Considerations

Historical Constraints

The initial implementation of XFS in the first generation, released with 5.3 in 1994, was constrained by 32-bit addressing on SGI's hardware, limiting the maximum filesystem size to 1 terabyte on 32-bit systems such as IP17, IP20, and IP22 workstations. This cap arose from the use of 32-bit block pointers and counters in core data structures, which restricted scalability compared to the 64-bit addressing that XFS was designed to support in principle. These limitations hindered deployment on larger storage arrays available even in the mid-1990s, confining early adoption to smaller-scale environments within SGI's ecosystem. XFS lacked built-in snapshot capabilities in its first and second generations under , relying instead on external volume management for point-in-time copies; snapshots via the XVM volume manager were not introduced until the third generation in 6.5. This absence meant administrators had to use separate tools or manual quiescing for backups, increasing operational complexity during the filesystem's formative years. Notably, the port of XFS, completed in , inherited this design and still does not include native snapshots, perpetuating the reliance on volume managers like LVM. Early XFS administration was notably complex, requiring specialized tools like xfsprogs in the port for essential operations such as formatting (mkfs.xfs) and repair (xfs_repair), which were not integrated into the base kernel utilities. This contrasted sharply with , which benefited from simpler, built-in tools and a more familiar structure for Unix administrators, resulting in a steeper for XFS that slowed its uptake beyond SGI environments. On traditional HDDs, XFS exhibited high metadata write due to its journaling mechanism, where metadata updates were first logged before permanent storage, leading to increased I/O overhead and reduced performance in metadata-intensive workloads compared to simpler filesystems. Licensing constraints further impeded adoption, as XFS remained proprietary to SGI until August 1999, when it was released under the GNU General Public License, delaying ports to non-SGI platforms and limiting community contributions during the late . Prior to this, XFS was confined to on SGI's MIPS-based hardware, creating significant barriers for users on other architectures like x86, where alternatives like dominated due to broader accessibility. These IRIX-centric origins, combined with hardware specificity, restricted XFS to specialized visualization and niches until the Linux integration.

Current Trade-offs

One key trade-off in XFS is its use of metadata-only journaling, which prioritizes performance by avoiding the overhead of logging user data changes, but increases the risk of data corruption or inconsistency during crashes compared to ext4's optional full data journaling mode. This approach ensures filesystem structure recovery is faster—often in seconds—while ext4's data journaling can prevent user data loss at the cost of higher write latency in I/O-intensive scenarios. In practice, XFS's design suits high-throughput environments where speed outweighs absolute data safety, though it may require additional backups to mitigate risks. XFS lacks native snapshot capabilities, relying instead on external tools like LVM or device-mapper for point-in-time copies, which adds complexity and potential performance penalties during creation compared to the integrated, efficient in and . This dependency can complicate backup workflows, as LVM demand careful coordination to freeze the filesystem state without downtime. While XFS supports reflinks for space-efficient file cloning as a limited alternative, it does not provide the full rollback or subvolume management of its competitors. The extensive use of B+ trees for metadata structures in XFS, including directories and extent allocation, introduces higher CPU overhead for operations involving many small files, where frequent tree traversals and updates consume more resources than ext4's simpler bitmap-based approach. This can limit its efficiency in environments with fragmented or numerous tiny objects. In terms of security, XFS supports SELinux through extended attributes (xattrs) stored in the security namespace, with a total size cap of up to 64 KB per inode. Modern XFS implementations using the attr2 format provide efficient storage for these attributes within inodes for most files, similar to . XFS excels in scalability over , handling volumes up to 8 exabytes and millions of files with linear performance gains in multi-threaded I/O, but it is less user-friendly for desktop environments than due to the absence of easy-to-use features like automatic or subvolume snapshots. Desktop users often find more approachable for everyday tasks, such as system rollbacks, while XFS's command-line-heavy administration suits scripted server deployments better. As of 2025, XFS remains a preferred choice for enterprise servers handling large-scale data, such as in deployments for databases and media processing, due to its high-bandwidth optimization. However, its adoption in consumer and desktop Linux distributions has declined in favor of ext4's simplicity or Btrfs's advanced features, with major distros like defaulting to alternatives for broader usability. While XFS has long lacked support for shrinking filesystem size, experimental limited shrinking capabilities were added in xfsprogs 5.12 (2021) and remain available as of 2025, though restricted (e.g., single allocation group filesystems cannot be shrunk) and not yet fully stable in all kernels. When compared to modern filesystems, XFS offers superior open-source for massive datasets—supporting larger volumes than 's 256TB limit—without APFS's native or efficiency, though it avoids the licensing restrictions of both. provides stronger built-in quotas and for Windows ecosystems, but XFS's extent-based allocation yields better parallel I/O on servers; APFS, optimized for SSDs with , edges out XFS in mobile/desktop flash performance at the expense of cross-platform compatibility.

References

  1. [1]
    [PDF] XFS Algorithms & Data Structures - Index of /
    Originally developed by SGI in October 1993 for IRIX, XFS can handle large files, large filesystems, many inodes, large directories, large file attributes, and ...
  2. [2]
    The SGI XFS Filesystem - The Linux Kernel documentation
    XFS is a high performance journaling filesystem which originated on the SGI IRIX platform. It is completely multi-threaded, can support large files and large ...
  3. [3]
    Chapter 3. The XFS File System | Red Hat Enterprise Linux | 7
    XFS is the default file system for Red Hat Enterprise Linux 7. Main Features of XFS. XFS supports metadata journaling, which facilitates quicker crash recovery.
  4. [4]
    [PDF] XFS Filesystem Structure
    The original XFS design was circulated within SGI in October 1993 as "xFS: the extension of EFS". The main ideas were: • "x" for to-be-determined (but the ...Missing: origins | Show results with:origins
  5. [5]
    XFS White Paper - sgistuff.net
    XFS is Silicon Graphics' next-generation filesystem and volume manager for IRIX systems. XFS represents a leap into the future of filesystem management ...Missing: origins development
  6. [6]
    Software : IRIX History - sgistuff.net
    Jun 30, 2025 · Second 64bit IRIX release, based on IRIX 5.3 code. IRIX 6.0.1 XFS. Full Name, IRIX 6.0.1 with XFS. Release Date, 03/95.
  7. [7]
    [PDF] XFS
    956 Doug Doucette (Second XFS commit - 1999). 950 Steve Lord (1997-2003). 661 Adam Sweeney (First XFS commit - 1996). 431 Eric Sandeen (2000-present). 221 ...Missing: history | Show results with:history
  8. [8]
    [PDF] XFS: the big storage file system for Linux - USENIX
    XFS itself did not originate on. Linux but was first released on IRIX, a UNIX vari-.
  9. [9]
    SGI releases XFS file system to Linux community - The Register
    Aug 12, 1999 · SGI ... (GPL) those portions of its XFS journaling file system that it owns. The decision to release XFS under an open source licence was announced ...Missing: licensing | Show results with:licensing
  10. [10]
    Porting the SGI XFS File System to Linux - USENIX
    SGI has ported the XFS file system to the Linux operating system to address these constraints. This paper describes the major technical areas that were ...Missing: development history
  11. [11]
    d/sgi-xfs - LWN.net
    Yi SGI has made available the pre-release version 0.9 of its high-end XFS file system ported to Linux . ... SGI has open-sourced and optimized XFS for Linux ...Missing: port | Show results with:port
  12. [12]
    ChangeLog-2.6.5 - The Linux Kernel Archives
    <nathans@sgi.com> [XFS] Fix up mrlock debug code, and ensure its only built under DEBUG. SGI Modid: xfs-linux:xfs-kern:167944a <nathans@sgi.com> [XFS] Remove ...
  13. [13]
    xfsprogs: doc/CHANGES - Fossies
    As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can ...<|separator|>
  14. [14]
    HOWTO install DiskQuotas (Linux v2.4.18 and up)
    XFS considers quotas as meta-data. They can only be activated at mount time, i.e. activating them while the filesystem is not allowed, and hence, the remount ...Missing: support | Show results with:support
  15. [15]
    linux-toradex.git - Linux kernel for Apalis, Colibri and Verdin modules
    2005-11-02, [XFS] Ondisk format extension for extended attributes (attr2). Basically,, Nathan Scott ; 2005-06-21, [XFS] Add a get/set interface for XFS project ...
  16. [16]
    Linux XFS/DMAPI
    In order to use XFS + DMAPI with kernel 2.6.x you need at least the following steps: Download kernel from SGI cvs tree · Download/Install dmapi library ( ...
  17. [17]
    XFS: The Enterprise File System of Choice | SUSE Communities
    Jun 14, 2013 · SUSE has included XFS file system support at no cost since the release of SLES 8. This can be attributed to many reasons including scalability, performance and ...
  18. [18]
    [PDF] ScaleXFS: Getting scalability of XFS back on the ring - USENIX
    Feb 24, 2022 · The XFS filesystem is one of the most widely used journaling filesystems in the enterprise server as well as in cloud platforms. XFS is the ...<|control11|><|separator|>
  19. [19]
    XFS Self Describing Metadata - The Linux Kernel Archives
    All further CRC and verification checks are done when each inode is read from or written back to the buffer. The structure of the verifiers and the ...Missing: 4.7 | Show results with:4.7
  20. [20]
    On Self Describing Filesystem Metadata, by Darrick Wong | linux
    May 29, 2015 · accessible only through the filesystem. In XFS, self-describing metadata was introduced with a new (v5) on-disk format. All existing v4 ...
  21. [21]
    XFS Reverse-Mapping Proposed For Linux 4.8 - Phoronix
    Aug 6, 2016 · Reverse mapping allows us to track the owner of a specific block on disk precisely. It is implemented as a set of btrees (one per allocation ...
  22. [22]
    Upcoming XFS Work in Linux v4.8 v4.9 and v4.10+, by Darrick Wong
    Nov 8, 2016 · v4.8: Reverse Mapping. Back in 2014, Dave Chinner prototyped a mechanism for storing extent owner reverse mapping information in the filesystem.<|separator|>
  23. [23]
    XFS - ArchWiki
    Aug 16, 2025 · Making a new XFS file-system with bigtime enabled allows a timestamp range from December 1901 to July 2486 rather than December 1901 to January ...Missing: timeline | Show results with:timeline
  24. [24]
    XFS – Data Block Sharing (Reflink) | linux - Oracle Blogs
    Jan 6, 2020 · Copy on write is used when necessary to keep file contents intact, but XFS otherwise continues to use direct overwrites to keep metadata ...
  25. [25]
    XFS File-System With Linux 5.10 Punts Year 2038 Problem To The ...
    Oct 15, 2020 · This "big timestamps" feature is the refactoring of their timestamp and inode encoding functions to handle timestamps as a 64-bit nanosecond ...Missing: precision | Show results with:precision
  26. [26]
    xfs_quota(8) - Linux manual page - man7.org
    The quota subsystem warns users when they exceed their allotted limit, but allows some extra space for current work (hard limit/soft limit). In addition, XFS ...
  27. [27]
    3.3. XFS Quota Management | Red Hat Enterprise Linux | 7
    Once quotas are enabled, the xfs_quota tool can be used to set limits and report on disk usage. By default, xfs_quota is run interactively, and in basic mode.
  28. [28]
    XFS – Online Filesystem Repair | linux - Oracle Blogs
    Jun 11, 2024 · If a directory's entries become corrupted, online fsck scans all files in the filesystem for parent pointers referencing the corrupt directory.Missing: 4.10 | Show results with:4.10
  29. [29]
    XFS Online Fsck Design — The Linux Kernel documentation
    ... reverse mapping and reflink were introduced. Originally, transaction chains were added to XFS to avoid deadlocks when unmapping space from files. Deadlock ...
  30. [30]
    XFS file system - Zoned Storage
    The kernel messages will signal that XFS zoned device support is still labelled as experimental. XFS (sda): EXPERIMENTAL zoned RT device feature enabled.Missing: 6.11 | Show results with:6.11
  31. [31]
    XFS Real-Time Enables FITRIM Support With Linux 6.11 - Phoronix
    Jul 18, 2024 · The XFS file-system updates have been merged for the in-development Linux 6.11 kernel. While XFS itself has supported TRIM/DISCARD for the past ...
  32. [32]
    [PDF] Oracle Linux 7 - Managing File Systems
    XFS supports extended attributes for files, where the size of each attribute's value can be up to 64 KB, and each attribute can be allocated to either a root or ...
  33. [33]
    Chapter 1. Overview of available file systems | 9
    The amount of space inodes can consume on an XFS filesystem is calculated as a percentage of the total filesystem space. To prevent the system from running out ...
  34. [34]
    XFS Delayed Logging Design - The Linux Kernel Archives
    XFS logging is a combination of logical and physical logging. Some objects, such as inodes and dquots, are logged in logical format where the details logged are ...Missing: specification | Show results with:specification
  35. [35]
    XFS: the filesystem of the future? - LWN.net
    Jan 20, 2012 · That means, Dave said, that XFS will remain the best filesystem for large-data applications under Linux for a long time. What are the ...
  36. [36]
    1. XFS Logging Design - The Linux Kernel documentation
    Inserting the extent into the inode's extent map might require a split of the extent map btree, which requires another allocation that can modify the free space ...Missing: management | Show results with:management
  37. [37]
  38. [38]
    mkfs.xfs(8) - Linux manual page - man7.org
    Aug 27, 2021 · crc=value This is used to create a filesystem which maintains and checks CRC information in all metadata objects on disk. The value is ...
  39. [39]
    22.2. Enabling and Disabling Write Barriers - Red Hat Documentation
    Enabling and Disabling Write Barriers. To mitigate the risk of data corruption during power loss, some storage devices use battery-backed write caches.Missing: safety | Show results with:safety
  40. [40]
    1309498 – Rebase xfsprogs; enable metadata CRCs by default
    The Red Hat Enterprise Linux 7.3 kernel RPM requires the upgraded version of _xfsprogs_ because the new default on-disk format requires special handling of log ...
  41. [41]
    [PDF] Scalability in the XFS File System
    In XFS, each allocation group manages the inodes allocated within its confines. Each AG uses a B+ tree to index the locations of the inodes within it.
  42. [42]
    xfs(5) - Linux manual page - man7.org
    An XFS filesystem can reside on a regular disk partition or on a logical volume. An XFS filesystem has up to three parts: a data section, a log section, and a ...
  43. [43]
    5.1 About the XFS File System
    Any files and directories that you create can span multiple allocation groups. Each allocation group manages its own set of inodes and free space independently ...Missing: layout | Show results with:layout
  44. [44]
    xfs_bmap.c source code [linux/fs/xfs/libxfs/xfs_bmap.c] - Code Browser
    Source code of linux/fs/xfs/libxfs/xfs_bmap.c linux v6.16-r on KDAB ... * If we are in low space mode, then optimal allocation will fail so. 3559 ...
  45. [45]
    [PDF] Managing the XFS File System - Oracle Help Center
    Jul 1, 2025 · XFS's space allocation scheme is designed to efficiently identify free extents that it can use for file system operations. XFS doesn't allocate ...Missing: thresholds low-
  46. [46]
    POSIX Access Control Lists on Linux
    ### Summary: XFS Handling of Extended Attributes and ACLs, POSIX.1e Compatibility
  47. [47]
    Chapter 8. The XFS File System | Red Hat Enterprise Linux | 6
    XFS supports metadata journaling, which facilitates quicker crash recovery. The XFS file system can also be defragmented and enlarged while mounted and active.
  48. [48]
    3.9. Other XFS File System Utilities | Storage Administration Guide
    Used to defragment mounted XFS file systems. When invoked with no arguments, xfs_fsr defragments all regular files in all mounted XFS file systems. This ...
  49. [49]
    xfs_fsr(8) - Linux manual page - man7.org
    Each pass goes through and selects files that have the largest number of extents. It attempts to defragment the top 10% of these files on each pass. It runs for ...Missing: online | Show results with:online<|separator|>
  50. [50]
    xfs_scrub(8) - Linux manual page - man7.org
    xfs_scrub attempts to check and repair all metadata in a mounted XFS filesystem. WARNING! This program is EXPERIMENTAL, which means that its behavior and ...Missing: 6. EiB
  51. [51]
    "Darrick J. Wong": [GIT PULL] xfs: new code for 5.13 - LKML
    Apr 29, 2021 · New code for 5.13: - Various minor fixes in online scrub. - Prevent metadata files from being automatically inactivated. - Validate btree ...
  52. [52]
    XFS vs ext4 performance [closed] - Unix & Linux Stack Exchange
    Jun 18, 2019 · For anything with higher capability, XFS tends to be faster. XFS also consumes about twice the CPU-per-metadata operation compared to Ext3 and ...
  53. [53]
    XFS Filesystem Documentation - The Linux Kernel documentation
    XFS Filesystem Documentation¶ · 1. XFS Logging Design · 1.1. Preamble · 1.2. Introduction · 1.3. Transactions in XFS · 2. XFS Maintainer Entry Profile · 2.1.
  54. [54]
    xfs_growfs(8) - Linux manual page - man7.org
    xfs_growfs expands an existing XFS filesystem (see xfs(5)). The mount-point argument is the pathname of the directory where the filesystem is mounted.
  55. [55]
    3.4. Increasing the Size of an XFS File System
    Without the -D size option, xfs_growfs will grow the file system to the maximum size supported by the device. Before growing an XFS file system with -D size ...
  56. [56]
    xfsdump(8) - Linux manual page - man7.org
    The xfsrestore(8) utility re-populates a filesystem with the contents of the dump. Each invocation of xfsdump dumps just one filesystem. That invocation is ...
  57. [57]
    3.7. Backing Up and Restoring XFS File Systems
    XFS backups use `xfsdump` to create backups to files or tape, and `xfsrestore` to restore from backups, including full and incremental backups.
  58. [58]
    xfs_repair(8) - Linux manual page - man7.org
    xfs_repair repairs corrupt or damaged XFS filesystems (see xfs(5)). The filesystem is specified using the device argument which should be the device name.
  59. [59]
    [PDF] Guaranteed-Rate I/O Version 2 Guide - irix7.com
    To allocate a file on the real-time subvolume of an XFS or CXFS filesystem, you must use the fcntl(2) F_FSSETXATTR command to set the XFS_XFLAG_REALTIME flag.Missing: multimedia | Show results with:multimedia
  60. [60]
    [PDF] IRIX Admin: Disks and Filesystems
    • The rate guarantee can be a fixed rotor, slip rotor, or non-rotor type. • The rate guarantee can have deadline or real-time scheduling, or it can be.
  61. [61]
    Chapter 6. The XVM Snapshot Feature - TechPubs
    The snapshot feature requires a minimal amount of storage because it uses a copy-on-write mechanism that copies only the data areas that change after the ...
  62. [62]
    About the XFS File System - Oracle Help Center
    XFS is a high-performance journaling file system that was initially created by Silicon Graphics, Inc. for the IRIX OS and then later ported to Linux.
  63. [63]
    [PDF] IRIX™ Admin: Backup, Security, and Accounting - irix7.com
    Since the audit record is an exact log for security purposes, many attributes of the pathname that are designed to be transparent in normal usage are ...
  64. [64]
    IRIX Operating System (Unix)
    IRIX 6.5.30 was the last released version from SGI. The extended support was discontinued in 2013. No further updates were released.
  65. [65]
    [1707.08514] Analyzing IO Amplification in Linux File Systems - ar5iv
    XFS has a similar low write amplification, but higher space amplification since the metadata is first written to the journal.
  66. [66]
    XFS | Software Wiki - Fandom
    XFS is a high-performance journaling file system created by SGI (formerly Silicon Graphics Inc.) for their IRIX UNIX implementation.Missing: initial | Show results with:initial
  67. [67]
    SGI's XFS file system to go open source - ZDNET
    May 19, 1999 · SGI Inc. is set to announce plans to give the Linux community the source code of XFS, its 64-bit Unix file system. Industry watchers say this ...Missing: initial | Show results with:initial
  68. [68]
    Understanding Linux File Systems: EXT4, XFS, BTRFS, and ZFS
    Oct 3, 2024 · Limited Snapshot Support: XFS does not support snapshots natively, which may be a limitation for some users. Best Use Case. XFS is ideal for ...EXT4 (Fourth Extended... · Features · XFS · BTRFS (B-Tree File System)
  69. [69]
  70. [70]
    [PDF] TABLEFS: Enhancing Metadata Efficiency in the Local File System
    Inodes for directories have a B+ tree for its directory entries, indexed by a 32 bit hash of the entry's file name. XFS also journals metadata for durability, ...
  71. [71]
    SELinux on XFS filesystems - Steve's Blog
    Sep 28, 2010 · If you are using XFS and SELinux together, you should do perfectly well with the defaults of your XFS creation by the OS installer.Missing: integration | Show results with:integration
  72. [72]
    7.3.2.2.4. Optimising for applications that use extended attributes
    There is, however, a limit on the size of the individual attributes that can be stored in-line - there is a maximum size limit of 254 bytes for both the ...
  73. [73]
    XFS vs. Ext4: Which Linux File System Is Better? | Pure Storage Blog
    Jan 24, 2024 · XFS is more common for large file storage and performance, but ext4 is used for general server operations with better security features.
  74. [74]
    Ext4 vs XFS vs Btrfs on VPS in 2025 - Onidel
    Aug 29, 2025 · XFS shines in scenarios requiring high throughput and large file handling. Its architecture allows for excellent scaling on multi-core systems, ...
  75. [75]
    File systems - ArchWiki
    Oct 28, 2025 · The trade-off between system speed and data safety should be considered when choosing the file system type and features. In the same vein ...XFS · Bcachefs · Category:File systems
  76. [76]
    APFS VS NTFS: What Are They and What Is the Difference?
    Jan 8, 2025 · NTFS provides reliability and extensive features for Windows environments, while APFS offers modern, efficient storage solutions for Apple devices.