RHEL7: How to get started with XFS.

Share this link


XFS is now the RHEL7 default file system.

XFS brings the following benefits:

  • ability to manage up to 500TB file systems with files up to 50TB in size,
  • best performance for most workloads (especially with high speed storage and larger number of cores),
  • less CPU intensive than most of the other file systems (better optimizations around lock contention, etc),
  • the most robust at large scale (has been run at hundred plus TB sizes for many years),
  • the most common file system in multiple key upstream communities: most common base for ceph, gluster and openstack more broadly,
  • pioneered most of the techniques now in Ext4 for performance (like delayed allocation),
  • no file system check at boot time,
  • CRC checksum on all metadata blocks.

XFS was already fully supported in RHEL6 but, as it was not the default file system, perhaps are you not used to it. It’s time to rectify this.

XFS Basic Management

To create a new logical volume called lv_vol with a size of 100MB in the vg volume group, type:

# lvcreate --size 100M --name lv_vol /dev/vg

To create a new XFS file system, type:

# mkfs.xfs /dev/vg/lv_vol

To mount the new file system under /mnt, type:

# mount /dev/vg/lv_vol /mnt

To increase the file system size by 50MB, type:

# lvextend --size +50M /dev/vg/lv_vol
# xfs_growfs /mnt

Note1: This is only possible for a mounted file system.
Note2: You can’t reduce a XFS file system even though you unmount it. You have to back it up, drop it and recreate it.

XFS Advanced Management

If a problem occurs and you want to repair the file system, according to the man pages you are supposed to mount and unmount it before typing:

# xfs_repair /dev/vg/lv_vol

Note: Try the “-L” option (“force log zeroing“) to clear the log if nothing else works.

To assign a label (up to 12 characters) to the file system, type:

# umount /dev/vg/lv_vol
# xfs_admin -L "Label" /dev/vg/lv_vol

Note: With RHEL 7.6, it is now possible to assign a label to a mounted file system with the xfs_io command: # xfs_io -c “Label” /dev/vg/lv_vol

To read the label (the file system can be mounted or not but you need to specify the partition name), type:

# xfs_admin -l /dev/vg/lv_vol

XFS Backup Management

To do a full backup of the file system and put it into the /root/dump.xfs file without specifying any dump label, type:

# xfsdump -F -f /root/dump.xfs /mnt

Note1: You can specify the mounting point or the partition name.
Note2: It is only possible for a mounted file system.
Note3: You can run an incremental dump by using the “-l” option with a number between 0 and 9 (0=full dump).

If you want to specify a session label and a media label, type:

# xfsdump -L session_label -M media_label -f /root/dump.xfs /dev/vg/lv_vol

To restore the file system, type:

# xfsrestore -f /root/dump.xfs /mnt

To get the list of all the available dumps, type:

# xfsrestore -I

To defragment the file system (operation normally not needed), type:

# xfs_fsr /dev/vg/lv_vol

Note: Both mount point and partition name are valid.

To freeze the file system before taking a snapshot, type:

# xfs_freeze -f /mnt

Note: You have to specify the mount point, the partition name is not allowed.

To unfreeze the file system, type:

# xfs_freeze -u /mnt

To copy the contents of a file system (here mounted under /mnt) to another directory, type:

# xfsdump -J - /mnt | xfsrestore -J - /new

Note: The “-J” option avoids any write into the inventory.

Source: RHEL 7 Storage Administration Guide.

Additional Resources

You can also read this thread from ServerFault about the proper way to deal with corrupt XFS filesystems.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
2 comments on “RHEL7: How to get started with XFS.
  1. TCJ says:

    Is it possible that during exam I get to LABEL my current rootfilesystem? Because it is impossible to unmount your current working filesystem to LABEL it, unless going to rescue or target mode?

Leave a Reply

Upcoming Events (Local Time)

There are no events.

RHCSA7: Task of the day

Allowed time: 5 minutes.
Set up time services pointing to default time servers.

RHCE7: Task of the day

Allowed time: 10 minutes.
Set up a default secure MariaDB database called maria and back up the database with mysqldump.

Follow me on Twitter

Poll for favorite RHEL 7 book

What is your favorite RHEL 7 book to prepare RHCSA & RHCE exams?

View Results

Loading ... Loading ...

Poll for most difficult RHCSA 7 topic

What do you think is the most difficult RHCSA 7 topic?

View Results

Loading ... Loading ...

Poll for most difficult RHCE 7 topic

What do you think is the most difficult RHCE 7 topic?

View Results

Loading ... Loading ...