Snapshot Manager
Project description
Snapm
Snapshot manager (snapm) manages named snapshot sets on Linux systems. Each snapshot set captures coordinated snapshots across multiple volumes, representing a consistent point-in-time system state that can be referenced and managed as a single unit.
Features
- Coordinated snapshot sets: Create coordinated snapshots across multiple volumes
- Bootable snapshots: Generate boot entries for snapshot boot and failsafe revert
- Multiple backends: Support for LVM2 (Copy-on-Write and Thin) and Stratis
- Flexible scheduling: Integration with systemd timers for automated snapshot creation with retention policies
- Size policies: Flexible snapshot sizing with multiple strategies
- Plugin architecture: Extensible design for additional storage backends
Quick Start
Installation
From RPM (Fedora/CentOS/RHEL)
Install from distribution repositories (when available):
dnf install snapm boom-boot
Manual Installation
- Create and activate a virtual environment:
python3 -m venv --system-site-packages .venv && source .venv/bin/activate
- If
boom-bootis not installed from your distribution's packages, clone and install it withpip:
git clone https://github.com/snapshotmanager/boom-boot.git
cd boom-boot
python3 -m pip install .
- Repeat the process with the
snapmrepository:
git clone https://github.com/snapshotmanager/snapm.git
cd snapm
python3 -m pip install .
Basic Usage
Create a bootable snapshot set
Create a snapshot set named "before-upgrade" of root and home, with snapshot boot and revert boot entries:
snapm snapset create --bootable --revert before-upgrade / /home
List snapshot sets
snapm snapset list
Show detailed information:
snapm snapset show before-upgrade
Boot into a snapshot
- Reboot and select the snapshot boot entry from the GRUB menu
- Entry will be named: "Snapshot before-upgrade YYYY-MM-DD HH:MM:SS (version)"
- Optionally run
grub2-reboot <title>to pre-select snapshot boot entry, e.g.:
grub2-reboot "Snapshot before-upgrade YYYY-MM-DD HH:MM:SS (version)"
- Use
grub-rebootinstead ofgrub2-rebooton Debian and Ubuntu systems.
Revert to snapshot state
snapm snapset revert before-upgrade
Then reboot into the Revert boot entry.
Note: Reverting destroys the snapshot set (snapshots are merged back into the origin volumes).
Clean up
Delete snapshot set when no longer needed:
snapm snapset delete before-upgrade
Common Workflows
System Updates
Before major system updates:
snapm snapset create --bootable --revert pre-update / /var
If update goes wrong, revert:
snapm snapset revert pre-update
When satisfied with update, clean up:
snapm snapset delete pre-update
Development Snapshots
Quick development checkpoint:
snapm snapset create dev-checkpoint /home /var
Continue working...
If needed, revert specific volumes by splitting them into a dedicated snapshot set first:
snapm snapset split dev-checkpoint dev-checkpoint-home /home
Example output:
SnapsetName: dev-checkpoint-home
Sources: /home
NrSnapshots: 1
Time: 2025-08-30 12:44:00
UUID: ee82269f-8c78-5814-b47a-b9be31bcebb5
Status: Inactive
Autoactivate: no
Bootable: no
snapm snapset revert dev-checkpoint-home
Alternatively revert the entire snapshot set:
snapm snapset revert dev-checkpoint
Documentation
- User Guide - Comprehensive usage documentation
- API Documentation - Auto-generated API docs
- Manual Pages - System manual pages
Requirements
- Linux system with LVM2 or Stratis volumes
- boom-boot
- Root privileges for performing storage operations
- Python 3.9+
Supported Storage Backends
| Backend | Type | Snapshots | Thin Provisioning | Status |
|---|---|---|---|---|
| LVM2 | Copy-on-Write | ✓ | ✗ | Stable |
| LVM2 Thin | Thin Pools | ✓ | ✓ | Stable |
| Stratis | Thin Pools | ✓ | ✓ | Stable |
Contributing
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
Support
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Related Projects
- boom - Boot manager for Linux snapshot boot
- stratis-cli - Command-line tool for Stratis storage
- lvm2 - The LVM2 logical volume manager
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snapm-0.5.0.tar.gz.
File metadata
- Download URL: snapm-0.5.0.tar.gz
- Upload date:
- Size: 118.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
635d7857bdc7895c045e868653c24ce283e10e3dcc92b78ab6ca0820449acdc7
|
|
| MD5 |
8cc00ee8b1c221465efb5559aa900a7f
|
|
| BLAKE2b-256 |
54447db722fe20d3e8bb8c9348ceedc4b7f17d2a5301d9da9c8377e1a29b0569
|
File details
Details for the file snapm-0.5.0-py3-none-any.whl.
File metadata
- Download URL: snapm-0.5.0-py3-none-any.whl
- Upload date:
- Size: 106.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4092cadee2f6156fb4e7784711789bf5c17991481f60b77ff3c1c6d4bdbabfc
|
|
| MD5 |
fdfb1e69320de2f60d94b8936e9528ca
|
|
| BLAKE2b-256 |
9b7d90da95ca272d08d43a0db73055dae1532e57ddeb02f9c73d359bb1f314bd
|