<div dir="ltr"><div>Hi Aravinda and Strahil,</div><div><br></div><div>The cluster is new so it wasn&#39;t a big deal to re-do using public addresses. That&#39;s done and geo-replication is working.</div><div><br></div><div>Thank you for your help!</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 4 Mar 2020 at 17:17, Aravinda VK &lt;<a href="mailto:aravinda@kadalu.io">aravinda@kadalu.io</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">Hi David,<div><br></div><div>I like the Strahil’s idea of adding remote IPs in /etc/hosts with same name as used in B cluster. Since Geo-replication uses ssh for syncing it should work. Only issue I can think about is if the hostname of cluster B conflicts with hostnames of Cluster A.</div><div><br></div><div>—</div><div>regards</div><div>Aravinda Vishwanathapura</div><div><a href="https://kadalu" target="_blank">https://kadalu</a>.io<br><div><br><blockquote type="cite"><div>On 04-Mar-2020, at 4:13 AM, David Cunningham &lt;<a href="mailto:dcunningham@voisonics.com" target="_blank">dcunningham@voisonics.com</a>&gt; wrote:</div><br><div><div dir="ltr"><div>Hi Strahil,</div><div><br></div><div>The B cluster are communicating with each other via a LAN, and it seems the A cluster has got B&#39;s LAN addresses (which aren&#39;t accessible from the internet including the A cluster) through the geo-replication process. That being the case, I think we&#39;ll have to re-do the B cluster to replicate using public addresses instead of the LAN.</div><div><br></div><div>Thank you.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 3 Mar 2020 at 18:07, Strahil Nikolov &lt;<a href="mailto:hunter86_bg@yahoo.com" target="_blank">hunter86_bg@yahoo.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On March 3, 2020 4:13:38 AM GMT+02:00, David Cunningham &lt;<a href="mailto:dcunningham@voisonics.com" target="_blank">dcunningham@voisonics.com</a>&gt; wrote:<br>
&gt;Hello,<br>
&gt;<br>
&gt;Thanks for that. When we re-tried with push-pem from cafs10 (on the<br>
&gt;A/master cluster) it failed with &quot;Unable to mount and fetch slave<br>
&gt;volume<br>
&gt;details.&quot; and in the logs we see:<br>
&gt;<br>
&gt;[2020-03-03 02:07:42.614911] E<br>
&gt;[name.c:258:af_inet_client_get_remote_sockaddr] 0-gvol0-client-0: DNS<br>
&gt;resolution failed on host nvfs10.local<br>
&gt;[2020-03-03 02:07:42.638824] E<br>
&gt;[name.c:258:af_inet_client_get_remote_sockaddr] 0-gvol0-client-1: DNS<br>
&gt;resolution failed on host nvfs20.local<br>
&gt;[2020-03-03 02:07:42.664493] E<br>
&gt;[name.c:258:af_inet_client_get_remote_sockaddr] 0-gvol0-client-2: DNS<br>
&gt;resolution failed on host nvfs30.local<br>
&gt;<br>
&gt;These .local addresses are the LAN addresses that B/slave nodes nvfs10,<br>
&gt;nvfs20, and nvfs30 replicate with. It seems that the A/master needs to<br>
&gt;be<br>
&gt;able to contact those addresses. Is that right? If it is then we&#39;ll<br>
&gt;need to<br>
&gt;re-do the B cluster to replicate using publicly accessible IP addresses<br>
&gt;instead of their LAN.<br>
&gt;<br>
&gt;Thank you.<br>
&gt;<br>
&gt;<br>
&gt;On Mon, 2 Mar 2020 at 20:53, Aravinda VK &lt;<a href="mailto:aravinda@kadalu.io" target="_blank">aravinda@kadalu.io</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Looks like setup issue to me. Copying SSH keys manually is not<br>
&gt;required.<br>
&gt;&gt;<br>
&gt;&gt; Command prefix is required while adding to authorized_keys file in<br>
&gt;each<br>
&gt;&gt; remote nodes. That will not be available if ssh keys are added<br>
&gt;manually.<br>
&gt;&gt;<br>
&gt;&gt; Geo-rep specifies /nonexisting/gsyncd in the command to make sure it<br>
&gt;&gt; connects via the actual command specified in authorized_keys file, in<br>
&gt;your<br>
&gt;&gt; case Geo-replication is actually looking for gsyncd command in<br>
&gt;&gt; /nonexisting/gsyncd path.<br>
&gt;&gt;<br>
&gt;&gt; Please try with push-pem option during Geo-rep create command.<br>
&gt;&gt;<br>
&gt;&gt; —<br>
&gt;&gt; regards<br>
&gt;&gt; Aravinda Vishwanathapura<br>
&gt;&gt; <a href="https://kadalu.io/" rel="noreferrer" target="_blank">https://kadalu.io</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 02-Mar-2020, at 6:03 AM, David Cunningham<br>
&gt;&lt;<a href="mailto:dcunningham@voisonics.com" target="_blank">dcunningham@voisonics.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello,<br>
&gt;&gt;<br>
&gt;&gt; We&#39;ve set up geo-replication but it isn&#39;t actually syncing. Scenario<br>
&gt;is<br>
&gt;&gt; that we have two GFS clusters. Cluster A has nodes cafs10, cafs20,<br>
&gt;and<br>
&gt;&gt; cafs30, replicating with each other over a LAN. Cluster B has nodes<br>
&gt;nvfs10,<br>
&gt;&gt; nvfs20, and nvfs30 also replicating with each other over a LAN. We<br>
&gt;are<br>
&gt;&gt; geo-replicating data from the A cluster to the B cluster over the<br>
&gt;internet.<br>
&gt;&gt; SSH key access is set up, allowing all the A nodes password-less<br>
&gt;access to<br>
&gt;&gt; root on nvfs10<br>
&gt;&gt;<br>
&gt;&gt; Geo-replication was set up using these commands, run on cafs10:<br>
&gt;&gt;<br>
&gt;&gt; gluster volume geo-replication gvol0 <a href="http://nvfs10.example.com" target="_blank">nvfs10.example.com</a>::gvol0 create<br>
&gt;&gt; ssh-port 8822 no-verify<br>
&gt;&gt; gluster volume geo-replication gvol0 <a href="http://nvfs10.example.com" target="_blank">nvfs10.example.com</a>::gvol0 config<br>
&gt;&gt; remote-gsyncd /usr/lib/x86_64-linux-gnu/glusterfs/gsyncd<br>
&gt;&gt; gluster volume geo-replication gvol0 <a href="http://nvfs10.example.com" target="_blank">nvfs10.example.com</a>::gvol0 start<br>
&gt;&gt;<br>
&gt;&gt; However after a very short period of the status being<br>
&gt;&quot;Initializing...&quot;<br>
&gt;&gt; the status then sits on &quot;Passive&quot;:<br>
&gt;&gt;<br>
&gt;&gt; # gluster volume geo-replication gvol0 <a href="http://nvfs10.example.com" target="_blank">nvfs10.example.com</a>::gvol0<br>
&gt;status<br>
&gt;&gt; MASTER NODE    MASTER VOL    MASTER BRICK                       <br>
&gt;SLAVE<br>
&gt;&gt; USER    SLAVE                         SLAVE NODE      STATUS    <br>
&gt;CRAWL<br>
&gt;&gt; STATUS    LAST_SYNCED<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
&gt;&gt; cafs10         gvol0         /nodirectwritedata/gluster/gvol0    root<br>
&gt;&gt;      <a href="http://nvfs10.example.com" target="_blank">nvfs10.example.com</a>::gvol0    nvfs30.local    Passive    N/A<br>
&gt;&gt;     N/A<br>
&gt;&gt; cafs30         gvol0         /nodirectwritedata/gluster/gvol0    root<br>
&gt;&gt;      <a href="http://nvfs10.example.com" target="_blank">nvfs10.example.com</a>::gvol0    N/A             Created    N/A<br>
&gt;&gt;     N/A<br>
&gt;&gt; cafs20         gvol0         /nodirectwritedata/gluster/gvol0    root<br>
&gt;&gt;      <a href="http://nvfs10.example.com" target="_blank">nvfs10.example.com</a>::gvol0    N/A             Created    N/A<br>
&gt;&gt;     N/A<br>
&gt;&gt;<br>
&gt;&gt; So my questions are:<br>
&gt;&gt; 1. Why does the status on cafs10 mention &quot;nvfs30.local&quot;? That&#39;s the<br>
&gt;LAN<br>
&gt;&gt; address that nvfs10 replicates with nvfs30 using. It&#39;s not accessible<br>
&gt;from<br>
&gt;&gt; the A cluster, and I didn&#39;t use it when configuring geo-replication.<br>
&gt;&gt; 2. Why does geo-replication sit in Passive status?<br>
&gt;&gt;<br>
&gt;&gt; Thanks very much for any assistance.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Tue, 25 Feb 2020 at 15:46, David Cunningham<br>
&gt;&lt;<a href="mailto:dcunningham@voisonics.com" target="_blank">dcunningham@voisonics.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Hi Aravinda and Sunny,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thank you for the replies. We have 3 replicating nodes on the master<br>
&gt;&gt;&gt; side, and want to geo-replicate their data to the remote slave side.<br>
&gt;As I<br>
&gt;&gt;&gt; understand it if the master node which had the geo-replication<br>
&gt;create<br>
&gt;&gt;&gt; command run goes down then another node will take over pushing<br>
&gt;updates to<br>
&gt;&gt;&gt; the remote slave. Is that right?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; We have already taken care of adding all master node&#39;s SSH keys to<br>
&gt;the<br>
&gt;&gt;&gt; remote slave&#39;s authorized_keys externally, so won&#39;t include the<br>
&gt;push-pem<br>
&gt;&gt;&gt; part of the create command.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Mostly I wanted to confirm the geo-replication behaviour on the<br>
&gt;&gt;&gt; replicating master nodes if one of them goes down.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thank you!<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, 25 Feb 2020 at 14:32, Aravinda VK &lt;<a href="mailto:aravinda@kadalu.io" target="_blank">aravinda@kadalu.io</a>&gt;<br>
&gt;wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hi David,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 25-Feb-2020, at 3:45 AM, David Cunningham<br>
&gt;&lt;<a href="mailto:dcunningham@voisonics.com" target="_blank">dcunningham@voisonics.com</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hello,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I&#39;ve a couple of questions on geo-replication that hopefully<br>
&gt;someone can<br>
&gt;&gt;&gt;&gt; help with:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 1. If there are multiple nodes in a cluster on the master side<br>
&gt;(pushing<br>
&gt;&gt;&gt;&gt; updates to the geo-replication slave), which node actually does the<br>
&gt;&gt;&gt;&gt; pushing? Does GlusterFS decide itself automatically?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Once Geo-replication session is started, one worker will be started<br>
&gt;&gt;&gt;&gt; corresponding to each Master bricks. Each worker identifies the<br>
&gt;changes<br>
&gt;&gt;&gt;&gt; happened in respective brick and sync those changes via Mount. This<br>
&gt;way<br>
&gt;&gt;&gt;&gt; load is distributed among Master nodes. In case of Replica sub<br>
&gt;volume, one<br>
&gt;&gt;&gt;&gt; worker among the Replica group will become active and participate<br>
&gt;in the<br>
&gt;&gt;&gt;&gt; syncing. Other bricks in that Replica group will remain Passive.<br>
&gt;Passive<br>
&gt;&gt;&gt;&gt; worker will become Active if the previously Active brick goes down<br>
&gt;(This is<br>
&gt;&gt;&gt;&gt; because all Replica bricks will have the same set of changes,<br>
&gt;syncing from<br>
&gt;&gt;&gt;&gt; each worker is redundant).<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; 2.With regard to copying SSH keys, presumably the SSH key of all<br>
&gt;master<br>
&gt;&gt;&gt;&gt; nodes should be authorized on the geo-replication client side?<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Geo-replication session is established between one master node and<br>
&gt;one<br>
&gt;&gt;&gt;&gt; remote node. If Geo-rep create command is successful then,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; - SSH keys generated in all master nodes<br>
&gt;&gt;&gt;&gt; - Public keys from all master nodes are copied to initiator Master<br>
&gt;node<br>
&gt;&gt;&gt;&gt; - Public keys copied to the Remote node specified in the create<br>
&gt;command<br>
&gt;&gt;&gt;&gt; - Master public keys are distributed to all nodes of remote Cluster<br>
&gt;and<br>
&gt;&gt;&gt;&gt; added to respective ~/.ssh/authorized_keys<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; After successful Geo-rep create command, any Master node can<br>
&gt;connect to<br>
&gt;&gt;&gt;&gt; any remote node via ssh.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Security: Command prefix is added while adding public key to remote<br>
&gt;&gt;&gt;&gt; node’s authorized_keys file, So that if anyone gain access using<br>
&gt;this key<br>
&gt;&gt;&gt;&gt; can access only gsyncd command.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; ```<br>
&gt;&gt;&gt;&gt; command=gsyncd ssh-key….<br>
&gt;&gt;&gt;&gt; ```<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thanks for your help.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; David Cunningham, Voisonics Limited<br>
&gt;&gt;&gt;&gt; <a href="http://voisonics.com/" rel="noreferrer" target="_blank">http://voisonics.com/</a><br>
&gt;&gt;&gt;&gt; USA: +1 213 221 1092<br>
&gt;&gt;&gt;&gt; New Zealand: +64 (0)28 2558 3782<br>
&gt;&gt;&gt;&gt; ________<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Community Meeting Calendar:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Schedule -<br>
&gt;&gt;&gt;&gt; Every Tuesday at 14:30 IST / 09:00 UTC<br>
&gt;&gt;&gt;&gt; Bridge: <a href="https://bluejeans.com/441850968" rel="noreferrer" target="_blank">https://bluejeans.com/441850968</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Gluster-users mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a><br>
&gt;&gt;&gt;&gt; <a href="https://lists.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">https://lists.gluster.org/mailman/listinfo/gluster-users</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; —<br>
&gt;&gt;&gt;&gt; regards<br>
&gt;&gt;&gt;&gt; Aravinda Vishwanathapura<br>
&gt;&gt;&gt;&gt; <a href="https://kadalu.io/" rel="noreferrer" target="_blank">https://kadalu.io</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; David Cunningham, Voisonics Limited<br>
&gt;&gt;&gt; <a href="http://voisonics.com/" rel="noreferrer" target="_blank">http://voisonics.com/</a><br>
&gt;&gt;&gt; USA: +1 213 221 1092<br>
&gt;&gt;&gt; New Zealand: +64 (0)28 2558 3782<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; David Cunningham, Voisonics Limited<br>
&gt;&gt; <a href="http://voisonics.com/" rel="noreferrer" target="_blank">http://voisonics.com/</a><br>
&gt;&gt; USA: +1 213 221 1092<br>
&gt;&gt; New Zealand: +64 (0)28 2558 3782<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
<br>
Hey David,<br>
<br>
Why don&#39;t you set the B cluster&#39;s hostnames in /etc/hosts of all A cluster nodes ?<br>
<br>
Maybe you won&#39;t need to rebuild  the whole B cluster.<br>
<br>
I guess the A cluster nodes nees to be able to reach all nodes from B cluster, so you might need to change the firewall settings.<br>
<br>
<br>
Best Regards,<br>
Strahil Nikolov<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>David Cunningham, Voisonics Limited<br><a href="http://voisonics.com/" target="_blank">http://voisonics.com/</a><br>USA: +1 213 221 1092<br>New Zealand: +64 (0)28 2558 3782</div></div></div></div></div></div></div></div></div></div></div>
</div></blockquote></div><br></div></div></blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>David Cunningham, Voisonics Limited<br><a href="http://voisonics.com/" target="_blank">http://voisonics.com/</a><br>USA: +1 213 221 1092<br>New Zealand: +64 (0)28 2558 3782</div></div></div></div></div></div></div></div></div></div></div>