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.
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
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.
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.