Bookmark this page

Chapter 5. Implementing Storage Using New Features

Abstract

Goal Describe the major enhancements in local and remote file system and volume management components.
Objectives
  • Describe the modern file system designs that include volume and pool management features.

  • Describe new storage driver enhancements that include runtime compression and deduplication.

  • Configure NFS service with new tools and an awareness of the enhancements and changes to NFS in RHEL 8.

Sections
  • Managing Layered Storage with Stratis (and Guided Exercise)

  • Compressing and Deduplicating Storage with VDO (and Guided Exercise)

  • Administering NFS Enhancements (and Guided Exercise)

Lab

Implementing Storage Using New Features

Managing Layered Storage with Stratis

Objectives

After completing this section, students should be able to describe modern file system designs that include volume and pool management features.

Stratis Storage Manager

Red Hat Enterprise Linux 8 includes the Stratis storage manager, which supports management of collections of block devices to create flexible file systems. The combined file system and volume management functionality first learned in ZFS or Btrfs is now available in Stratis. Both the Btrfs and the ZFS file systems are unsupported and no longer available in Red Hat Enterprise Linux 8. Stratis also provides advanced storage features like thin provisioning, snapshotting, and monitoring.

Figure 5.1: Stratis storage manager elements

Implementing a Volume-managing File System with Stratis

  • Stratis is a volume managing file system (VMF).

  • Volume managing file systems integrate the file system in the volume itself, in contrast with LVM where the volume requires a file system on top of it.

  • Stratis' design assumes SSD as the default storage type, or at least as a cache tier, so the focus of the design is on improving flexibility and reliability.

  • BtrFS and ZFS are no longer supported or available in Red Hat Enterprise Linux 8.

  • Stratis provides advanced features like thin provisioning, snapshotting, and monitoring.

Stratis File System Persistent Mounting

  • Persistent Stratis file system mounts in /etc/fstab may require using the x-systemd.requires=stratisd.service mount option.

  • Use the blkid command to locate the file system UUID foruse in /etc/fstab.

Figure 5.2: Stratis in the Linux Storage Management Stack

Describing Stratis Layers

  • Stratis manages pools which are a collection of block devices. Stratis file systems are created within those pools. Those file systems incorporate both the volume and the file system, by default XFS.

  • Internally, Stratis uses the Backstore subsystem to manage the block devices, and the Thinpool subsystem to manage the thin-provisioned pools.

  • The Backstore has a data tier which maintains the on-disk metadata on block devices, and detects and corrects data corruption.

  • The cache tier uses high-performance block devices to act as a cache on top of the data tier.

  • The Thinpool subsystem manages the thin-provisioned volumes associated with the Stratis file systems. This subsystem uses the dm-thin device mapper driver to replace LVM on the virtual volume sizing and management. These volumes are created with a large virtual size, and are formatted with XFS. If the Stratis file system's virtual size is approached, the file system is automatically enlarged.

Note

As Stratis volumes are thin-provisioned, tools like df will report incorrect sizes.

Figure 5.3: Stratis layers

Managing Volume Managed File Systems with the Stratis Storage Manager

  • Create pools of one or several block devices with the stratis pool create command.

  • Add additional block devices to a pool with the stratis pool add-data command.

  • Create dynamic and flexible file systems on top of pools with the stratis filesystem create command.

  • Stratis supports file system snapshotting with the stratis fs snapshot command. Snapshots are independent of the source file systems.

  • You can use the D-Bus API to communicate with the stratisd daemon.

Stratis simplifies the storage stack

Stratis simplifies many aspects of local storage provisioning and configuration. For example, installing the OS to a Stratis pool using Anaconda. After selecting the disks to use for the pool, the filesystem sizing workflow is omitted. Anaconda could use the Stratis API directly, instead of needing work in Blivet to build an API on top of command line tools. Other tools and products like Cockpit, RHV, and Atomic would be simpler and less error-prone using Stratis for storage and snapshots, because they do not worry about per-filesystem sizing but only that the pool has enough “backing store”. The API allows better tool-to-tool integration than using any CLI programmatically.

References

For more information, refer to the Managing layered local storage with Stratis chapter in the Red Hat Enterprise Linux 8 Configuring and Managing File Systems Guide at https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/managing_file_systems

Stratis Storage

What Stratis learned from ZFS, Btrfs, and Linux Volume Manager

Revision: rh354-8.0-0e36520