<div dir="ltr"><div>Hello from the future!</div><div><br></div><div>Today I was doing a replace-brick and found that the docs are still out of date. Then I found this very relevant thread of mine from four years ago. Now I've successfully replaced a brick on a distribute-replicate volume (with no manual shenanigans like killing bricks, setting xattrs, etc). I have sent a pull request to update Gluster Docs: <a href="https://github.com/gluster/glusterdocs/pull/782">https://github.com/gluster/glusterdocs/pull/782</a></div><div><br></div><div>Cheers!<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 12, 2019 at 2:00 PM Ravishankar N <<a href="mailto:ravishankar@redhat.com">ravishankar@redhat.com</a>> 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 bgcolor="#FFFFFF">
<p><br>
</p>
<div>On 12/06/19 1:38 PM, Alan Orth wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Dear Ravi,</div>
<div><br>
</div>
<div>Thanks for the confirmation—I replaced a brick in a volume
last night and by the morning I see that Gluster has
replicated data there, though I don't have any indication of
its progress. The `gluster v heal volume info` and `gluster v
heal volume info split-brain` are all looking good so I guess
that's enough of an indication.<br>
</div>
</div>
</blockquote>
Yes, right now, heal info showing no files is the indication. A new
command for pending heal time estimation is something that is being
worked upon. See <a href="https://github.com/gluster/glusterfs/issues/643" target="_blank">https://github.com/gluster/glusterfs/issues/643</a> <br>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>One question, though. Immediately after I replaced the
brick I checked `gluster v status volume` and I saw the
following:</div>
<div><br>
</div>
<div>Task Status of Volume volume<br>
------------------------------------------------------------------------------<br>
Task : Rebalance <br>
ID : a890e99c-5715-4bc1-80ee-c28490612135<br>
Status : not started</div>
<div><br>
</div>
<div>I did not initiate a rebalance, so it's strange to see it
there. Is Gluster hinting that I should start a rebalance? If
a rebalance is "not started" shouldn't Gluster just not show
it at all?<br>
</div>
</div>
</blockquote>
<p>`replace-brick` should not show rebalance status. Not sure why
you're seeing it. Adding Nithya for help.<br>
</p>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div style="text-align:left">Regarding the patch to the
documentation: absolutely! Let me just get my Gluster back in
order after my confusing upgrade last month. :P</div>
</div>
</blockquote>
<p>Great. Please send the PR for the
<a href="https://github.com/gluster/glusterdocs/" target="_blank">https://github.com/gluster/glusterdocs/</a> project. I think
docs/Administrator Guide/Managing Volumes.md is the file that
needs to be updated.</p>
<p>-Ravi<br>
</p>
<blockquote type="cite">
<div dir="ltr">
<div style="text-align:left"><br>
</div>
<div style="text-align:left">Thanks,<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Jun 11, 2019 at 7:32
PM Ravishankar N <<a href="mailto:ravishankar@redhat.com" target="_blank">ravishankar@redhat.com</a>> 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 bgcolor="#FFFFFF">
<p><br>
</p>
<div>On
11/06/19 9:11 PM, Alan Orth wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Dear list,</div>
<div><br>
</div>
<div>In a recent discussion on this list Ravi suggested
that the documentation for replace-brick¹ was out of
date. For a distribute–replicate volume the
documentation currently says that we need to kill the
old brick's PID, create a temporary empty directory on
the FUSE mount, check the xattrs, replace-brick with
commit force.</div>
<div><br>
</div>
<div>Is all this still necessary? I'm running Gluster
5.6 on CentOS 7 with a distribute–replicate volume.<br>
</div>
</div>
</blockquote>
No, all these very steps are 'codified' into the `replace
brick commit force` command via <a href="https://review.gluster.org/#/c/glusterfs/+/10076/" target="_blank">https://review.gluster.org/#/c/glusterfs/+/10076/</a>
and <a href="https://review.gluster.org/#/c/glusterfs/+/10448/" target="_blank">https://review.gluster.org/#/c/glusterfs/+/10448/</a>.
You can see the commit messages of these 2 patches for more
details.<br>
<br>
You can play around with most of these commands in a 1 node
setup if you want to convince yourself that they work. There
is no need to form a cluster.<br>
<tt>[root@tuxpad glusterfs]# gluster v create testvol
replica 3 127.0.0.2:/home/ravi/bricks/brick{1..3} force</tt><tt><br>
</tt><tt>[root@tuxpad glusterfs]# gluster v start testvol</tt><tt><br>
</tt><tt>[root@tuxpad glusterfs]# mount -t glusterfs
127.0.0.2:testvol /mnt/fuse_mnt/</tt><tt><br>
</tt><tt>[root@tuxpad glusterfs]# touch /mnt/fuse_mnt/FILE</tt><tt><br>
</tt><tt>[root@tuxpad glusterfs]# ll
/home/ravi/bricks/brick*/FILE</tt><tt><br>
</tt><tt>-rw-r--r--. 2 root root 0 Jun 11 21:55
/home/ravi/bricks/brick1/FILE</tt><tt><br>
</tt><tt>-rw-r--r--. 2 root root 0 Jun 11 21:55
/home/ravi/bricks/brick2/FILE</tt><tt><br>
</tt><tt>-rw-r--r--. 2 root root 0 Jun 11 21:55
/home/ravi/bricks/brick3/FILE</tt><tt><br>
</tt><tt><br>
</tt><tt>[root@tuxpad glusterfs]# gluster v replace-brick
testvol 127.0.0.2:/home/ravi/bricks/brick3
127.0.0.2:/home/ravi/bricks/brick3_new commit force</tt><tt><br>
</tt><tt>volume replace-brick: success: replace-brick commit
force operation successful</tt><tt><br>
</tt><tt>[root@tuxpad glusterfs]# ll
/home/ravi/bricks/brick3_new/FILE</tt><tt><br>
</tt>
<p><tt>-rw-r--r--. 2 root root 0 Jun 11 21:55
/home/ravi/bricks/brick3_new/FILE</tt></p>
Why don't you send a patch to update the doc for
replace-brick? I'd be happy to review it. <span><span>;-)</span></span><br>
HTH,<br>
Ravi<tt><br>
</tt>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Thank you,<br>
</div>
<div><br>
</div>
<div>¹ <a href="https://docs.gluster.org/en/latest/Administrator" target="_blank">https://docs.gluster.org/en/latest/Administrator</a>
Guide/Managing Volumes/<br>
-- <br>
<div dir="ltr">Alan
Orth<br>
<a href="mailto:alan.orth@gmail.com" target="_blank">alan.orth@gmail.com</a><br>
<a href="https://picturingjordan.com" target="_blank">https://picturingjordan.com</a><br>
<a href="https://englishbulgaria.net" target="_blank">https://englishbulgaria.net</a><br>
<a href="https://mjanja.ch" target="_blank">https://mjanja.ch</a><br>
"In heaven all the interesting people are missing."
―Friedrich Nietzsche</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
Gluster-users mailing list
<a href="mailto:Gluster-users@gluster.org" target="_blank">Gluster-users@gluster.org</a>
<a href="https://lists.gluster.org/mailman/listinfo/gluster-users" target="_blank">https://lists.gluster.org/mailman/listinfo/gluster-users</a></pre>
</blockquote>
</div>
</blockquote>
</div>
<br clear="all">
<br>
-- <br>
<div dir="ltr" class="gmail_signature">Alan Orth<br>
<a href="mailto:alan.orth@gmail.com" target="_blank">alan.orth@gmail.com</a><br>
<a href="https://picturingjordan.com" target="_blank">https://picturingjordan.com</a><br>
<a href="https://englishbulgaria.net" target="_blank">https://englishbulgaria.net</a><br>
<a href="https://mjanja.ch" target="_blank">https://mjanja.ch</a><br>
"In heaven all the interesting people are missing." ―Friedrich
Nietzsche</div>
</blockquote>
</div>
</blockquote></div><br clear="all"><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div>Alan Orth<br><a href="mailto:alan.orth@gmail.com" target="_blank">alan.orth@gmail.com</a><br><a href="https://picturingjordan.com" target="_blank">https://picturingjordan.com</a><br><a href="https://englishbulgaria.net" target="_blank">https://englishbulgaria.net</a><br><a href="https://mjanja.ch" target="_blank">https://mjanja.ch</a></div></div></div>