NVIDIA UFM Enterprise User Manual

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 

Creating Configuration Snapshot

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

--config

Configuration-only backup

--label TEXT

Optional description for snapshot

--list

List existing snapshots

--dry-run

Preview operation without executing

--verbose

Enable detailed output

Restore Configuration Snapshot

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

  1. Restore latest snapshot (snapshot #1). Run:

    ufm_versions_mgr restore --config

  2. 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


Configuration Validation


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.

Snapshot Rotation

  • 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

Setting Up Periodic Configuration Snapshots

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.

  1. Open the root user’s crontab:

    sudo crontab -e
    
  2. 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:

    0 0 * * * /usr/bin/ufm_versions_mgr backup --config --label "Daily config backup"
    

     

  3. 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.

  1. 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 checksum
    echo "$(date '+%F %T') - Getting checksum of tracked files..."
    
    CURRENT=""
    for f in "${UFM_CONF_FILES[@]}"; do
        [ -f "$f" ] && CURRENT="$CURRENT$(md5sum "$f" | awk '{print $1}')"
    done
    
    if [ -d "$PLUGINS_DIR" ]; then
        PLUGINS_SUM=$(find "$PLUGINS_DIR" -type f \( -name "*.conf" -o -name "*.cfg" -o -name "*.json" -o -name "*.plugin_version" \) \
            ! -path "*/run/*" ! -path "*/lock/*" \
            -exec md5sum {} + 2>/dev/null | sort | md5sum | awk '{print $1}')
        CURRENT="$CURRENT$PLUGINS_SUM"
    fi
    
    CURRENT_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" ]; then
        echo "$(date '+%F %T') - Configuration changed, creating snapshot..."
        /usr/bin/ufm_versions_mgr backup --config --label "Periodic backup"
        echo "$CURRENT_SUM" > "$CHECKSUM_FILE"
    else
        echo "$(date '+%F %T') - No configuration change detected, skipping snapshot."
    fi
    
    echo "<=============================>"

  2. Make the Script Executable

    chmod +x /usr/local/bin/ufm_backup_if_changed.sh

  3. Open a crontab to edit

    sudo crontab -e

  4. 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

HA Considerations

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.

Troubleshooting

Issue

Solution

No configuration snapshots found

Create first snapshot:

sudo ufm_versions_mgr backup --config


Last updated: