<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Yes, this makes the issue less likely, but doesn't make it impossible for something that is fully elastic.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
For instance, if I had instead just started with A,B,C and then scaled out and in twice, all volfile servers would have potentially be destroyed and replaced.&nbsp; I think the problem is that the selection of volfile servers is determined at mounting, rather than
 updating as the cluster changes.&nbsp; There are ways to greatly reduce this issue, such as adding more backup servers, but it's still a possibility.&nbsp;
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
I think more important then, for me at least, is to have the option of failing when no volfile servers are remaining as it can produce incomplete views of the data.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Thanks!</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Tim<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Strahil &lt;hunter86_bg@yahoo.com&gt;<br>
<b>Sent:</b> Tuesday, October 15, 2019 8:46 PM<br>
<b>To:</b> Timothy Orme &lt;torme@ancestry.com&gt;; gluster-users &lt;gluster-users@gluster.org&gt;<br>
<b>Subject:</b> [EXTERNAL] Re: [Gluster-users] Client Handling of Elastic Clusters</font>
<div>&nbsp;</div>
</div>
<div>
<p dir="ltr">Hi Timothy,</p>
<p dir="ltr">Have you tried to mount on the client&nbsp; via all servers :</p>
<p dir="ltr">mount -t glusterfs -o backup-volfile-servers=B:C:D:E:F A:/volume&nbsp; /destination</p>
<p dir="ltr">Best Regards,<br>
Strahil Nikolov</p>
<div class="x_quote">On Oct 15, 2019 22:05, Timothy Orme &lt;torme@ancestry.com&gt; wrote:<br type="attribution">
<blockquote class="x_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div dir="ltr">
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
Hello,</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
I'm trying to setup an elastic gluster cluster and am running into a few odd edge cases that I'm unsure how to address.&nbsp; I'll try and walk through the setup as best I can.</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
If I have a replica 3 distributed-replicated volume, with 2 replicated volumes to start:</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
MyVolume</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp; Replica 1<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverA</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverB</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverC</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp; Replica 2</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverD</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverE</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverF<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
And the client mounts the volume with serverA as the primary volfile server, and B &amp; C as the backups.</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
Then, if I perform a scale down event, it selects the first replica volume as the one to remove.&nbsp; So I end up with a configuration like:</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
MyVolume<br>
&nbsp;&nbsp; Replica 2</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverD</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverE</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverF<br>
<br>
Everything rebalances and works great.&nbsp; However, at this point, the client has lost any connection with a volfile server.&nbsp; It knows about D, E, and F, so my data is all fine, but it can no longer retrieve a volfile.&nbsp; In the logs I see:<br>
<br>
[2019-10-15 17:21:59.232819] I [glusterfsd-mgmt.c:2463:mgmt_rpc_notify] 0-glusterfsd-mgmt: Exhausted all volfile servers<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
This becomes problematic when I try and scale back up, and add a replicated volume back in:<br>
<br>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt">
MyVolume<br>
&nbsp;&nbsp; Replica 2</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverD</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverE</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverF</div>
&nbsp;&nbsp; Replica 3</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverG</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverH</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; serverI</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
And then rebalance the volume.&nbsp; Now, I have all my data present, but the client only knows about D,E,F, so when I run an `ls` on a directory, only about half of the files are returned, since the other half live on G,H,I which the client doesn't know about.&nbsp;
 The data is still there, but it would require a re-mount at one of the new servers.</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
My question then, is there a way to have a more dynamic set of volfile servers? What would be great is if there was a way to tell the mount to fall back on the servers returned in the volfile itself in case the primary one goes away.</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
If there's not an easy way to do this, is there a flag on the mount helper that can cause the mount to die or error out in the event that it is unable to retrieve volfiles?&nbsp; The problem now is that it sort of silently fails and returns incomplete file listings,
 which for my use cases can cause improper processing of that data.&nbsp; I'd rather have it hard error than provide bad results silently obviously.</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
Hope that makes sense, if you need further clarity please let me know.&nbsp; <br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
Thanks,</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
Tim<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
<div style="font-family:'calibri' ,'arial' ,'helvetica' ,sans-serif; font-size:12pt; color:rgb(0 ,0 ,0)">
<br>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>