Chapter 12. File systems and storage

This chapter lists the most notable changes to file systems and storage between RHEL 8 and RHEL 9.

12.1. File systems

The XFS filesystem now supports bigtime and inobtcount features

The XFS filesystem now supports two new on-disk features, each of which is enabled by default by mkfs.xfs in RHEL 9. These two new features are:

  • Timestamp support beyond the year 2038 (bigtime).
  • Inode btree counters (inobtcount), to reduce mount time on large filesystems.

As a result of this update, filesystems created with default mkfs.xfs parameters will not be mountable on RHEL 8 systems.

To create a new filesystem that will be compatible with the RHEL 8 kernel, disable these new features by adding -m bigtime=0,inobtcount=0 to the mkfs.xfs command line. A filesystem created in this way will not support timestamps beyond the year 2038.

A filesystem created in RHEL 8 which does not support these features may be upgraded using the xfs_admin utility on the unmounted block device containing the filesystem. It is recommended to check the filesystem for consistency prior to this operation. The command will also cause an xfs_repair to be run on the device after the change.

To enable bigtime support:

  • xfs_admin -O bigtime=1 /dev/device

To enable inode btree counters:

  • xfs_admin -O inobtcount=1 /dev/device

To enable both at the same time:

  • xfs_admin -O bigtime=1,inobtcount=1 /dev/device

See the xfs_admin(8) man page for details.

The exFAT filesystem is now supported in RHEL 9

The exFAT filesystem is now supported in RHEL 9. This is a filesystem designed for external USB storage and interoperability and data exchange with other operating systems. The filesystem is not intended as a general-purpose, performant, or scalable Linux filesystem. An exFAT filesystem may be created by installing the exfatprogs package and using the mkfs.exfat utility.

See the mkfs.exfat(8) man page for details.

ext4 filesystem now supports timestamps beyond the year 2038

The ext4 filesystem is now supporting timestamps beyond the year 2038. This feature is fully automatic and does not require any user action to leverage it. The only requirement is that the inode size is larger than 128 bytes, which it is by default.

New nfs-v4-utils package

New package nfs-v4-utils, which contains a minimal set of the demons and tool required to support only NFSv4 has been added. This is a replacement for the standard nfs-utils package.

GFS2 file systems are now created with format version 1802

GFS2 file systems in RHEL 9 are created with format version 1802. This enables the following features:

  • Extended attributes in the trusted namespace ("trusted.* xattrs") are recognized by gfs2 and gfs2-utils.
  • The rgrplvb option is active by default. This allows gfs2 to attach updated resource group data to DLM lock requests, so the node acquiring the lock does not need to update the resource group information from disk. This improves performance in some cases.

File systems created with the new format version will not be able to be mounted under earlier RHEL versions and older versions of the fsck.gfs2 utility will not be able to check them.

Users can create a file system with the older format version by running the mkfs.gfs2 command with the option -o format=1801.

Users can upgrade the format version of an older file system running tunegfs2 -r 1802 device on an unmounted file system. Downgrading the format version is not supported.

12.2. Storage

VDO Management software has been removed

The python-based VDO Management software is no longer available in RHEL 9. Instead of this software, use the LVM-VDO implementation for managing VDO volumes.

Multiple write policies from VDO has been removed

VDO no longer has multiple write policies. VDO now uses the async write policy exclusively. The 'sync' and 'async-unsafe' write policies have been removed.