September 13th, 2024

Btrfs2s3 maintains a tree of incremental backups in an S3-compatible API

btrfs2s3 is a tool for managing incremental backups of Btrfs filesystems to S3-compatible cloud storage, offering automatic backup management, cost efficiency, and planned future enhancements for improved functionality.

Read original articleLink Icon
Btrfs2s3 maintains a tree of incremental backups in an S3-compatible API

The GitHub repository btrfs2s3 is a tool designed for managing incremental backups of Btrfs filesystems to cloud object storage that supports S3-compatible APIs. It maintains a tree structure of backups, starting with a full backup at the root and followed by incremental backups based on a defined schedule. The tool automatically manages expired backups and corresponding snapshots on disk. Key advantages include atomic snapshots for consistency, cost efficiency in cloud storage usage, and a direct connection to S3 without needing a FUSE filesystem. However, it has some limitations, such as requiring the Btrfs filesystem and the complexity of restoring individual files, which necessitates restoring entire sequences of snapshots. Installation requires btrfs-progs and Python bindings for btrfsutil, and configuration is done through a YAML file. The primary command for usage is btrfs2s3 update, which can be scheduled with cron jobs. Security features include managing permissions for snapshot operations and supporting backup encryption. Future enhancements are planned, including daemon support for continuous updates and improved restoration commands. This tool is particularly beneficial for users seeking a reliable backup strategy for Btrfs filesystems using cloud storage.

- btrfs2s3 manages incremental backups of Btrfs filesystems to S3-compatible cloud storage.

- It features automatic management of backups and snapshots, ensuring cost efficiency and consistency.

- The tool requires Btrfs and has limitations in restoring individual files.

- Installation and configuration are straightforward, utilizing a YAML file for settings.

- Future updates aim to enhance functionality and user experience.

Link Icon 1 comments
By @geek_at - 8 months
Interesting concept. I wrote something very similar but for ZFS and in Bash. Zfs even supports zero knowledge incremental encrypted backups. The backup target can verify the integrity without ever needing the key