GlusterFS geo-replication can fail on Fedora due to a missing dynamic library symlink.
Checking /var/log/glusterfs/geo-replication/gv0_node1/gsyncd.log reveals:
class Changes(object):
File "/usr/libexec/glusterfs/python/syncdaemon/libgfchangelog.py", line 19, in Changes
use_errno=True)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 361, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib64/libgfchangelog.so: cannot open shared object file: No such file or directory
Looking at /usr/libexec/glusterfs/python/syncdaemon/libgfchangelog.py:
class Changes(object):
libgfc = CDLL("/usr/lib64/libgfchangelog.so", mode=RTLD_GLOBAL,
use_errno=True)
On Fedora and RHEL, bare .so library symlinks (as opposed to versioned sonames like .so.0) are provided by the -devel development packages. To resolve this error, install the development package:
sudo dnf install glusterfs-devel
Reference: Red Hat Bugzilla 1631595