Managing storage on AlmaLinux end to end: mapping disks with lsblk, creating GPT partitions with parted, formatting with ext4 and XFS, mounting via /etc/fstab, managing LVM with lvextend and snapshots, and getting to know Btrfs and Stratis as modern options.

In the previous episode, Episode 7, we managed services with systemd. Now we touch the most physical layer of the system: storage. Data is the most valuable asset on a server — and how you organize disks, partitions, and filesystems determines the security, performance, and flexibility of that data.
This episode starts with basic disk inspection, moves on to partitioning and filesystems, then dives into LVM, the backbone of modern storage, and ends with Btrfs and Stratis as next-generation filesystem options.
lsblkdf -hT| Command | Function |
|---|---|
lsblk | Maps disks, partitions, and LVM relationships |
df -hT | Space usage and filesystem types |
blkid | Shows UUIDs and filesystem types |
findmnt | Maps mount points and their sources |
sudo parted /dev/sdb printsudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary xfs 1MiB 100%
sudo parted /dev/sdb set 1 lvm onOnce the partition is ready, format it with a filesystem. The two main options on AlmaLinux:
| Filesystem | Advantages | Best For |
|---|---|---|
| XFS | RHEL default; high performance for large files | Databases, file servers |
| ext4 | Mature, flexible, can be shrunk | General systems, general storage |
sudo mkfs.xfs /dev/sdb1
sudo mkdir -p /data
sudo mount /dev/sdb1 /dataManual mounts disappear at reboot. To make them permanent, register them in /etc/fstab. The best way to reference a partition is by UUID — not device name (/dev/sdb1), because device names can change at boot.
sudo blkid /dev/sdb1UUID=8f2a4c1e-9d23-4f6a-b1b5-7c9d0e2f3a44 /data xfs defaults,noatime 0 2Warning
The defaults,noatime option disables access-time tracking — safe for almost all workloads and improves I/O performance. For databases, consider options like noatime too, but avoid nobarrier outside dedicated servers.
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile| Layer | Abbreviation | Function |
|---|---|---|
| Physical Volume | PV | Physical disks/partitions contributed |
| Volume Group | VG | Combined pool of all PVs |
| Logical Volume | LV | Logical volumes where filesystems are mounted |
sudo vgs
sudo lvssudo lvcreate -L 20G -n datalv vg01
sudo mkfs.xfs /dev/vg01/datalv
sudo mount /dev/vg01/datalv /datasudo lvextend -L +10G /dev/vg01/datalv
sudo xfs_growfs /datalvextend grows the LV, xfs_growfs grows the filesystem on top of it — both run online without unmounting. This is the answer to the classic "partition is full but there's free disk" problem.
sudo lvcreate -L 5G -s -n datalv-snap /dev/vg01/datalv
sudo lvremove /dev/vg01/datalv-snapsudo lvcreate -L 50G -T vg01/thinpool
sudo lvcreate -V 100G -T vg01/thinpool -n thinlvBtrfs offers subvolumes, snapshots, and built-in checksums:
sudo btrfs subvolume create /data
sudo btrfs subvolume snapshot /data /snap1Stratis is a storage pool manager that mimics the ZFS/Btrfs concept on top of LVM and XFS — managed with simple commands:
sudo stratis pool create pool1 /dev/sdb
sudo stratis fs create pool1 datafs
sudo mount /dev/stratis/pool1/datafs /dataInfo
The storage choice depends on your needs: LVM+XFS is the mature enterprise default; Btrfs is attractive if you need pure filesystem snapshots; Stratis bridges the two with a simpler syntax.
/etc/fstab without testing. One wrong line = system won't boot. Test with sudo mount -a first./dev/sdb1) in fstab. Names can change; use UUID.xfs_growfs after lvextend. The LV grows, but the filesystem doesn't until you grow it.lvs regularly.mkfs on the wrong disk. Always verify with lsblk and blkid before formatting.In this episode 8 you've mastered storage on AlmaLinux: inspection with lsblk, GPT partitioning with parted, ext4 and XFS filesystems, persistent mounts via UUID-based /etc/fstab, LVM management with lvextend and snapshots, swap, and Btrfs and Stratis as modern options.
Key takeaways:
lsblk, df -hT, and blkid before touching disks./etc/fstab using UUID, then test with mount -a.lvextend + xfs_growfs for online growth, lvcreate -s for snapshots.Well-organized data is the foundation of reliable services. In the next episode, Episode 9, we'll cover Networking & Firewalld — network configuration with NetworkManager and nmcli, static IP and DNS setup, bonding and VLANs, and zone-based firewalling with firewall-cmd. See you there!