I've just released version 0.4.1 of buttersink. As of this version, I
consider it "beta" and out of the experimental phase.
Buttersink will synchronize a set of read-only snapshots in a btrfs
filesystem to an Amazon S3 bucket, and vice-versa. It intelligently
picks parent snapshots to "diff" from and send, so that a minimal
amount of data needs to be sent over the wire and stored in the
backend.
I've put a fair amount of effort into making buttersink efficient and
reliable enough for backups. Currently implemented features include:
- Transfers between a local btrfs filesystem and an Amazon S3 bucket
- Automatically synchronizes a set of snapshots, or a single snapshot,
transferring only needed differences
- Intelligent selection of full and incremental transfers to minimize
costs of transfer and storage, and to minimize risks from corruption
of a difference
- Smart heuristics based on S3 file sizes, btrfs quota information,
and btrfs-tools internal snapshot parent identification ("ruuid")
- Resumable, checksummed multi-part uploads to S3 as a back-end
- Robust handling of btrfs send and receive errors
- Configurable verbosity and logging
- Conveniently lists snapshots and sizes in either btrfs or S3
- Detects and (optionally) deletes failed partial transfers
If there's interest, I'll extend it to sync to a remote btrfs
filesystem as well.
The utility is on PyPi as "buttersink", and the GitHub page is here:
https://github.com/AmesCornish/buttersink.
Thanks in advance for any feedback!
- Ames
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html