& xfsTemplate,top=>1,side=>1 &>
XFS combines advanced journaling technology with full 64-bit addressing and scalable structures and algorithms. This combination delivers the most scalable and high-performance filesystem in the world.
If you have any questions or problems with the installation or administration of XFS for Linux, you can send email to linux-xfs@oss.sgi.com. Note that this address is a public mailing list; please search the list archive to see if your question has been answered previously.
To report any bugs you encounter in XFS for Linux, use the SGI Bugzilla database.
| 2005/06/03 | XFS for FreeBSD website announced (an independent porting effort not sponsored by SGI), supported by FreeBSD developers Craig Rodrigues and Alexander Kabaev. |
| 2004/10/26 | XFS web pages updated for first time in several years. (*cough*) |
| 2004/10/17 | Merged all XFS fixes since 2.6.5 into SLES9 Service Pack 1. Thanks Andreas! |
| 2004/02/18 | XFS is merged into Marcelo's 2.4.25 kernel. |
| [Before-2004] | Older news... |
The XFS filesystem provides the following major features:
The XFS filesystem provides the advantages of journaling while minimizing the performance impact of journaling on read and write data transactions. Its journaling structures and algorithms are tuned to log the transactions rapidly.
XFS uses efficient tree structures for fast searches and rapid space allocation. XFS continues to deliver rapid response times, even for directories with tens of thousands of entries.
XFS is a full 64-bit filesystem, and thus is capable of handling files as large as a million terabytes.
263 = 9 x 1018 = 9 exabytes
A million terabytes is hundreds of thousands of times larger than most large filesystems in use today. This may seem to be an extremely large address space, but it is needed to plan for the exponential disk-density improvements observed in the disk industry in recent years. As the disk sizes grow, not only does the address space need to be sufficiently large, but the structures and algorithms need to scale. XFS is ready today with the technologies needed for this scalability.
XFS as a filesystem is capable of delivering near-raw I/O performance. XFS has proven scalability on SGI MIPS systems of multiple gigabytes/sec on multiple terabyte filesystems. As the bandwidth capabilities of Linux increase, the XFS filesystem is able to utilize those capabilities.
Technology
Journaled 64-bit filesystem with guaranteed filesystem consistency.
Availability
XFS is available for Linux 2.4 and later kernels.
Online Administration
XFS supports filesystem growth for mounted volumes, allows filesystem "freeze" and "thaw" operations to support volume level snapshots, and provides an online file defragmentation utility.
Quotas
XFS supports user and group quotas. XFS considers quota information as filesystem metadata and uses journaling to avoid the need for lengthy quota consistency checks after a crash.
Extended Attributes
XFS implements fully journaled extended attributes. An extended attribute is a name/value pair associated with a file. Attributes can be attached to all types of inodes: regular files, directories, symbolic links, device nodes, and so forth. Attribute values can contain up to 64KB of arbitrary binary data. XFS implements three attribute namespaces: a user namespace available to all users, protected by the normal file permissions; a system namespace, accessible only to privileged users; and a security namespace, used by security modules (SELinux). The system namespace can be used for protected filesystem meta-data such as access control lists (ACLs) and hierarchical storage manager (HSM) file migration status.
POSIX Access Control Lists (ACLs)
XFS supports the ACL semantics and interfaces described in the draft POSIX 1003.1e standard.
Maximum File Size
For Linux 2.4, the maximum accessible file offset is 16TB on 4K page size and 64TB on 16K page size. For Linux 2.6, when using 64 bit addressing in the block devices layer (CONFIG_LBD), file size limit increases to 9 million terabytes (or the device limits).
Maximum Filesystem Size
For Linux 2.4, 2 TB. For Linux 2.6 and beyond, when using 64 bit addressing in the block devices layer (CONFIG_LBD) and a 64 bit platform, filesystem size limit increases to 9 million terabytes (or the device limits). For these later kernels on 32 bit platforms, 16TB is the current limit even with 64 bit addressing enabled in the block layer.
Filesystem Block Size
The minimum filesystem block size is 512 bytes. The maximum filesystem block size is the page size of the kernel, which is 4K on x86 architecture and is set as a kernel compile option on IA-64 architecture.
Filesystem extents (contiguous data) are configurable at file creation time using fcntl and are multiples of the filesystem block size. Single extents can be up to 4 GB in size.
Physical Disk Sector Sizes Supported
512 bytes through to 32 kilobytes (in powers of 2), with the caveat that the sector size must be less than or equal to the filesystem blocksize.
NFS Compatibility
With NFS version 3, 64-bit filesystems can be exported to other systems that support the NFS V3 protocol. Systems that use NFS V2 protocol may access XFS filesystems within the 32-bit limit imposed by the protocol.
Windows Compatibility
SGI uses the Open Source Samba server to export XFS filesystems to Microsoft Windows systems. Samba speaks the SMB (Server Message Block) and CIFS (Common Internet File System) protocols.
Backup/Restore
xfsdump and xfsrestore can be used for backup and restore of XFS file systems to local/remote SCSI tapes or files. It supports dumping of extended attributes and quota information. As the xfsdump format has been preserved and is now endian neutral, dumps created on one platform can be restored onto an XFS filesystem on another (different architectures, and even different operating systems - IRIX to Linux, and vice-versa).
Support for Hierarchical Storage
The Data Management API (DMAPI/XDSM) allows implementation of hierarchical storage management software with no kernel modifications as well as high-performance dump programs without requiring "raw" access to the disk and knowledge of filesystem structures.
Optional Realtime Allocator
XFS supports the notion of a "realtime subvolume" - a separate area of disk space where only file data is stored. Space on this subvolume is managed using the realtime allocator (as opposed to the default, B+ tree space allocator). The realtime subvolume is designed to provide very deterministic data rates suitable for media streaming applications.