Btrbk: Difference between revisions
imported>Onny Update example configuration |
imported>Onny mNo edit summary |
||
Line 3: | Line 3: | ||
== Configuration == | == Configuration == | ||
When transfering backups with btrbk of | 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. | ||
{{file|/etc/nixos/hardware-configuration.nix|nix|<nowiki> | {{file|/etc/nixos/hardware-configuration.nix|nix|<nowiki> |
Revision as of 04:55, 5 February 2023
Btrbk, a tool for creating snapshots and remote backups of btrfs subvolumes.
Configuration
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" ];
};
};
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.
Usage
Manually dry running and testing a btrbk configuration
btrbk -c /etc/btrbk/remote.conf --dry-run --verbose run
The filename remote.conf
references the instance name choosen in the example configuration above.