Installation guide
Chapter 9.
49
The XFS File System
XFS is a highly scalable, high-performance file system which was originally designed at Silicon
Graphics, Inc. It was created to support extremely large filesystems (up to 16 exabytes), files (8
exabytes) and directory structures (tens of millions of entries).
Main Features
XFS supports metadata journaling, which facilitates quicker crash recovery. The XFS file system
can also be defragmented and enlarged while mounted and active. In addition, Red Hat Enterprise
Linux 6 supports backup and restore utilities specific to XFS.
Allocation Features
XFS features the following allocation schemes:
• Extent-based allocation
• Stripe-aware allocation policies
• Delayed allocation
• Space pre-allocation
Delayed allocation and other performance optimizations affect XFS the same way that they do
ext4. Namely, a program's writes to a an XFS file system are not guaranteed to be on-disk unless
the program issues an fsync() call afterwards.
For more information on the implications of delayed allocation on a file system, refer to Allocation
Features in Chapter 7, The Ext4 File System. The workaround for ensuring writes to disk applies
to XFS as well.
Other XFS Features
The XFS file system also supports the following:
• Extended attributes (xattr), which allows the system to associate several additional name/
value pairs per file.
• Quota journalling, which avoids the need for lengthy quota consistency checks after a crash.
• Project/directory quotas, allowing quota restrictions over a directory tree.
• Subsecond timestamps
9.1. Creating an XFS File System
To create an XFS file system, use the mkfs.xfs /dev/device command. In general, the default
options are optimal for common use.
When using mkfs.xfs on a block device containing an existing file system, use the -f option to force
an overwrite of that file system.
Below is a sample output of the mkfs.xfs command:
meta-data=/dev/device isize=256 agcount=4, agsize=3277258 blks
= sectsz=512 attr=2
data = bsize=4096 blocks=13109032, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0