Why I Chose Stratis Over Traditional LVM
Back when I was working with CentOS 7, I frequently had to calculate LVM capacities and format XFS partitions. Whenever my manager reported that a server was running out of disk space, I’d find myself struggling to resize partitions. The process wasn’t necessarily difficult, but it was extremely time-consuming. Forgetting just one lvextend or xfs_growfs command could easily lead to system errors.
When my company migrated to CentOS Stream 9, I looked for a more flexible solution. I needed something as powerful as ZFS but well-integrated into the Red Hat ecosystem. That’s when I discovered Stratis.
After 6 months of deploying it for log server clusters, I’ve found that Stratis truly liberates your workflow. It doesn’t completely replace LVM; in fact, Stratis is a management layer (daemon) that runs on top to hide the complexity of manual configuration. You no longer need to calculate every GB or manually choose a file system format. Everything is “Thin Provisioning” by default.
Core Concepts: Pool, Filesystem, and Blockdev
Before running any commands, you need to understand these three basic concepts:
- Blockdev: Physical hard drives or partitions (such as /dev/sdb). Note: Stratis requires devices to have a minimum capacity of 1GB.
- Pool: A group of Blockdevs combined into a massive resource “bucket.”.
- Filesystem: Created from a Pool. The filesystem automatically expands as data grows. It only occupies the actual space currently used within the Pool.
Hands-on: Configuring Stratis from A to Z
Suppose I have a CentOS Stream 9 server with two empty hard drives, /dev/sdb and /dev/sdc (20GB each).
1. Installing and Enabling the Service
First, install the service package and the control tools:
sudo dnf install stratisd stratis-cli -y
sudo systemctl enable --now stratisd
Ensure the service is in the active (running) state before proceeding.
2. Creating a Storage Pool
I will group the two hard drives into a pool named data_pool. Warning: Stratis will wipe all existing data on the drives, so double-check your device names.
sudo stratis pool create data_pool /dev/sdb /dev/sdc
Check the results with this command:
sudo stratis pool list
At this point, the “Total Physical Size” column will display 40GB.
3. Creating a Filesystem
This is my favorite part. You don’t need to choose between XFS or ext4; Stratis handles everything behind the scenes.
sudo stratis fs create data_pool web_data
It takes less than 2 seconds to create a ready-to-use file system.
4. Mounting the Filesystem Safely
Stratis creates devices at the path /stratis/pool_name/fs_name. To avoid errors during reboot, I always use the UUID instead of the direct path.
sudo mkdir -p /mnt/web_data
lsblk -f /stratis/data_pool/web_data
Add the following line to /etc/fstab. Note: The x-systemd.requires=stratisd.service option is mandatory so that the system waits for the Stratis daemon to start before attempting to mount the drive.
UUID=xxxx-xxxx-xxxx /mnt/web_data xfs defaults,x-systemd.requires=stratisd.service 0 0
Snapshots – An Insurance Policy for Your Data
Before updating code or making major configuration changes, I always create a Snapshot. If I accidentally break the system, rolling back takes only seconds.
Create a snapshot for web_data:
sudo stratis fs snapshot data_pool web_data web_data_backup_$(date +%F)
This snapshot acts as an independent filesystem. You can mount it to a separate directory to recover data without affecting the running service.
Real-world Lessons After 6 Months of Operation
Here are some crucial notes when using Stratis in a production environment:
- The 80% Rule: Despite thin provisioning, if the physical Pool reaches 100% capacity, all Filesystems will suffer I/O hangs. I always set up Zabbix alerts for when the Pool reaches the 80% threshold.
- Expand in a Heartbeat: Need more capacity? Just plug in a new drive and run
sudo stratis pool add-data data_pool /dev/sdd. No downtime, no unmounting required. - Performance: Based on
fiobenchmarks, Stratis’s read/write speeds are comparable to pure LVM, with negligible latency differences. - Limitations: Stratis currently only supports XFS. If your project strictly requires ext4, Stratis is not yet the right choice.
Conclusion
Stratis makes storage administration much less tedious and more streamlined. It eliminates cumbersome manual steps, allowing us to focus on data protection instead of repeatedly typing commands to expand partitions.
If you are using CentOS Stream 9 or AlmaLinux, try setting up a small lab with Stratis. Believe me, once you get used to high-speed filesystem creation, you won’t want to go back to the old way.

