Thanks for the mention!
The only hold-up with Wyng right now is accommodating Qubes different volume-naming schemes so that LVM can be exchanged for Btrfs/reflink if the user at some point requires it. Wyng was also just extended to handle multiple storage pools in a single session to make using wyng-util-qubes
backup and restore a seamless process (and I am one of those users with multiple pools for my qubes).
Wyng was created to scratch my own itch for backing up Qubes safely and quickly, so restic and borg were among the many existing backup tools I researched to fill that need. I would have been happy to simply create my own shell or salt scripts for making backups with any of them if I knew the potential was there. Having experienced Time Machine in a FileVault configuration, where /home is mounted from a chunked disk image called a sparsebundle, I knew that a high level of efficiency could be achieved if 1) the local storage could instantly show large files as chunks, and which chunks were updated, and 2) the remote storage could hardlink chunks as needed to create efficient snapshot history and pruning capability (with the added bonus of deduplication as well). Wyng was designed to have TM-like usage, with brief backup sessions occurring hourly, for instance.
The problem with existing tools is they assume a local storage system with no CoW analysis features so they re-read all of the data in each file to find which chunks of the file have changed (while using fancy terminology to describe this mundane and wasteful process); otherwise, they may be like btrfs-send
which are very efficient but assume you have the same type of filesystem on the remote end. The best combination of assumptions, IMO, is what Wyng does: to use CoW instant delta discovery on the local system and plain Unix fs on the backup destination.
From a security perspective, Wyng also has advantages. Unlike qvm-backup
it doesn’t parse any un-verified tar
archives or other metadata in dom0 (qvm-backup
creates archives with two tar
layers, the outer layer is un-verified when its processed)– in an OS security model where even reading partition tables in dom0 is considered risky, this is significant.
Wyng also doesn’t hand complex archival tasks to untrusted VMs nor to dispVMs that mount untrusted volumes, which is possible attack surface for causing DoS or worse compromise (and tends to be slow).