Configurations Snapshot
Configuration snapshots provide fast backup and restore of UFM configurations.
The backup includes:
UFM configuration files (
/opt/ufm/files/confall the files that are saved when calling the UFM backup.sh script)Plugin configurations
UFM Install arguments
UFM version and plugin versions
Basic Snapshot
Create a configuration snapshot. Run:
ufm_versions_mgr backup --config
Snapshot with Label
Create a snapshot with a descriptive label. Run:
ufm_versions_mgr backup --config --label "My own label"
List Snapshots
List available snapshots. Run:
ufm_versions_mgr backup --config --list
Command Options
Option | Description |
| Configuration-only backup |
| Optional description for snapshot |
| List existing snapshots |
| Preview operation without executing |
| Enable detailed output |
Check Version Compatibility
Check if snapshot can be restored. Run:
ufm_versions_mgr restore --config --check-version --snapshot-number 1
The UFM and plugin versions must be identical for the restore process to complete successfully.
Restore Snapshot
Restore latest snapshot (snapshot #1). Run:
ufm_versions_mgr restore --config
Restore specific snapshot. Run:
ufm_versions_mgr restore --config --snapshot-number
2
A pre-restore backup is automatically created to enable rollback if needed.
The UFM service is stopped during the restore process.
Preview Restore (Dry-Run)
Preview restore operation. Run:
ufm_versions_mgr restore --config --snapshot-number 1 --dry-run
Upon every backup operation, the tool validates the schema of some configurations.
If the files are not aligned, the operation will be blocked since the current is invalid.
Maximum snapshots: 10
Automatic rotation when creating 11th snapshot
Oldest snapshot (snapshot-10) deleted after confirmation
Snapshots renumbered: 9→10, 8→9, ..., 1→2, new→1
Option 1: Simple Periodic Snapshot (Recommended for Most Users)
This approach uses a cron job to create a new configuration snapshot at a regular interval.
Keep in mind that UFM supports a maximum of 10 configuration snapshots.
Once this limit is reached, the oldest snapshot is automatically deleted when a new one is created.
Suggested Interval
Since the snapshot limit is 10:
Every 12 hours → keeps ~5 days of history
Every 24 hours (daily) → keeps ~10 days of history
For most environments, daily backups are sufficient and provide a good balance between retention and frequency.
Open the root user’s crontab:
sudo crontab -e
Add one of the following lines depending on your desired frequency:
Every 12 hours:
0*/12* * * /usr/bin/ufm_versions_mgr backup --config --label"Periodic config backup"Every day at midnight:
00* * * /usr/bin/ufm_versions_mgr backup --config --label"Daily config backup"Save and exit. Cron will automatically schedule and run the snapshots.
Option 2: Advanced Snapshot — Only When Configuration Changes
This approach is more efficient and avoids unnecessary snapshots when UFM configuration files haven’t changed.
It uses a custom shell script that:
Computes a checksum of key UFM configuration files and plugin configurations.
Compares it with the previous checksum.
Creates a new snapshot only if changes are detected.
Create custom script in /usr/local/bin/
/usr/local/bin/ufm_backup_if_changed.sh
#!/bin/bash# List of files to track (can be modified based on your needs and what is important)UFM_CONF_FILES=("/opt/ufm/files/conf/opensm/opensm.conf""/opt/ufm/files/conf/gv.cfg""/opt/ufm/files/conf/opensm/partitions.conf""/opt/ufm/files/conf/opensm/opensm-health-policy.conf") PLUGINS_DIR="/opt/ufm/files/conf/plugins"CHECKSUM_FILE="/opt/ufm/ufm_conf_checksum"# Compute combined checksumecho"$(date '+%F %T') - Getting checksum of tracked files..."CURRENT=""forfin"${UFM_CONF_FILES[@]}";do[ -f"$f"] && CURRENT="$CURRENT$(md5sum "$f" | awk '{print $1}')"doneif[ -d"$PLUGINS_DIR"];thenPLUGINS_SUM=$(find"$PLUGINS_DIR"-typef \( -name"*.conf"-o -name"*.cfg"-o -name"*.json"-o -name"*.plugin_version"\) \ ! -path"*/run/*"! -path"*/lock/*"\ -execmd5sum {} + 2>/dev/null |sort| md5sum |awk'{print $1}') CURRENT="$CURRENT$PLUGINS_SUM"fiCURRENT_SUM=$(echo"$CURRENT"| md5sum |awk'{print $1}') LAST_SUM=$(cat"$CHECKSUM_FILE"2>/dev/null)echo"$(date '+%F %T') - Current checksum: $CURRENT_SUM, Last checksum: $LAST_SUM"if["$CURRENT_SUM"!="$LAST_SUM"];thenecho"$(date '+%F %T') - Configuration changed, creating snapshot..."/usr/bin/ufm_versions_mgr backup --config --label"Periodic backup"echo"$CURRENT_SUM">"$CHECKSUM_FILE"elseecho"$(date '+%F %T') - No configuration change detected, skipping snapshot."fiecho"<=============================>"Make the Script Executable
chmod +x /usr/local/bin/ufm_backup_if_changed.sh
Open a crontab to edit
sudo crontab -e
Add:
0*/6* * * /usr/local/bin/ufm_backup_if_changed.sh >> /var/log/ufm_periodic_config_backup.log
Script Output example
<=============================>
2025-11-07 22:35:24 - Getting checksum of tracked files...
2025-11-07 22:35:24 - Current checksum: 5556f600a2513b9300e11c139c2a44d7, Last checksum: 5556f600a2513b9300e11c139c2a44d7
2025-11-07 22:35:24 - No configuration change detected, skipping snapshot.
<=============================>
2025-11-07 22:36:03 - Getting checksum of tracked files...
2025-11-07 22:36:03 - Current checksum: 82f78302f08bb7a8b4ae7759f050e3f1, Last checksum: 5556f600a2513b9300e11c139c2a44d7
2025-11-07 22:36:03 - Configuration changed, creating snapshot...
[INFO] Using container runtime: podman
[INFO] HA environment detected - validating master node
[INFO] Running on HA master node - proceeding
[INFO] HA Version: 6.1.1-2
[INFO] Creating configuration snapshot...
[INFO] Label: Periodic backup
[INFO] Starting backup to /opt/ufm/files/backup/configurations/ufm-config-snapshot-temp/ufm-config-snapshot-20251107-223604.zip
[INFO] Validating UFM configuration files
[INFO] Creating temporary UFM container: ufm-config-validator
[INFO] Temporary UFM container completed successfully
[INFO] Configuration validation PASSED
[INFO] Creating temporary UFM container: ufm-restore-118159
[INFO] Temporary UFM container completed successfully
[INFO] Backup completed successfully
[INFO] Snapshot created successfully: /opt/ufm/files/backup/configurations/ufm-config-snapshot-temp/ufm-config-snapshot-20251107-223604.zip
[INFO] Creating snapshot info
[INFO] Snapshot info created successfully: /opt/ufm/files/backup/configurations/ufm-config-snapshot-temp
[INFO] Rotating snapshots
[INFO] Renaming /opt/ufm/files/backup/configurations/ufm-config-snapshot-temp to /opt/ufm/files/backup/configurations/ufm-config-snapshot-1
[INFO] Configuration snapshot created successfully!
[INFO] Snapshot location: /opt/ufm/files/backup/configurations
<=============================>
Summary:
Method | Snapshot Frequency | Pros | Cons |
Simple (fixed interval) | 12–24h | Easy to set up; predictable history | May create redundant backups |
Advanced (config change based) | On change | Efficient; avoids duplicates | Slightly more complex setup |
In HA environments:
Tool automatically detects HA mode
Must run from master node
Backs up master configuration
Stores in shared location
The same commands apply to both SA and HA environments.
The tool automatically detects and adapts to the environment.
Issue | Solution |
No configuration snapshots found | Create first snapshot: |