Logical Volume Manager (LVM) gives Linux administrators flexible storage management with features like dynamic volume resizing, thin provisioning, and snapshots. But with this flexibility comes complexity — monitoring LVM health requires tracking physical volumes, volume groups, logical volumes, thin pools, and snapshots across your entire storage infrastructure.
dargslan-lvm-check is a free Python CLI tool that audits your entire LVM configuration and flags capacity issues, failing snapshots, and overcommitted thin pools before they cause data loss.
Quick Start
pip install dargslan-lvm-check
dargslan-lvm report # Full LVM health report
dargslan-lvm pvs # Physical volume status
dargslan-lvm vgs # Volume group capacity
dargslan-lvm lvs # Logical volume listing
dargslan-lvm snapshots # Snapshot health check
dargslan-lvm thin # Thin pool usage
dargslan-lvm issues # All detected issues
LVM Architecture Overview
LVM works in three layers: Physical Volumes (PVs) are disk partitions or whole disks. Volume Groups (VGs) combine one or more PVs into a storage pool. Logical Volumes (LVs) are carved from VGs and formatted with filesystems. Understanding this hierarchy is essential for proper monitoring.
Monitoring Physical Volumes
Physical volumes are the foundation of LVM. Issues at this layer affect everything above. The tool checks for missing PVs (which indicate disk failures), high utilization, and attribute flags that signal problems.
Volume Group Capacity Tracking
Volume groups must have free space to create new logical volumes or extend existing ones. Running out of VG space means you cannot grow your filesystems. The audit flags VGs over 85% utilized (warning) and over 95% utilized (critical).
Thin Pool Monitoring
Thin provisioning allows overcommitting storage — you can create logical volumes larger than the available physical space. This is powerful but dangerous: if a thin pool fills up completely, all volumes using it will freeze. The tool monitors thin pool data usage and warns at 70% (warning) and 85% (critical).
Snapshot Health Checks
LVM snapshots consume space as the origin volume changes. When a snapshot reaches 100% of its allocated space, it becomes invalid and is automatically dropped. The tool monitors snapshot utilization and warns when snapshots exceed 80% full.
Python API
from dargslan_lvm_check import LVMCheck
lc = LVMCheck()
# Physical volumes
for pv in lc.get_pvs():
print(f"PV: {pv['name']} Size: {pv['size_human']} Free: {pv['free_human']}")
# Volume groups
for vg in lc.get_vgs():
print(f"VG: {vg['name']} Used: {vg['used_percent']}%")
# Full audit
for issue in lc.audit():
print(f"[{issue['severity']}] {issue['message']}")
Automation and Alerting
# Check LVM health every hour
0 * * * * dargslan-lvm issues >> /var/log/lvm-health.log 2>&1
# JSON output for monitoring integration
dargslan-lvm json > /tmp/lvm-status.json
Best Practices
- Never let thin pools exceed 85% data usage — extend them proactively
- Monitor snapshot utilization and remove old snapshots promptly
- Keep at least 10-15% free space in volume groups for emergency extensions
- Set up alerting for PV attribute changes that indicate hardware issues
- Document your LVM layout and keep the documentation updated after changes
Conclusion
LVM provides excellent storage flexibility, but requires diligent monitoring. dargslan-lvm-check automates the health checking process and gives you early warning of capacity issues, failing snapshots, and overcommitted thin pools. Install it on every server running LVM.
For more storage and Linux administration tools, visit dargslan.com.