<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Nov 18, 2016 at 3:49 AM, Olivier Lambert <span dir="ltr">&lt;<a href="mailto:lambert.olivier@gmail.com" target="_blank">lambert.olivier@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi David,<br>
<br>
What are the exact commands to be sure it&#39;s fine?<br>
<br>
Right now I got:<br>
<br>
# gluster volume heal gv0 info<br>
Brick 10.0.0.1:/bricks/brick1/gv0<br>
Status: Connected<br>
Number of entries: 0<br>
<br>
Brick 10.0.0.2:/bricks/brick1/gv0<br>
Status: Connected<br>
Number of entries: 0<br>
<br>
Brick 10.0.0.3:/bricks/brick1/gv0<br>
Status: Connected<br>
Number of entries: 0<br>
<br>
<br></blockquote><div>Did you run this before taking down 2nd node to see if any heals were ongoing?</div><div><br></div><div>Also I see you have sharding enabled.  Are your files being served sharded already as well?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Everything is online and working, but this command give a strange output:<br>
<br>
# gluster volume heal gv0 info heal-failed<br>
Gathering list of heal failed entries on volume gv0 has been<br>
unsuccessful on bricks that are down. Please check if all brick<br>
processes are running.<br>
<br>
Is it normal?<br></blockquote><div><br></div><div>I don&#39;t think that is a valid command anymore as whern I run it I get same message and this is in logs</div><div> [2016-11-18 14:35:02.260503] I [MSGID: 106533] [glusterd-volume-ops.c:878:__glusterd_handle_cli_heal_volume] 0-management: Received heal vol req for volume GLUSTER1</div><div>[2016-11-18 14:35:02.263341] W [MSGID: 106530] [glusterd-volume-ops.c:1882:glusterd_handle_heal_cmd] 0-management: Command not supported. Please use &quot;gluster volume heal GLUSTER1 info&quot; and logs to find the heal information.</div><div>[2016-11-18 14:35:02.263365] E [MSGID: 106301] [glusterd-syncop.c:1297:gd_stage_op_phase] 0-management: Staging of operation &#39;Volume Heal&#39; failed on localhost : Command not supported. Please use &quot;gluster volume heal GLUSTER1 info&quot; and logs to find the heal information.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
On Fri, Nov 18, 2016 at 2:51 AM, David Gossage<br>
&lt;<a href="mailto:dgossage@carouselchecks.com">dgossage@carouselchecks.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On Thu, Nov 17, 2016 at 6:42 PM, Olivier Lambert &lt;<a href="mailto:lambert.olivier@gmail.com">lambert.olivier@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Okay, used the exact same config you provided, and adding an arbiter<br>
&gt;&gt; node (node3)<br>
&gt;&gt;<br>
&gt;&gt; After halting node2, VM continues to work after a small &quot;lag&quot;/freeze.<br>
&gt;&gt; I restarted node2 and it was back online: OK<br>
&gt;&gt;<br>
&gt;&gt; Then, after waiting few minutes, halting node1. And **just** at this<br>
&gt;&gt; moment, the VM is corrupted (segmentation fault, /var/log folder empty<br>
&gt;&gt; etc.)<br>
&gt;&gt;<br>
&gt; Other than waiting a few minutes did you make sure heals had completed?<br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt; dmesg of the VM:<br>
&gt;&gt;<br>
&gt;&gt; [ 1645.852905] EXT4-fs error (device xvda1):<br>
&gt;&gt; htree_dirblock_to_tree:988: inode #19: block 8286: comm bash: bad<br>
&gt;&gt; entry in directory: rec_len is smaller than minimal - offset=0(0),<br>
&gt;&gt; inode=0, rec_len=0, name_len=0<br>
&gt;&gt; [ 1645.854509] Aborting journal on device xvda1-8.<br>
&gt;&gt; [ 1645.855524] EXT4-fs (xvda1): Remounting filesystem read-only<br>
&gt;&gt;<br>
&gt;&gt; And got a lot of &quot; comm bash: bad entry in directory&quot; messages then...<br>
&gt;&gt;<br>
&gt;&gt; Here is the current config with all Node back online:<br>
&gt;&gt;<br>
&gt;&gt; # gluster volume info<br>
&gt;&gt;<br>
&gt;&gt; Volume Name: gv0<br>
&gt;&gt; Type: Replicate<br>
&gt;&gt; Volume ID: 5f15c919-57e3-4648-b20a-<wbr>395d9fe3d7d6<br>
&gt;&gt; Status: Started<br>
&gt;&gt; Snapshot Count: 0<br>
&gt;&gt; Number of Bricks: 1 x (2 + 1) = 3<br>
&gt;&gt; Transport-type: tcp<br>
&gt;&gt; Bricks:<br>
&gt;&gt; Brick1: 10.0.0.1:/bricks/brick1/gv0<br>
&gt;&gt; Brick2: 10.0.0.2:/bricks/brick1/gv0<br>
&gt;&gt; Brick3: 10.0.0.3:/bricks/brick1/gv0 (arbiter)<br>
&gt;&gt; Options Reconfigured:<br>
&gt;&gt; nfs.disable: on<br>
&gt;&gt; performance.readdir-ahead: on<br>
&gt;&gt; transport.address-family: inet<br>
&gt;&gt; features.shard: on<br>
&gt;&gt; features.shard-block-size: 16MB<br>
&gt;&gt; network.remote-dio: enable<br>
&gt;&gt; cluster.eager-lock: enable<br>
&gt;&gt; performance.io-cache: off<br>
&gt;&gt; performance.read-ahead: off<br>
&gt;&gt; performance.quick-read: off<br>
&gt;&gt; performance.stat-prefetch: on<br>
&gt;&gt; performance.strict-write-<wbr>ordering: off<br>
&gt;&gt; cluster.server-quorum-type: server<br>
&gt;&gt; cluster.quorum-type: auto<br>
&gt;&gt; cluster.data-self-heal: on<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; # gluster volume status<br>
&gt;&gt; Status of volume: gv0<br>
&gt;&gt; Gluster process                             TCP Port  RDMA Port  Online<br>
&gt;&gt; Pid<br>
&gt;&gt;<br>
&gt;&gt; ------------------------------<wbr>------------------------------<wbr>------------------<br>
&gt;&gt; Brick 10.0.0.1:/bricks/brick1/gv0           49152     0          Y<br>
&gt;&gt; 1331<br>
&gt;&gt; Brick 10.0.0.2:/bricks/brick1/gv0           49152     0          Y<br>
&gt;&gt; 2274<br>
&gt;&gt; Brick 10.0.0.3:/bricks/brick1/gv0           49152     0          Y<br>
&gt;&gt; 2355<br>
&gt;&gt; Self-heal Daemon on localhost               N/A       N/A        Y<br>
&gt;&gt; 2300<br>
&gt;&gt; Self-heal Daemon on 10.0.0.3                N/A       N/A        Y<br>
&gt;&gt; 10530<br>
&gt;&gt; Self-heal Daemon on 10.0.0.2                N/A       N/A        Y<br>
&gt;&gt; 2425<br>
&gt;&gt;<br>
&gt;&gt; Task Status of Volume gv0<br>
&gt;&gt;<br>
&gt;&gt; ------------------------------<wbr>------------------------------<wbr>------------------<br>
&gt;&gt; There are no active volume tasks<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Nov 17, 2016 at 11:35 PM, Olivier Lambert<br>
&gt;&gt; &lt;<a href="mailto:lambert.olivier@gmail.com">lambert.olivier@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt; It&#39;s planned to have an arbiter soon :) It was just preliminary tests.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Thanks for the settings, I&#39;ll test this soon and I&#39;ll come back to you!<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Thu, Nov 17, 2016 at 11:29 PM, Lindsay Mathieson<br>
&gt;&gt; &gt; &lt;<a href="mailto:lindsay.mathieson@gmail.com">lindsay.mathieson@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; On 18/11/2016 8:17 AM, Olivier Lambert wrote:<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; gluster volume info gv0<br>
&gt;&gt; &gt;&gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; Volume Name: gv0<br>
&gt;&gt; &gt;&gt;&gt; Type: Replicate<br>
&gt;&gt; &gt;&gt;&gt; Volume ID: 2f8658ed-0d9d-4a6f-a00b-<wbr>96e9d3470b53<br>
&gt;&gt; &gt;&gt;&gt; Status: Started<br>
&gt;&gt; &gt;&gt;&gt; Snapshot Count: 0<br>
&gt;&gt; &gt;&gt;&gt; Number of Bricks: 1 x 2 = 2<br>
&gt;&gt; &gt;&gt;&gt; Transport-type: tcp<br>
&gt;&gt; &gt;&gt;&gt; Bricks:<br>
&gt;&gt; &gt;&gt;&gt; Brick1: 10.0.0.1:/bricks/brick1/gv0<br>
&gt;&gt; &gt;&gt;&gt; Brick2: 10.0.0.2:/bricks/brick1/gv0<br>
&gt;&gt; &gt;&gt;&gt; Options Reconfigured:<br>
&gt;&gt; &gt;&gt;&gt; nfs.disable: on<br>
&gt;&gt; &gt;&gt;&gt; performance.readdir-ahead: on<br>
&gt;&gt; &gt;&gt;&gt; transport.address-family: inet<br>
&gt;&gt; &gt;&gt;&gt; features.shard: on<br>
&gt;&gt; &gt;&gt;&gt; features.shard-block-size: 16MB<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; When hosting VM&#39;s its essential to set these options:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; network.remote-dio: enable<br>
&gt;&gt; &gt;&gt; cluster.eager-lock: enable<br>
&gt;&gt; &gt;&gt; performance.io-cache: off<br>
&gt;&gt; &gt;&gt; performance.read-ahead: off<br>
&gt;&gt; &gt;&gt; performance.quick-read: off<br>
&gt;&gt; &gt;&gt; performance.stat-prefetch: on<br>
&gt;&gt; &gt;&gt; performance.strict-write-<wbr>ordering: off<br>
&gt;&gt; &gt;&gt; cluster.server-quorum-type: server<br>
&gt;&gt; &gt;&gt; cluster.quorum-type: auto<br>
&gt;&gt; &gt;&gt; cluster.data-self-heal: on<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Also with replica two and quorum on (required) your volume will become<br>
&gt;&gt; &gt;&gt; read-only when one node goes down to prevent the possibility of<br>
&gt;&gt; &gt;&gt; split-brain<br>
&gt;&gt; &gt;&gt; - you *really* want to avoid that :)<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I&#39;d recommend a replica 3 volume, that way 1 node can go down, but the<br>
&gt;&gt; &gt;&gt; other<br>
&gt;&gt; &gt;&gt; two still form a quorum and will remain r/w.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; If the extra disks are not possible, then a Arbiter volume can be setup<br>
&gt;&gt; &gt;&gt; -<br>
&gt;&gt; &gt;&gt; basically dummy files on the third node.<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; Lindsay Mathieson<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; ______________________________<wbr>_________________<br>
&gt;&gt; &gt;&gt; Gluster-users mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&gt;&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; ______________________________<wbr>_________________<br>
&gt;&gt; Gluster-users mailing list<br>
&gt;&gt; <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
&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;<br>
&gt;<br>
</blockquote></div><br></div></div>