Skip to content

Releases

v2.0.4-beta

Choose a tag to compare

@sentry0 sentry0 released this 19 Oct 11:56

Fixes

  • "Bitmap already exists: virtnbdbackup.0" backups. VMSnap removed only libvirt's checkpoint metadata when starting a new backup period, leaving the bitmaps behind on the disk, so the next full backup failed. Checkpoints are now deleted together with their bitmaps.
  • Running and paused VMs. QEMU keeps a running VM's bitmaps in memory and only writes them to the image on shutdown, so VMSnap couldn't see or remove them. Bitmaps are now listed and removed through QEMU (QMP) for running/paused VMs, which also cleans up bitmaps orphaned by earlier versions. (libvirt marks a domain "tainted: custom-monitor" when this happens; it's harmless.)
  • Bi-annual pruning. The pruning window was measured from six months back instead of the start of the current half, so the previous half's backups were deleted on the first run of a new half. It now waits 90 days into the half, as documented.
  • Invalid --groupBy is rejected up front (exit code 10) instead of backing up into a folder named undefined.

New

  • --groupBy guard. A VM can only have one incremental chain, because checkpoints belong to the VM. VMSnap now refuses (exit code 10) to start a new chain when the VM's existing backups in --output use a different --groupBy, instead of silently wiping the existing chain's checkpoints. Pass --force to switch anyway.
  • --copy. Takes a standalone full copy into vmsnap-copy-{period} folders without creating or deleting checkpoints, so a second schedule (e.g. a quarterly copy) can run alongside a VM's backup chain. One copy per period; works with --prune.

See the README sections "One Backup Chain Per VM" and "Standalone Copies".

Full changelog: v2.0.3-beta...v2.0.4-beta

v2.0.3-beta

Choose a tag to compare

@sentry0 sentry0 released this 19 Oct 10:54

Fixes

  • Backups now fail loudly. If virtnbdbackup fails for a domain, VMSnap exits with the new code 9 (ERR_BACKUP) instead of 0. Remaining domains are still backed up, and a domain whose backup failed is never pruned.
  • AppArmor hosts (Ubuntu/Debian). VMSnap no longer overrides virtnbdbackup's NBD socket path unless --socketfile is given, so the AppArmor rule from the virtnbdbackup docs applies. See the README's new AppArmor section: without that rule, every backup fails with Permission denied, which previously went unreported.
  • --scrub --checkpointName='*' now scrubs all VMSnap checkpoints/bitmaps (it previously matched nothing).

Maintenance

  • Resolved all npm audit advisories (dev dependencies only); lint-staged upgraded to v16 (development now needs Node ≥ 20.17; runtime still Node 18+).
  • Integration tests now run on GitHub-hosted runners and assert checkpoints are created instead of skipping.

Full changelog: v2.0.2-beta...v2.0.3-beta

v2.0.2-beta

Choose a tag to compare

@sentry0 sentry0 released this 06 Dec 16:56

v2.0.1-beta

Choose a tag to compare

@sentry0 sentry0 released this 05 Dec 09:32

v2.0.0-beta

Choose a tag to compare

@sentry0 sentry0 released this 29 Nov 20:12

v1.1.0-beta

Choose a tag to compare

@sentry0 sentry0 released this 28 Nov 14:22

v1.0.1-beta

Choose a tag to compare

@sentry0 sentry0 released this 29 Dec 02:42

Fixed a bug with pruning logic when groupBy is set to bi-annual.

Full Changelog: v1.0.0-beta...v1.0.1-beta

v1.0.0-beta

Choose a tag to compare

@sentry0 sentry0 released this 11 Dec 02:34

Updating some comments and docs.

Full Changelog: v1.2.1-alpha...v1.0.0-beta

v1.2.1-alpha

v1.2.1-alpha Pre-release
Pre-release

Choose a tag to compare

@sentry0 sentry0 released this 06 Nov 23:50

Fix for a missing break statement.

Full Changelog: v1.2.0-alpha...v1.2.1-alpha

v1.2.0-alpha

v1.2.0-alpha Pre-release
Pre-release

Choose a tag to compare

@sentry0 sentry0 released this 06 Nov 21:39

Adding support for a bi-annual groupBy type.

Full Changelog: v1.1.0-alpha...v1.2.0-alpha