Commit graph

4 commits

Author SHA1 Message Date
Martin Kennedy
ae270aeebd [v2] feat: lvm: Add lvm-based backup functionality
This commit implements the needs of #75[^1]: it allows for the
creation of atomic backups when the backup target is a file/dir whose
fs rests on LVM. This ensures the snapshot will be atomic.

By using a mount namespace, the LVM snapshot can be done in the same
directory -- so existing LVM-based applications of ansible_role_restic
can be migrated to this implementation without any discontinuity in
what appears to be backed up.

This combination of LVM's snapshotting layer and mount namespaces
comes with some caveats:

- you cannot backup / due to namespace issues
- subdirs with a separate fs won't be correctly detected
- not all filesystems are happy about LVM snapshots -- btrfs, e.g.
- LVM snapshots come with a performance penalty when active
- fstrim and LVM snapshots don't like each other whatsoever

[^1]: https://github.com/roles-ansible/ansible_role_restic/issues/75

--
Changes in v2:
- Use `findmnt -v` to find snapshot when cleaning up
- Check for _snap before `lvremove -y`

Signed-off-by: Martin Kennedy <hurricos@gmail.com>
2022-08-28 16:12:46 -04:00
L3D
ee06222b20
disable timeout mechanism 2021-12-07 17:47:51 +01:00
L3D
6067180d63
reduce TimeoutStartSec to 900s 2021-05-04 15:37:20 +02:00
L3D
93b9de9826
implement systemd timer 2021-04-29 14:58:12 +02:00