Hi,<br><br>I&#39;ve tested replicate a little today and I&#39;ve got this problems:<br><br>1. client-side replicate with 2 nodes, both acting as server and client<br>2. I start copying big file to gluster mount point<br>3. during file copy I stop gluster server on second node<br>
4. I got a pice of file on second node and whole file on first one<br>5. during or after the copy I start halted server on second node<br>6. I run ls -lh on second node in gluster mount point<br>7. logs are telling me to delete one of files and my second node keeps incomplited copy<br>
<br>I&#39;ve checked if I got xattrs enabled with attr command:<br><br># attr -l &lt;gluster_data_dir&gt;/iso<br>Attribute &quot;glusterfs.afr.entry-pending&quot; has a 8 byte value for iso<br># attr -g glusterfs.afr.entry-pending &lt;gluster_data_dir&gt;/iso<br>
attr_get: No data available<br>Could not get &quot;glusterfs.afr.entry-pending&quot; for iso<br><br>With client side it seems that if im inside gluster mount point and stop server on second node, after starting it again I need to reenter this dir for self-heal to work, it does not seem to be needed with server-side.<br>
With server side afr (both node afr&#39;ing each other), when I stop second node during big file copy and after while start it again if I run &#39;ls -lh&#39; on gluster mount point I&#39;m getting some self-heal race condition, looking at dstat output it seems that running &#39;ls -lh&#39; on one node makes that node to self-heal other with it current file content, I forgot about the log files so I don&#39;t know what they say about it, I will retest it tomorrow.<br>
Using replicate slows down writing a lot, with client-side to 1-2MB/s (!) on 1Gb link, with server-side to 10-12MB/s.<br><br>==============================================<br>client-side replicate, server.vol:<br><br>volume brick-data<br>
&nbsp;&nbsp;&nbsp; type storage/posix<br>&nbsp;&nbsp;&nbsp; option directory /var/glusterfs/data/<br>end-volume<br><br>volume locks<br>&nbsp;&nbsp;&nbsp; type features/locks<br>&nbsp;&nbsp;&nbsp; subvolumes brick-data<br>end-volume<br><br>volume client<br>&nbsp;&nbsp;&nbsp; type performance/io-threads<br>
&nbsp;&nbsp;&nbsp; option thread-count 4<br>&nbsp;&nbsp;&nbsp; subvolumes locks<br>end-volume<br><br>volume server<br>&nbsp;&nbsp;&nbsp; type protocol/server<br>&nbsp;&nbsp;&nbsp; option transport-type tcp<br>&nbsp;&nbsp;&nbsp; subvolumes client<br>&nbsp;&nbsp;&nbsp; option auth.login.client.allow gluster<br>&nbsp;&nbsp;&nbsp; option auth.login.gluster.password pass<br>
end-volume<br><br>========================================================================<br>client-side replicate, client vol:<br>volume gluster_134&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; type protocol/client&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; option transport-type tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; option remote-host 172.16.110.134&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; option remote-subvolume client<br>&nbsp;&nbsp;&nbsp; option username gluster<br>&nbsp;&nbsp;&nbsp; option password pass<br>end-volume<br>
<br>volume gluster_135<br>&nbsp;&nbsp;&nbsp; type protocol/client<br>&nbsp;&nbsp;&nbsp; option transport-type tcp<br>&nbsp;&nbsp;&nbsp; option remote-host 172.16.110.135<br>&nbsp;&nbsp;&nbsp; option remote-subvolume client<br>&nbsp;&nbsp;&nbsp; option username gluster<br>&nbsp;&nbsp;&nbsp; option password pass<br>
end-volume<br><br>volume afr<br>&nbsp;&nbsp;&nbsp; type cluster/replicate<br>&nbsp;&nbsp;&nbsp; subvolumes gluster_134 gluster_135<br>end-volume<br><br>volume readahead<br>&nbsp;&nbsp;&nbsp; type performance/read-ahead<br>&nbsp;&nbsp;&nbsp; option page-size 1MB<br>&nbsp;&nbsp;&nbsp; option page-count 2<br>
&nbsp;&nbsp;&nbsp; subvolumes afr<br>end-volume<br><br>volume iocache<br>&nbsp;&nbsp;&nbsp; type performance/io-cache<br>&nbsp;&nbsp;&nbsp; option cache-size 64MB<br>&nbsp;&nbsp;&nbsp; option page-size 256KB<br>&nbsp;&nbsp;&nbsp; option page-count 2<br>&nbsp;&nbsp;&nbsp; subvolumes readahead<br>end-volume<br><br>
volume writeback<br>&nbsp;&nbsp;&nbsp; type performance/write-behind<br>&nbsp;&nbsp;&nbsp; option aggregate-size 1MB<br>&nbsp;&nbsp;&nbsp; option window-size 2MB<br>&nbsp;&nbsp;&nbsp; option flush-behind off<br>&nbsp;&nbsp;&nbsp; subvolumes iocache<br>end-volume<br><br>volume iothreads<br>&nbsp;&nbsp;&nbsp; type performance/io-threads<br>
&nbsp;&nbsp;&nbsp; option thread-count 4<br>&nbsp;&nbsp;&nbsp; subvolumes writeback<br>end-volume<br><br>=============================================================<br>server-side replicate, server.vol:<br><br>volume brick<br>&nbsp;&nbsp;&nbsp; type storage/posix<br>
&nbsp;&nbsp;&nbsp; option directory /var/glusterfs/data/<br>end-volume<br><br>volume client_afr<br>&nbsp;&nbsp;&nbsp; type features/locks<br>&nbsp;&nbsp;&nbsp; subvolumes brick<br>end-volume<br><br>volume brick_134<br>&nbsp;&nbsp;&nbsp; type protocol/client<br>&nbsp;&nbsp;&nbsp; option transport-type tcp/client<br>
&nbsp;&nbsp;&nbsp; option remote-host 172.16.110.134<br>&nbsp;&nbsp;&nbsp; option remote-subvolume client_afr<br>&nbsp;&nbsp;&nbsp; option username gluster<br>&nbsp;&nbsp;&nbsp; option password Tj72pAz44<br>end-volume<br><br>volume afr<br>&nbsp;&nbsp;&nbsp; type cluster/replicate<br>&nbsp;&nbsp;&nbsp; subvolumes client_afr brick_134<br>
end-volume<br><br>volume client<br>&nbsp;&nbsp;&nbsp; type performance/io-threads<br>&nbsp;&nbsp;&nbsp; option thread-count 4<br>&nbsp;&nbsp;&nbsp; subvolumes afr<br>end-volume<br><br>volume server<br>&nbsp;&nbsp;&nbsp; type protocol/server<br>&nbsp;&nbsp;&nbsp; option transport-type tcp<br>&nbsp;&nbsp;&nbsp; subvolumes client_afr client<br>
&nbsp;&nbsp;&nbsp; option auth.login.client.allow gluster<br>&nbsp;&nbsp;&nbsp; option auth.login.client_afr.allow gluster<br>&nbsp;&nbsp;&nbsp; option auth.login.gluster.password pass<br>end-volume<br><br>================================================================<br>
server-side replicate, client.vol:<br>volume gluster_134&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; type protocol/client&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; option transport-type tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; option remote-host 172.16.110.134&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; option remote-subvolume client<br>&nbsp;&nbsp;&nbsp; option username gluster<br>&nbsp;&nbsp;&nbsp; option password Tj72pAz44<br>end-volume<br><br>volume gluster_135<br>&nbsp;&nbsp;&nbsp; type protocol/client<br>
&nbsp;&nbsp;&nbsp; option transport-type tcp<br>&nbsp;&nbsp;&nbsp; option remote-host 172.16.110.135<br>&nbsp;&nbsp;&nbsp; option remote-subvolume client<br>&nbsp;&nbsp;&nbsp; option username gluster<br>&nbsp;&nbsp;&nbsp; option password Tj72pAz44<br>end-volume<br><br>volume ha<br>&nbsp;&nbsp;&nbsp; type cluster/ha<br>
&nbsp;&nbsp;&nbsp; subvolumes gluster_135 gluster_134<br>end-volume<br><br>volume readahead<br>&nbsp;&nbsp;&nbsp; type performance/read-ahead<br>&nbsp;&nbsp;&nbsp; option page-size 1MB<br>&nbsp;&nbsp;&nbsp; option page-count 2<br>&nbsp;&nbsp;&nbsp; subvolumes ha<br>end-volume<br><br>volume iocache<br>
&nbsp;&nbsp;&nbsp; type performance/io-cache<br>&nbsp;&nbsp;&nbsp; option cache-size 64MB<br>&nbsp;&nbsp;&nbsp; option page-size 256KB<br>&nbsp;&nbsp;&nbsp; option page-count 2<br>&nbsp;&nbsp;&nbsp; subvolumes readahead<br>end-volume<br><br>volume writeback<br>&nbsp;&nbsp;&nbsp; type performance/write-behind<br>
&nbsp;&nbsp;&nbsp; option aggregate-size 1MB<br>&nbsp;&nbsp;&nbsp; option window-size 2MB<br>&nbsp;&nbsp;&nbsp; option flush-behind off<br>&nbsp;&nbsp;&nbsp; subvolumes iocache<br>end-volume<br><br>volume iothreads<br>&nbsp;&nbsp;&nbsp; type performance/io-threads<br>&nbsp;&nbsp;&nbsp; option thread-count 4<br>
&nbsp;&nbsp;&nbsp; subvolumes writeback<br>end-volume<br><br>