Hello folks,

We have been using OpenStack for a while and needed a reliable way to keep snapshots on hot storage for compliance and quick recovery. While Cinder provides the mechanism to create snapshots, the actual scheduling and rotation are largely left for the operator to figure out.

I know there are robust commercial tools like Trilio (awesome tool, by the way), but I wanted a lightweight, open-source alternative to manage the snapshot lifecycle without the extra overhead. So, I built SnapSentry.

It is written in Go, completely free, and MIT licensed, so I thought I should share it with the community.

Key Features:

  • Metadata-Driven: No central database or config files; just tag your volumes with metadata and it works. (Helper command takes care of metadata updates)

  • Atomic-ish VM Snapshots: Automatically identifies all volumes attached to a specific VM and snapshots them in parallel to minimize consistency gaps.

  • Smart Concurrency: Uses a hybrid model (Parallel for attached volumes, Sequential for unattached) to prevent API throttling.

  • Resilient: Handles transient OpenStack errors (500s) and cleans up orphaned "zombie" snapshots automatically.

  • Secure: Supports restricted Application Credentials for least-privilege operation.

Here is the repo: https://github.com/aravindh-murugesan/openstack-snapsentry-go

Cheers, and feedback is welcome!

Note: I do use AI assistant for docs, but the logic or the app itself is not vibe-coded.


I'm not sure if this is the right place to post this, if it's not, I apologize. Just trying to contribute to the openstack ecosystem :)