digint / digint/btrbk

Should I Prefer Fileserver-initiated Backups from Several Hosts (Instead of Each Host Sending to the Server)?

Open
#414 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Perl
Stars
2.1k
Forks
139
PR merge metrics
No merged PRs in 30d

Description

I have a small LAN with a fileserver that should store backups from each attached host on the LAN. What is the most efficient (performant) way to do this with btrbk?

Each host (laptops, desktops and a few other devices) does hourly local snapshots with btrbk. Once per day, I would like to send backups of each volume on each device to the local fileserver. This has to be done via SSH (as NFS isn't supported by btrfs send|receive, afaik).

The options I'm aware of from the btrbk readme are:

1. host-initiated backup to the fileserver from each host

2. fileserver-initiated backups from all hosts

My guess is that the second option is preferred. Is that correct?

Assuming I use the second option, do I need to be concerned about it initiating a backup on a host while that host is also performing a local hourly snapshot?

What are the disadvantages of the fileserver-initiated approach?

If one host is offline, will the backup procedure continue on with the other hosts it can reach at that time?

Since deleting snapshots can potentially be a costly operation (in terms of performance), should I split the process into two steps, where one step would pull the backups from each host without any deletions, and a second step would then prune the backups according to configured retention policies?

How many backups (snapshots) can I safely retain for each host volume? I would like to keep as many as possible, but I know there is a threshold at which performance can become a problem.

I mount btrfs volumes on the **hosts** with these mount options:

autodefrag,noatime,nodiratime,compress=lzo,space_cache=v2

And I have the systemd fstrim.service enabled.

The fileserver is a dedicated backup server, not a general-purpose fileserver. I plan to use most of those same mount options. Do I need the autodefrag option? (Will autodefrag help or hurt performance in this use-case?)

Are there any other recommendations?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.