[Gluster-users] Issues in AFR and self healing

Pablo Schandin pablo.schandin at avature.net
Tue Aug 21 14:10:55 UTC 2018


I couldn't find any disconnections yet. We analyzed the port's traffic 
to see if there was too much data going through, but that was OK. I also 
cannot see any other disconnections so for now we will continue to check 
the network because I might have missed something.

Thanks for all the help! If I have any other news I will let you know.

Pablo.

On 08/16/2018 01:06 AM, Ravishankar N wrote:
>
>
>
> On 08/15/2018 11:07 PM, Pablo Schandin wrote:
>>
>> I found another log that I wasn't aware of in 
>> /var/log/glusterfs/brick, that is te mount log, I confused the log 
>> files. In this file I see a lot of entries like this one:
>>
>> [2018-08-15 16:41:19.568477] I [addr.c:55:compare_addr_and_update] 
>> 0-/mnt/brick1/gv1: allowed = "172.20.36.10", received addr = 
>> "172.20.36.11"
>> [2018-08-15 16:41:19.568527] I [addr.c:55:compare_addr_and_update] 
>> 0-/mnt/brick1/gv1: allowed = "172.20.36.11", received addr = 
>> "172.20.36.11"
>> [2018-08-15 16:41:19.568547] I [login.c:76:gf_auth] 0-auth/login: 
>> allowed user names: 7107ccfa-0ba1-4172-aa5a-031568927bf1
>> [2018-08-15 16:41:19.568564] I [MSGID: 115029] 
>> [server-handshake.c:793:server_setvolume] 0-gv1-server: accepted 
>> client from 
>> physinfra-hb2.xcade.net-21091-2018/08/15-16:41:03:103872-gv1-client-0-0-0 
>> (version: 3.1
>> 2.6)
>> [2018-08-15 16:41:19.582710] I [MSGID: 115036] 
>> [server.c:527:server_rpc_notify] 0-gv1-server: disconnecting 
>> connection from 
>> physinfra-hb2.xcade.net-21091-2018/08/15-16:41:03:103872-gv1-client-0-0-0
>> [2018-08-15 16:41:19.582830] I [MSGID: 101055] 
>> [client_t.c:443:gf_client_unref] 0-gv1-server: Shutting down 
>> connection 
>> physinfra-hb2.xcade.net-21091-2018/08/15-16:41:03:103872-gv1-client-0-0-0
>>
>> So I see a lot of disconnections, right? This might be why the self 
>> healing is triggered all the time?
>>
> Not necessarily. These disconnects could also be due to the glfsheal 
> binary which is invoked when you run `gluster vol heal volname info` 
> etc and do not cause heals. It would be better to check your client 
> mount logs for disconnect messages like these:
>
> [2018-08-16 03:59:32.289763] I [MSGID: 114018] 
> [client.c:2285:client_rpc_notify] 0-testvol-client-4: disconnected 
> from testvol-client-0. Client process will keep trying to connect to 
> glusterd until brick's port is available
>
> If there are no disconnects and you are still seeing files undergoing 
> heal, then you might want to check the brick logs to see if there are 
> any write failures.
> Thanks,
> Ravi
>>
>> Thanks!
>>
>> Pablo.
>>
>> Avature
>>
>> Get Engaged to Talent
>>
>>
>>
>> On 08/14/2018 09:15 AM, Pablo Schandin wrote:
>>>
>>> Thanks for the info!
>>>
>>> I cannot see any logs in the mount log besides one line every time 
>>> it rotates
>>>
>>> [2018-08-13 06:25:02.246187] I 
>>> [glusterfsd-mgmt.c:1821:mgmt_getspec_cbk] 0-glusterfs: No change in 
>>> volfile,continuing
>>>
>>> But I did find in the glfsheal-gv1.log of the volumes some kind of 
>>> server-client connection that was disconnected and now it connects 
>>> using a different port. The block of log per each run is kind of 
>>> long so I'm copying it into a pastebin.
>>>
>>> https://pastebin.com/bp06rrsT
>>>
>>> Maybe this has something to do with it?
>>>
>>> Thanks!
>>>
>>> Pablo.
>>>
>>> On 08/11/2018 12:19 AM, Ravishankar N wrote:
>>>>
>>>>
>>>>
>>>> On 08/10/2018 11:25 PM, Pablo Schandin wrote:
>>>>>
>>>>> Hello everyone!
>>>>>
>>>>> I'm having some trouble with something but I'm not quite sure of 
>>>>> with what yet. I'm running GlusterFS 3.12.6 on Ubuntu 16.04. I 
>>>>> have two servers (nodes) in the cluster in a replica mode. Each 
>>>>> server has 2 bricks. As the servers are KVM running several VMs, 
>>>>> one brick has some VMs locally defined in it and the second brick 
>>>>> is the replicated from the other server. It has data but not 
>>>>> actual writing is being done except for the replication.
>>>>>
>>>>>                             Server 1                               
>>>>>                   Server 2
>>>>> Volume 1 (gv1): Brick 1 defined VMs (read/write) ---->            
>>>>>       Brick 1 replicated qcow2 files
>>>>> Volume 2 (gv2): Brick 2 replicated qcow2 files <-----            
>>>>>      Brick 2 defined VMs (read/write)
>>>>>
>>>>> So, the main issue arose when I got a nagios alarm that warned 
>>>>> about a file listed to be healed. And then it disappeared. I came 
>>>>> to find out that every 5 minutes, the self heal daemon triggers 
>>>>> the healing and this fixes it. But looking at the logs I have a 
>>>>> lot of entries in the glustershd.log file like this:
>>>>>
>>>>> [2018-08-09 14:23:37.689403] I [MSGID: 108026] 
>>>>> [afr-self-heal-common.c:1656:afr_log_selfheal] 0-gv1-replicate-0: 
>>>>> Completed data selfheal on 407bd97b-e76c-4f81-8f59-7dae11507b0c. 
>>>>> sources=[0] sinks=1
>>>>> [2018-08-09 14:44:37.933143] I [MSGID: 108026] 
>>>>> [afr-self-heal-common.c:1656:afr_log_selfheal] 0-gv2-replicate-0: 
>>>>> Completed data selfheal on 73713556-5b63-4f91-b83d-d7d82fee111f. 
>>>>> sources=[0] sinks=1
>>>>>
>>>>> The qcow2 files are being healed several times a day (up to 30 in 
>>>>> occasions). As I understand, this means that a data heal occurred 
>>>>> on file with gfid 407b... and 7371... in source to sink. Local 
>>>>> server to replica server? Is it OK for the shd to heal files in 
>>>>> the replicated brick that supposedly has no writing on it besides 
>>>>> the mirroring? How does that work?
>>>>>
>>>> In AFR, for writes, there is no notion of local/remote brick. No 
>>>> matter from which client you write to the volume, it gets sent to 
>>>> both bricks. i.e. the replication is synchronous and real time.
>>>>
>>>>> How does afr replication work? The file with gfid 7371... is the 
>>>>> qcow2 root disk of an owncloud server with 17GB of data. It does 
>>>>> not seem to be that big to be a bottleneck of some sort, I think.
>>>>>
>>>>> Also, I was investigating the directory tree in 
>>>>> brick/.glusterfs/indices and I notices that both in xattrop and 
>>>>> dirty I always have a file created named xattrop-xxxxxx and 
>>>>> dirty-xxxxxx. I read that the xattrop file is like a parent file 
>>>>> or handle to reference other files created there as hardlinks with 
>>>>> gfid name for the shd to heal. Is the same case as the ones in the 
>>>>> dirty dir?
>>>>>
>>>> Yes, before the write, the gfid gets captured inside dirty on all 
>>>> bricks. If the write is successful, it gets removed. In addition, 
>>>> if the write fails on one brick, the other brick will capture the 
>>>> gfid inside xattrop.
>>>>>
>>>>> Any help will be greatly appreciated it. Thanks!
>>>>>
>>>> If frequent heals are triggered, it could mean there are frequent 
>>>> network disconnects from the clients to the bricks as writes 
>>>> happen. You can check the mount logs and see if that is the case 
>>>> and investigate possible network issues.
>>>>
>>>> HTH,
>>>> Ravi
>>>>>
>>>>> Pablo.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Gluster-users mailing list
>>>>> Gluster-users at gluster.org
>>>>> https://lists.gluster.org/mailman/listinfo/gluster-users
>>>>
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-users/attachments/20180821/8868dc8c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4008 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.gluster.org/pipermail/gluster-users/attachments/20180821/8868dc8c/attachment.p7s>


More information about the Gluster-users mailing list