<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 12, 2016 at 6:36 PM, Serkan Çoban <span dir="ltr">&lt;<a href="mailto:cobanserkan@gmail.com" target="_blank">cobanserkan@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I simulated a disk failure, there are 5 top level directories in<br>
gluster and I executed the find command 5 parallel from the same<br>
client.<br>
24 hours passed and 500GB of 700GB data was healed. I think it will<br>
complete in 36 hours. Before it was 144 hours.<br>
What I would like to ask is, can I further increase parallel execution<br>
of find by giving sub-folders to it?<br></blockquote><div><br></div><div>Yes you can. Let me know if you see something you don&#39;t like and we can work to address it.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Assume below directory structure:<br>
/mnt/gluster/a/x1<br>
/mnt/gluster/a/x2<br>
/mnt/gluster/b/x1<br>
/mnt/gluster/b/x2<br>
/mnt/gluster/c/x1<br>
/mnt/gluster/c/x2<br>
/mnt/gluster/d/x1<br>
/mnt/gluster/d/x2<br>
/mnt/gluster/e/x1<br>
/mnt/gluster/e/x2<br>
<br>
Can I run 10 different find commands from 10 different clients to<br>
speed up heal performance?<br>
<br>
>From Client1:<br>
find /mnt/gluster/a/x1 -d -exec getfattr -h -n trusted.ec.heal {} \;<br>
<br>
>From Client2:<br>
find /mnt/gluster/a/x2 -d -exec getfattr -h -n trusted.ec.heal {} \;<br>
...<br>
...<br>
<br>
>From Client10:<br>
find /mnt/gluster/e/x2 -d -exec getfattr -h -n trusted.ec.heal {} \;<br>
<br>
Serkan<br>
<div class="HOEnZb"><div class="h5"><br>
On Thu, Aug 11, 2016 at 11:49 AM, Serkan Çoban &lt;<a href="mailto:cobanserkan@gmail.com">cobanserkan@gmail.com</a>&gt; wrote:<br>
&gt; Heal completed but I will try this by simulating a disk fail in<br>
&gt; cluster and reply to you. Thanks for the help.<br>
&gt;<br>
&gt; On Thu, Aug 11, 2016 at 9:52 AM, Pranith Kumar Karampuri<br>
&gt; &lt;<a href="mailto:pkarampu@redhat.com">pkarampu@redhat.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Aug 5, 2016 at 8:37 PM, Serkan Çoban &lt;<a href="mailto:cobanserkan@gmail.com">cobanserkan@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Hi again,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I am seeing the above situation in production environment now.<br>
&gt;&gt;&gt; One disk on one of my servers broken. I killed the brick process,<br>
&gt;&gt;&gt; replace the disk, mount it and then I do a gluster v start force.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; For a 24 hours period  after replacing disks I see below gluster v<br>
&gt;&gt;&gt; heal info count increased until 200.000<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; gluster v heal v0 info | grep &quot;Number of entries&quot; | grep -v &quot;Number of<br>
&gt;&gt;&gt; entries: 0&quot;<br>
&gt;&gt;&gt; Number of entries: 205117<br>
&gt;&gt;&gt; Number of entries: 205231<br>
&gt;&gt;&gt; ...<br>
&gt;&gt;&gt; ...<br>
&gt;&gt;&gt; ...<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; For about 72 hours It decreased to 40K, and it is going very slowly right<br>
&gt;&gt;&gt; now.<br>
&gt;&gt;&gt; What I am observing is very very slow heal speed. There is no errors<br>
&gt;&gt;&gt; in brick logs.<br>
&gt;&gt;&gt; There was 900GB data in broken disk and now I see 200GB healed after<br>
&gt;&gt;&gt; 96 hours after replacing disk.<br>
&gt;&gt;&gt; There are below warnings in glustershd.log but I think they are harmless.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; W [ec_combine.c:866:ec_combine_<wbr>check] 0-v0-disperse-56: Mismatching<br>
&gt;&gt;&gt; xdata in answers of LOOKUP<br>
&gt;&gt;&gt; W [ec_common.c:116:ec_check_<wbr>status] 0-v0-disperse-56: Operation failed<br>
&gt;&gt;&gt; on some subvolumes (up=FFFFF, mask=FFFFF, remaining=0, good=FFFF7,<br>
&gt;&gt;&gt; bad=8)<br>
&gt;&gt;&gt; W [ec_common.c:71:ec_heal_<wbr>report] 0-v0-disperse-56: Heal failed<br>
&gt;&gt;&gt; [invalid argument]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I tried turning on performance.client-io-threads but it did not<br>
&gt;&gt;&gt; changed anything.<br>
&gt;&gt;&gt; For 900GB data It will take nearly 8 days to heal. What can I do?<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Sorry for the delay in response, do you still have this problem?<br>
&gt;&gt; You can trigger heals using the following command:<br>
&gt;&gt;<br>
&gt;&gt; find &lt;dir-you-are-interested&gt; -d -exec getfattr -h -n trusted.ec.heal {} \;<br>
&gt;&gt;<br>
&gt;&gt; If you have 10 top level directories may be you can spawn 10 such processes.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Serkan<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Fri, Apr 15, 2016 at 1:28 PM, Serkan Çoban &lt;<a href="mailto:cobanserkan@gmail.com">cobanserkan@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt; 100TB is newly created files when brick is down.I rethink the<br>
&gt;&gt;&gt; &gt; situation and realized that I reformatted all the bricks in case 1 so<br>
&gt;&gt;&gt; &gt; write speed limit is 26*100MB/disk<br>
&gt;&gt;&gt; &gt; In case 2 I just reformatted one brick so write speed limited to<br>
&gt;&gt;&gt; &gt; 100MB/disk...I will repeat the tests using one brick in both cases<br>
&gt;&gt;&gt; &gt; once with reformat, and once with just killing brick process...<br>
&gt;&gt;&gt; &gt; Thanks for reply..<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On Fri, Apr 15, 2016 at 9:27 AM, Xavier Hernandez<br>
&gt;&gt;&gt; &gt; &lt;<a href="mailto:xhernandez@datalab.es">xhernandez@datalab.es</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; Hi Serkan,<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; sorry for the delay, I&#39;m a bit busy lately.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; On 13/04/16 13:59, Serkan Çoban wrote:<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Hi Xavier,<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Can you help me about the below issue? How can I increase the disperse<br>
&gt;&gt;&gt; &gt;&gt;&gt; heal speed?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; It seems weird. Is there any related message in the logs ?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; In this particular test, are the 100TB modified files or newly created<br>
&gt;&gt;&gt; &gt;&gt; files<br>
&gt;&gt;&gt; &gt;&gt; while the brick was down ?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; How many files have been modified ?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Also I would be grateful if you have detailed documentation about<br>
&gt;&gt;&gt; &gt;&gt;&gt; disperse<br>
&gt;&gt;&gt; &gt;&gt;&gt; heal,<br>
&gt;&gt;&gt; &gt;&gt;&gt; why heal happens on disperse volume, how it is triggered? Which nodes<br>
&gt;&gt;&gt; &gt;&gt;&gt; participate in heal process? Any client interaction?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Heal process is basically the same used for replicate. There are two<br>
&gt;&gt;&gt; &gt;&gt; ways to<br>
&gt;&gt;&gt; &gt;&gt; trigger a self-heal:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; * when an inconsistency is detected, the client initiates a background<br>
&gt;&gt;&gt; &gt;&gt; self-heal of the inode<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; * the self-heal daemon scans the lists of modified files created by the<br>
&gt;&gt;&gt; &gt;&gt; index xlator when a modification is made while some node is down. All<br>
&gt;&gt;&gt; &gt;&gt; these<br>
&gt;&gt;&gt; &gt;&gt; files are self-healed.<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Xavi<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Serkan<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; ---------- Forwarded message ----------<br>
&gt;&gt;&gt; &gt;&gt;&gt; From: Serkan Çoban &lt;<a href="mailto:cobanserkan@gmail.com">cobanserkan@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Date: Fri, Apr 8, 2016 at 5:46 PM<br>
&gt;&gt;&gt; &gt;&gt;&gt; Subject: disperse heal speed up<br>
&gt;&gt;&gt; &gt;&gt;&gt; To: Gluster Users &lt;<a href="mailto:gluster-users@gluster.org">gluster-users@gluster.org</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; I am testing heal speed of disperse volume and what I see is 5-10MB/s<br>
&gt;&gt;&gt; &gt;&gt;&gt; per<br>
&gt;&gt;&gt; &gt;&gt;&gt; node.<br>
&gt;&gt;&gt; &gt;&gt;&gt; I increased disperse.background-heals to 32 and<br>
&gt;&gt;&gt; &gt;&gt;&gt; disperse.heal-wait-qlength to 256, but still no difference.<br>
&gt;&gt;&gt; &gt;&gt;&gt; One thing I noticed is that, when I kill a brick process, reformat it<br>
&gt;&gt;&gt; &gt;&gt;&gt; and restart it heal speed is nearly 20x (200MB/s/node)<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; But when I kill the brick, then write 100TB data, and start brick<br>
&gt;&gt;&gt; &gt;&gt;&gt; afterwords heal is slow (5-10MB/s/node)<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; What is the difference between two scenarios? Why one heal is slow and<br>
&gt;&gt;&gt; &gt;&gt;&gt; other is fast? How can I increase disperse heal speed? Should I<br>
&gt;&gt;&gt; &gt;&gt;&gt; increase thread count to 128 or 256? I am on 78x(16+4) disperse volume<br>
&gt;&gt;&gt; &gt;&gt;&gt; and my servers are pretty strong (2x14 cores with 512GB ram, each node<br>
&gt;&gt;&gt; &gt;&gt;&gt; has 26x8TB disks)<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Gluster version is 3.7.10.<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; &gt;&gt;&gt; Serkan<br>
&gt;&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt;&gt; Gluster-users mailing list<br>
&gt;&gt;&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt;&gt;&gt; <a href="http://www.gluster.org/mailman/listinfo/gluster-users" rel="noreferrer" target="_blank">http://www.gluster.org/<wbr>mailman/listinfo/gluster-users</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Pranith<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Pranith<br></div></div>
</div></div>