Repository navigation
Releases
Releases · slackdaystudio/vmsnap
v2.0.4-beta
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
--groupByis rejected up front (exit code10) instead of backing up into a folder namedundefined.
New
--groupByguard. A VM can only have one incremental chain, because checkpoints belong to the VM. VMSnap now refuses (exit code10) to start a new chain when the VM's existing backups in--outputuse a different--groupBy, instead of silently wiping the existing chain's checkpoints. Pass--forceto switch anyway.--copy. Takes a standalone full copy intovmsnap-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
Fixes
- Backups now fail loudly. If virtnbdbackup fails for a domain, VMSnap exits with the new code
9(ERR_BACKUP) instead of0. 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
--socketfileis given, so the AppArmor rule from the virtnbdbackup docs applies. See the README's new AppArmor section: without that rule, every backup fails withPermission denied, which previously went unreported. --scrub --checkpointName='*'now scrubs all VMSnap checkpoints/bitmaps (it previously matched nothing).
Maintenance
- Resolved all
npm auditadvisories (dev dependencies only);lint-stagedupgraded 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
Full Changelog: v2.0.1-beta...v2.0.2-beta
v2.0.1-beta
Full Changelog: v2.0.0-beta...v2.0.1-beta
v2.0.0-beta
Full Changelog: v1.1.0-beta...v2.0.0-beta
v1.1.0-beta
Full Changelog: v1.0.1-beta...v1.1.0-beta
v1.0.1-beta
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
Updating some comments and docs.
Full Changelog: v1.2.1-alpha...v1.0.0-beta