LVM Snapshot Size Calculator
Size an LVM snapshot volume based on expected change rate and snapshot lifetime.
Inputs
Percent of source LV's data that changes per day
Recommended Snapshot Size (GB)
22.50
Overflow Risk
Moderate — monitor snapshot usage during the retention window.
Base Estimate (no margin)
18.00
Snapshot Size as % of Source LV
11.25%
Step by step
Values used
Source LV Size (GB) = 200; Daily Change Rate (%) = 3; Days Snapshot Will Be Kept = 3; Safety Margin (%) = 25
Snapshot space needed
snapshot_space = source_LV_size × daily_change_rate% × days_kept × (1 + safety_margin%)
Recommended Snapshot Size (GB)
= 22.50
Overflow Risk
= Moderate — monitor snapshot usage during the retention window.
Base Estimate (no margin)
= 18.00
Snapshot Size as % of Source LV
= 11.25
How it works
A classic (non-thin) LVM snapshot only needs to store copy-on-write blocks — the original contents of any block on the source LV that gets overwritten after the snapshot was taken — not a full copy of the source. Its required size therefore scales with how much data changes during the time the snapshot is kept, not with the source LV's total size. Undersizing it is dangerous: if a COW snapshot fills up, LVM automatically drops it and it becomes permanently invalid, which is why a safety margin above the raw estimate is standard practice.
Formula
Snapshot space needed
snapshot_space = source_LV_size × daily_change_rate% × days_kept × (1 + safety_margin%)
- L
- source LV size
- r
- daily change rate fraction
- d
- days the snapshot is retained
- m
- safety margin fraction
Frequently Asked Questions
What happens if an LVM snapshot runs out of space?
The kernel automatically invalidates (drops) the snapshot once its copy-on-write space is exhausted, and it becomes permanently unusable — you cannot resume or top it up after the fact. This is why over-provisioning with a safety margin matters more for snapshots than most other storage sizing decisions.
Can I resize an LVM snapshot after creating it?
Yes, with lvextend on the snapshot volume itself, and it's safe to do proactively if you notice usage climbing faster than expected (via lvs -o snap_percent). Extending before it fills is far preferable to losing the snapshot.
Does a snapshot slow down writes to the source LV?
Yes, somewhat — every write to the source LV after a snapshot exists must first copy the original block to the snapshot's COW area before the new data is written, adding overhead proportional to the number of active snapshots. This is one reason snapshots are typically kept short-lived (hours to a few days) rather than as long-term backups.