I currently have 2 branches related to snapshots on GlusterFS.
https://github.com/major0/glusterfs/tree/lvm-snapshot-cleanupBased code from Sriram that I found on GitHub, though I removed the ZFS code from Sriram's patches and created this LVM-only branch. Subsequent changes to this branch where done i response to changes necessary to implement support for btrfs snapshots (and cleanup a memory leak in the missed-snapshot code)...
https://github.com/major0/glusterfs/tree/btrfs-snapshots
Btrfs snapshots currently work and have been tested on Ubuntu 16.04, though the process for configuring btrfs for gluster snapshots has not yet been documented.
Required interfaces to support hard-coded snapshot support can be found:
https://github.com/major0/glusterfs/blob/lvm-snapshot-cleanup/xlators/mgmt/glusterd/src/snapshot/glusterd-lvm-snapshot.h
https://github.com/major0/glusterfs/blob/lvm-snapshot-cleanup/xlators/mgmt/glusterd/src/snapshot/glusterd-lvm-snapshot.h
It should be relatively straight-forward to package up these interfaces into a structure of function pointers and allow glusterd to itterate the array firing off the glusterd_is_<type>_brick() function at the path to figure out which subsystem to use.
_______________________________________________ Gluster-devel mailing list Gluster-devel@xxxxxxxxxxx http://lists.gluster.org/mailman/listinfo/gluster-devel