<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I was having trouble setting up geo-replication, and I finally figured out why. Gsyncd is trying to use the wrong (but valid) name for the slave server, and it’s resolving to an address it can’t reach. It does this&nbsp;even though I tried to setup the geo-replication to a specific IP address, and the initial create succeeded.<br><br>The environment I’m working with has server1 &amp; server3 with bricks for a replication volume, and my slave server ‘spire’ is located remotely. Because there are multiple paths between the systems, I wanted to force geo-replication to occur with a specific slave address, so I tried to setup replication with an ip based URL.&nbsp;<br><br>Setup/config of the geo-replication works, and appears to start, but is permanently in a failure state:<br><br>[root@server1 geo-replication]# gluster volume geo-replication status<br>No active geo-replication sessions<br>[root@server1 geo-replication]# gluster volume geo-replication gvOvirt 10.78.4.1::geobk-Ovirt create push-pem<br>Creating geo-replication session between gvOvirt &amp; 10.78.4.1::geobk-Ovirt has been successful<br>[root@server1 geo-replication]# gluster volume geo-replication status<br>&nbsp;<br>MASTER NODE&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;MASTER VOL&nbsp; &nbsp;&nbsp;MASTER BRICK&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;SLAVE&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;STATUS&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;CHECKPOINT STATUS&nbsp; &nbsp;&nbsp;CRAWL STATUS&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<br>-------------------------------------------------------------------------------------------------------------------------------------------------------<br>server1.xxx.xxx.xxx&nbsp; &nbsp;&nbsp;gvOvirt&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;/v0/ha-engine/gbOvirt&nbsp; &nbsp;&nbsp;<a href="ssh://10.78.4.1::geobk-Ovirt">ssh://10.78.4.1::geobk-Ovirt</a>&nbsp; &nbsp;&nbsp;Not Started&nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>server3.xxx.xxx.xxx&nbsp; &nbsp;&nbsp;gvOvirt&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;/v0/ha-engine/gbOvirt&nbsp; &nbsp;&nbsp;ssh://10.78.4.1::geobk-Ovirt&nbsp; &nbsp;&nbsp;Not Started&nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>[root@server1 geo-replication]# gluster volume geo-replication gvOvirt 10.78.4.1::geobk-Ovirt start<br>Starting geo-replication session between gvOvirt &amp; 10.78.4.1::geobk-Ovirt has been successful<br>[root@server1 geo-replication]# gluster volume geo-replication status<br>&nbsp;<br>MASTER NODE&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;MASTER VOL&nbsp; &nbsp;&nbsp;MASTER BRICK&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;SLAVE&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;STATUS&nbsp; &nbsp;&nbsp;CHECKPOINT STATUS&nbsp; &nbsp;&nbsp;CRAWL STATUS&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;<br>--------------------------------------------------------------------------------------------------------------------------------------------------<br>server1.xxx.xxx.xxx&nbsp; &nbsp;&nbsp;gvOvirt&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;/v0/ha-engine/gbOvirt&nbsp; &nbsp;&nbsp;ssh://10.78.4.1::geobk-Ovirt&nbsp; &nbsp;&nbsp;faulty&nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>server3.xxx.xxx.xxx&nbsp; &nbsp;&nbsp;gvOvirt&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;/v0/ha-engine/gbOvirt&nbsp; &nbsp;&nbsp;ssh://10.78.4.1::geobk-Ovirt&nbsp; &nbsp;&nbsp;faulty&nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;N/A&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br><br>Tracking it down in the logs, it’s because it’s trying to connect to “root@spire” instead of “root@10.78.4.1”, even though the setup seemed to use 10.78.4.1 just fine:<br><br>2014-09-23 14:13:41.595123] I [monitor(monitor):130:monitor] Monitor: starting gsyncd worker<br>[2014-09-23 14:13:41.764898] I [gsyncd(/v0/ha-engine/gbOvirt):532:main_i] &lt;top&gt;:&nbsp;syncing: gluster://localhost:gvOvirt -&gt;<b> ssh://root@spire:gluster://localhost:geobk-Ovirt</b><br>[2014-09-23 14:13:53.40934] E [syncdutils(/v0/ha-engine/gbOvirt):223:log_raise_exception] &lt;top&gt;: connection to peer is broken<br>[2014-09-23 14:13:53.41244] E [resource(/v0/ha-engine/gbOvirt):204:errlog] Popen: command "ssh -oPasswordAuthentication=no -oStrictHostKeyChecking=no -i /var/lib/glusterd/geo-replication/secret.pem -oControlMaster=auto -S /tmp/gsyncd-aux-ssh-gaHXrp/e68410dcff276efa39a94dc5b33e0d8e.sock&nbsp;<b>root@spire</b>&nbsp;/nonexistent/gsyncd --session-owner c9a371cd-8644-4706-a4b7-f12bc2c37ac6 -N --listen --timeout 120 gluster://localhost:geobk-Ovirt" returned with 255, saying:<br>[2014-09-23 14:13:53.41356] E [resource(/v0/ha-engine/gbOvirt):207:logerr] Popen: ssh&gt; ssh_exchange_identification: Connection closed by remote host<br>[2014-09-23 14:13:53.41569] I [syncdutils(/v0/ha-engine/gbOvirt):192:finalize] &lt;top&gt;: exiting.<br>[2014-09-23 14:13:54.44226] I [monitor(monitor):157:monitor] Monitor: worker(/v0/ha-engine/gbOvirt) died in startup phase<br><br>So where did it pick this up from? If anything, I think it’d try the full name of the slave server, but it didn’t even try that. The slave’s hostname, btw, is spire.yyy.yyy.xxx, not even in the same domain as the master.<br><br>I worked around this by setting up a new hostname resolution for ‘spire' and tweaking the search path so it resolved things the way I wanted (to 10.78.4.1), but that shouldn’t be necessary. Also seems like&nbsp;this might cause security issues (well, ok, probably not since it’s rsyncing over ssh, but traffic could definitely wind up where you didn’t expect it) because it’s not trying to connect to what I&nbsp;explicitly told it to. And in this case, it ran afoul of some sshd root login allowed rules, but could have easily been other firewall rules too. And confusion because the geo-replication status report is misleading,&nbsp;it’s trying to sync to an address that isn’t reflected there.<br><br>Seems like a bug to me, but figured I’d check here first.<div><br></div><div>&nbsp; -Darrell</div><div><br></div></body></html>