On 10/2/20 3:35 PM, Craig Barratt wrote:
> Snapshotting is a great idea but it's not built in, since the underlying
> commands and approaches vary so much between different OSes and filesystems.
noted.
though, LVMs _are_ fairly widespread.
support's available on linux*, of course; and, netbsd & freebsd (though dunno
the nitpicky-gotcha differences ...)
iirc, MacOS has (had?) CoreStorage ...
and M$'s lumbering towards "everything on linux subsystem" ... whatever that
ends up looking like.
fwiw, every one of _many_ pcs 'in my neighborhood' -- local & remote, bare
metal & containers -- are on LVs.
and, of course, not every one has live(ish) data ... but _many_ do. DIY'ing it
has always included snapshotting.
I'm tired of maintaining separate approaches; that's why I'm looking at
BackupPC!
I'm not clear about what _specific_ variations in "underlying commands &
approaches" you're referring to,
I do recognize that with zfs/btrfs/stratis/etc/etc, there's a whole other ball
of wax.
> Several users have developed scripts that do snapshots, which are especially
> beneficial on windoze given the prevalence of enforced file locking. It
> sounds like you have discovered some of those already.
yup.
> Generally the approach is to use $Conf{DumpPreShareCmd} to set up the
> snapshot, and $Conf{DumpPostShareCmd} to clean up.
yep. for any one share it's reasonably trivial.
I think one should be able to provide an iteration framework across
backup-types, that wraps specifics provided in configs.
For a list of shares -- such as in my "something like" example^^ -- it gets
more complicated.
rsnapshot's approach, specifying in config
linux_lvm_cmd_lvcreate /usr/sbin/lvcreate
linux_lvm_cmd_lvremove /usr/sbin/lvremove
linux_lvm_cmd_mount /usr/bin/mount
linux_lvm_cmd_umount /usr/bin/umount
linux_lvm_snapshotsize 100M
linux_lvm_snapshotname snap_rsnapshot
linux_lvm_vgpath /dev
linux_lvm_mountpath /mnt/rsnaphsot/snap
then using form
backup lvm://vg0/home/path2/ lvm-vg0/
Backs up the LVM logical volume called home, of volume group
vg0,
to <snapshot_root>/<interval>.0/lvm-vg0/. Will create, mount,
backup,
unmount and remove an LVM snapshot for each lvm:// entry.
e.g.
backup lvm://dev/VG0/LV_DATA1 this.project/LV_DATA1
works quite flexibly/portably.
My 1st inclination is to try to take the 'old' approach, put all my needed
snapshotting in an external script, and pass the "(current) $share" from
BackupPC's exec shell to the external script ...
Still messy; hence the chat about some form of integration.
> One recent addition which should be helpful is $Conf{ClientShareName2Path}
> which allows you to map the share name to the real path (in this case, the
> snapshot path). There is, however, an open issue that I haven't addressed
> yet which is that it also is applied during restore, which doesn't seem like
> the right thing to do.
I don't see that in the release docs; I assume it's in recent/master. (Will
take a peek here in a bit ...)
_______________________________________________
BackupPC-users mailing list
[email protected]
List: https://lists.sourceforge.net/lists/listinfo/backuppc-users
Wiki: https://github.com/backuppc/backuppc/wiki
Project: https://backuppc.github.io/backuppc/