Btrbk: Difference between revisions
imported>Onny mNo edit summary |
imported>Onny mNo edit summary |
||
Line 1: | Line 1: | ||
[https://digint.ch/btrbk/ Btrbk], a tool for creating snapshots and remote backups of btrfs subvolumes. | [https://digint.ch/btrbk/ Btrbk], a tool for creating snapshots and remote backups of btrfs subvolumes. | ||
== | == Setup == | ||
When transfering backups with btrbk of subvolumes used as a root filesystem, it is recommended to mount the Btrfs drive, in this example <code>/dev/sda1</code> with the root subvolume id 5 to a specific mountpoint. So in this case all subvolumes will be available as a subdirectory in <code>/btr_pool</code> an can be accessed by btbrk. | When transfering backups with btrbk of subvolumes used as a root filesystem, it is recommended to mount the Btrfs drive, in this example <code>/dev/sda1</code> with the root subvolume id 5 to a specific mountpoint. So in this case all subvolumes will be available as a subdirectory in <code>/btr_pool</code> an can be accessed by btbrk. | ||
Line 14: | Line 14: | ||
}; | }; | ||
</nowiki>}} | </nowiki>}} | ||
== Configuration == | |||
Following example configuration will create a weekly incremental backup of a local Btrfs subvolume called <code>nixos</code> and sends it compressed to a remote host <code>myhost</code> via ssh using provided authentication credentials. Note that this references the mount point <code>/btr_pool</code> from above. | Following example configuration will create a weekly incremental backup of a local Btrfs subvolume called <code>nixos</code> and sends it compressed to a remote host <code>myhost</code> via ssh using provided authentication credentials. Note that this references the mount point <code>/btr_pool</code> from above. | ||
Line 37: | Line 39: | ||
Note that for transport stream compression using <code>lz4</code> to work, the package must also be installed on the target host. | Note that for transport stream compression using <code>lz4</code> to work, the package must also be installed on the target host. | ||
== | == Manual usage == | ||
Manually dry running and testing a btrbk configuration | Manually dry running and testing a btrbk configuration |
Revision as of 11:11, 11 March 2023
Btrbk, a tool for creating snapshots and remote backups of btrfs subvolumes.
Setup
When transfering backups with btrbk of subvolumes used as a root filesystem, it is recommended to mount the Btrfs drive, in this example /dev/sda1
with the root subvolume id 5 to a specific mountpoint. So in this case all subvolumes will be available as a subdirectory in /btr_pool
an can be accessed by btbrk.
/etc/nixos/hardware-configuration.nix
fileSystems = {
"/btr_pool" = {
device = "/dev/sda1";
fsType = "btrfs";
options = [ "subvolid=5" ];
};
};
Configuration
Following example configuration will create a weekly incremental backup of a local Btrfs subvolume called nixos
and sends it compressed to a remote host myhost
via ssh using provided authentication credentials. Note that this references the mount point /btr_pool
from above.
/etc/nixos/configuration.nix
services.btrbk = {
extraPackages = [ pkgs.lz4 ];
instances.remote = {
onCalendar = "weekly";
settings = {
ssh_identity = "/etc/btrbk_key";
ssh_user = "btrbk";
stream_compress = "lz4";
volume."/btr_pool" = {
target = "ssh://myhost/mnt/mybackups";
subvolume = "nixos";
};
};
};
};
Note that for transport stream compression using lz4
to work, the package must also be installed on the target host.
Manual usage
Manually dry running and testing a btrbk configuration
btrbk -c /etc/btrbk/remote.conf --dry-run --progress --verbose run
The filename remote.conf
references the instance name choosen in the example configuration above.