Chapter 11. File systems and storage

The following chapters contain the most notable changes to file systems and storage between RHEL 8 and RHEL 9.

11.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 nfsv4-client-utils package

New package nfsv4-client-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.

Options in Samba utilities have been renamed and removed for a consistent user experience

The Samba utilities have been improved to provide a consistent command-line interface. These improvements include renamed and removed options. Therefore, to avoid problems after the update, review your scripts that use Samba utilities, and update them, if necessary.

Samba 4.15 introduces the following changes to the Samba utilities:

  • Previously, Samba command-line utilities silently ignored unknown options. To prevent unexpected behavior, the utilities now consistently reject unknown options.
  • Several command-line options now have a corresponding smb.conf variable to control their default value. See the man pages of the utilities to identify if a command-line option has an smb.conf variable name.
  • By default, Samba utilities now log to standard error (stderr). Use the --debug-stdout option to change this behavior.
  • The --client-protection=off|sign|encrypt option has been added to the common parser.
  • The following options have been renamed in all utilities:

    • --kerberos to --use-kerberos=required|desired|off
    • --krb5-ccache to --use-krb5-ccache=CCACHE
    • --scope to --netbios-scope=SCOPE
    • --use-ccache to --use-winbind-ccache
  • The following options have been removed from all utilities:

    • -e and --encrypt
    • -C removed from --use-winbind-ccache
    • -i removed from --netbios-scope
    • -S and --signing
  • To avoid duplicate options, certain options have been removed or renamed from the following utilities:

    • ndrdump: -l is no longer available for --load-dso
    • net: -l is no longer available for --long
    • sharesec: -V is no longer available for --viewsddl
    • smbcquotas: --user has been renamed to --quota-user
    • nmbd: --log-stdout has been renamed to --debug-stdout
    • smbd: --log-stdout has been renamed to --debug-stdout
    • winbindd: --log-stdout has been renamed to --debug-stdout

cramfs module has been removed

Due to lack of users, the cramfs kernel module is removed. squashfs is recommended as an alternative solution.

Mandatory file locking support has been removed from RHEL 9

Mandatory file locking is no longer supported in RHEL 9 and later versions. The mand mount option is ignored by this kernel and its use generates a warning in the system log.

NFSv2 is no longer supported

RHEL 9 NFS client and server no longer support NFSv2.

Stratis storage manager is now available

Stratis is a local storage manager. It provides managed file systems on top of pools of storage with additional features to the user:

  • Manage snapshots and thin provisioning
  • Automatically grow file system sizes as needed
  • Maintain file systems
  • Pool Level Encryption
  • TMP2 and NBDE Support

To administer Stratis storage, use the stratis utility, which communicates with the stratisd background service.

For more information, see the Stratis documentation: Setting up Stratis file systems.

DAX mount option and reflink are now compatible

Reflinked files are now generally compatible with DAX mode. The file system DAX mount option -o dax=always is compatible with reflink-enabled file systems. Files that were reflinked can be set to DAX mode using inode flags. For more information see the xfs(5) man page.

11.2. Storage

NVMe-FC Boot from SAN is now fully supported

The Non-volatile Memory Express (NVMe) over Fibre Channel (NVMe/FC) Boot, which was introduced in Red Hat Enterprise Linux 9.2 as a Technology Preview, is now fully supported. Some NVMe/FC host bus adapters support a NVMe/FC boot capability. For more information on programming a Host Bus Adapter (HBA) to enable NVMe/FC boot capability, see the NVMe/FC host bus adapter manufacturer’s documentation.

Converting a standard LV to a thin LV by using lvconvert is now possible

By specifying a standard logical volume (LV) as a thin pool data volume, you can now convert a standard LV to a thin LV by using the lvconvert command. With this update, you can convert existing LVs to use the thin provisioning facility.

Integrity targets now generate Audit events

The integrity target now generates Audit events. You can use these Audit events for logging of additional security-relevant event types.

dm-verity now supports forward error correction

The dm-verity target now supports forward error correction (FEC). With FEC, you can use pre-generated error correction data to recover from corrupted blocks.

NVMe native multipathing is now enabled by default

Non-volatile Memory Express (NVMe) native multipathing is enabled by default in Red Hat Enterprise Linux 9 and is the recommended multipathing solution. You can now configure multipathing on NVMe without using the DM Multipath framework. NVMe native multipathing provides higher performance.

The default kernel setting for the nvme_core.multipath option is now set to Y, which means that native NVMe multipathing is enabled.

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.

Stratis storage manager is now available

Stratis is a local storage manager. It provides managed file systems on top of pools of storage with additional features to the user:

  • Manage snapshots and thin provisioning
  • Automatically grow file system sizes as needed
  • Maintain file systems
  • Pool Level Encryption
  • TMP2 and NBDE Support

To administer Stratis storage, use the stratis utility, which communicates with the stratisd background service.

For more information, see the Stratis documentation: Setting up Stratis file systems.