[Gluster-users] Copy operation freezes. Lots of locks in state BLOCKED (3-node setup with 1 arbiter)
Pranith Kumar Karampuri
pkarampu at redhat.com
Wed Oct 28 11:02:31 UTC 2015
On 10/28/2015 04:27 PM, Adrian Gruntkowski wrote:
> Hello Pranith,
>
> Thank you for prompt reaction. I didn't get back to this until now,
> because I had other problems to deal with.
>
> Are there chances that it will get released this or next month? If
> not, I will probably have to resort to compiling on my own.
I am planning to get this in for 3.7.6 which is to be released by end of
this month. I guess in 4-5 days :-). I will update you
Pranith
>
> Regards,
> Adrian
>
>
> 2015-10-26 12:37 GMT+01:00 Pranith Kumar Karampuri
> <pkarampu at redhat.com <mailto:pkarampu at redhat.com>>:
>
>
>
> On 10/23/2015 10:10 AM, Ravishankar N wrote:
>>
>>
>> On 10/21/2015 05:55 PM, Adrian Gruntkowski wrote:
>>> Hello,
>>>
>>> I'm trying to track down a problem with my setup (version 3.7.3
>>> on Debian stable).
>>>
>>> I have a couple of volumes setup in 3-node configuration with 1
>>> brick as an arbiter for each.
>>>
>>> There are 4 volumes set up in cross-over across 3 physical
>>> servers, like this:
>>>
>>>
>>>
>>> ------------------------------------->[ GigabitEthernet switch
>>> ]<--------------------------
>>> | ^ |
>>> | | |
>>> V V V
>>> /-------------------------- \ /-------------------------- \
>>> /-------------------------- \
>>> | web-rep | | cluster-rep |
>>> | mail-rep |
>>> | | | |
>>> | |
>>> | vols: | | vols: |
>>> | vols: |
>>> | system_www1 | | system_www1 |
>>> | system_www1(arbiter) |
>>> | data_www1 | | data_www1 |
>>> | data_www1(arbiter) |
>>> | system_mail1(arbiter) | | system_mail1 |
>>> | system_mail1 |
>>> | data_mail1(arbiter) | | data_mail1 |
>>> | data_mail1 |
>>> \---------------------------/ \---------------------------/
>>> \---------------------------/
>>>
>>>
>>> Now, after a fresh boot-up, everything seems to be running fine.
>>> Then I start copying big files (KVM disk images) from local disk
>>> to gluster mounts.
>>> In the beginning it seems to be running fine (although iowait
>>> seems go so high that it clogs up io operations
>>> at some moments, but that's an issue for later). After some time
>>> the transfer freezes, then
>>> after some (long) time, it advances in a short burst to freeze
>>> again. Another interesting thing is that
>>> I see constant flow of the network traffic on interfaces
>>> dedicated to gluster, even when there's a "freeze".
>>>
>>> I have done "gluster volume statedump" at that time of transfer
>>> (file is copied from local disk on cluster-rep
>>> onto local mount of "system_www1" volume). I've observer a
>>> following section in the dump for cluster-rep node:
>>>
>>> [xlator.features.locks.system_www1-locks.inode]
>>> path=/images/101/vm-101-disk-1.qcow2
>>> mandatory=0
>>> inodelk-count=12
>>> lock-dump.domain.domain=system_www1-replicate-0:self-heal
>>> inodelk.inodelk[0](ACTIVE)=type=WRITE, whence=0, start=0, len=0,
>>> pid = 18446744073709551610, owner=c811600cd67f0000,
>>> client=0x7fbe100df280,
>>> connection-id=cluster-vm-3603-2015/10/21-10:35:54:596929-system_www1-client-0-0-0,
>>> granted at 2015-10-21 11:36:22
>>> lock-dump.domain.domain=system_www1-replicate-0
>>> inodelk.inodelk[0](ACTIVE)=type=WRITE, whence=0,
>>> start=2195849216, len=131072, pid = 18446744073709551610,
>>> owner=c811600cd67f0000, client=0x7fbe100df280,
>>> connection-id=cluster-vm-3603-2015/10/21-10:35:54:596929-system_www1-client-0-0-0,
>>> granted at 2015-10-21 11:37:45
>>> inodelk.inodelk[1](ACTIVE)=type=WRITE, whence=0,
>>> start=9223372036854775805, len=1, pid = 18446744073709551610,
>>> owner=c811600cd67f0000, client=0x7fbe100df280,
>>> connection-id=cluster-vm-3603-2015/10/21-10:35:54:596929-system_www1-client-0-0-0,
>>> granted at 2015-10-21 11:36:22
>>
>> From the statedump, It looks like self-heal daemon had taken
>> locks to heal the file due to which the locks attempted by the
>> client (mount) are in blocked state.
>> In Arbiter volumes the client (mount) takes full locks (start=0,
>> len=0) for every write() as opposed to normal replica volumes
>> which take range locks (i.e. appropriate start,len values) for
>> that write(). This is done to avoid network split-brains.
>> So in normal replica volumes, clients can still write to a file
>> while heal is going on, as long as the offsets don't overlap.
>> This is not the case with arbiter volumes.
>> You can look at the client or glustershd logs to see if there are
>> messages that indicate healing of a file, something along the
>> lines of "Completed data selfheal on xxx"
> hi Adrian,
> Thanks for taking the time to send this mail. I raised this
> as bug @https://bugzilla.redhat.com/show_bug.cgi?id=1275247, fix
> is posted for review @ http://review.gluster.com/#/c/12426/
>
> Pranith
>
>>
>>> inodelk.inodelk[2](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=c4fd2d78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[3](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=dc752e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[4](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=34832e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[5](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=d44d2e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[6](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=306f2e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[7](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=8c902e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[8](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=782c2e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[9](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=1c0b2e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>> inodelk.inodelk[10](BLOCKED)=type=WRITE, whence=0, start=0,
>>> len=0, pid = 0, owner=24332e78487f0000, client=0x7fbe100e1380,
>>> connection-id=cluster-vm-3846-2015/10/21-10:36:03:123909-system_www1-client-0-0-0,
>>> blocked at 2015-10-21 11:37:45
>>>
>>> There seem to be multiple locks in BLOCKED state - which doesn't
>>> look normal to me. The other 2 nodes have
>>> only 2 ACTIVE locks at the same time.
>>>
>>> Below is "gluster volume info" output.
>>>
>>> # gluster volume info
>>>
>>> Volume Name: data_mail1
>>> Type: Replicate
>>> Volume ID: fc3259a1-ddcf-46e9-ae77-299aaad93b7c
>>> Status: Started
>>> Number of Bricks: 1 x 3 = 3
>>> Transport-type: tcp
>>> Bricks:
>>> Brick1: cluster-rep:/GFS/data/mail1
>>> Brick2: mail-rep:/GFS/data/mail1
>>> Brick3: web-rep:/GFS/data/mail1
>>> Options Reconfigured:
>>> performance.readdir-ahead: on
>>> cluster.quorum-count: 2
>>> cluster.quorum-type: fixed
>>> cluster.server-quorum-ratio: 51%
>>>
>>> Volume Name: data_www1
>>> Type: Replicate
>>> Volume ID: 0c37a337-dbe5-4e75-8010-94e068c02026
>>> Status: Started
>>> Number of Bricks: 1 x 3 = 3
>>> Transport-type: tcp
>>> Bricks:
>>> Brick1: cluster-rep:/GFS/data/www1
>>> Brick2: web-rep:/GFS/data/www1
>>> Brick3: mail-rep:/GFS/data/www1
>>> Options Reconfigured:
>>> performance.readdir-ahead: on
>>> cluster.quorum-type: fixed
>>> cluster.quorum-count: 2
>>> cluster.server-quorum-ratio: 51%
>>>
>>> Volume Name: system_mail1
>>> Type: Replicate
>>> Volume ID: 0568d985-9fa7-40a7-bead-298310622cb5
>>> Status: Started
>>> Number of Bricks: 1 x 3 = 3
>>> Transport-type: tcp
>>> Bricks:
>>> Brick1: cluster-rep:/GFS/system/mail1
>>> Brick2: mail-rep:/GFS/system/mail1
>>> Brick3: web-rep:/GFS/system/mail1
>>> Options Reconfigured:
>>> performance.readdir-ahead: on
>>> cluster.quorum-type: none
>>> cluster.quorum-count: 2
>>> cluster.server-quorum-ratio: 51%
>>>
>>> Volume Name: system_www1
>>> Type: Replicate
>>> Volume ID: 147636a2-5c15-4d9a-93c8-44d51252b124
>>> Status: Started
>>> Number of Bricks: 1 x 3 = 3
>>> Transport-type: tcp
>>> Bricks:
>>> Brick1: cluster-rep:/GFS/system/www1
>>> Brick2: web-rep:/GFS/system/www1
>>> Brick3: mail-rep:/GFS/system/www1
>>> Options Reconfigured:
>>> performance.readdir-ahead: on
>>> cluster.quorum-type: none
>>> cluster.quorum-count: 2
>>> cluster.server-quorum-ratio: 51%
>>>
>>> The issue does not occur when I get rid of 3rd arbiter brick.
>>
>> What do you mean by 'getting rid of'? Killing the 3rd brick
>> process of the volume?
>>
>> Regards,
>> Ravi
>>>
>>> If there's any additional information that is missing and I
>>> could provide, please let me know.
>>>
>>> Greetings,
>>> Adrian
>>>
>>>
>>> _______________________________________________
>>> Gluster-users mailing list
>>> Gluster-users at gluster.org <mailto:Gluster-users at gluster.org>
>>> http://www.gluster.org/mailman/listinfo/gluster-users
>>
>>
>>
>> _______________________________________________
>> Gluster-users mailing list
>> Gluster-users at gluster.org <mailto:Gluster-users at gluster.org>
>> http://www.gluster.org/mailman/listinfo/gluster-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gluster.org/pipermail/gluster-users/attachments/20151028/d44a07de/attachment.html>
More information about the Gluster-users
mailing list