[Gluster-users] self-heal trouble after changing arbiter brick

Seva Gluschenko gvs at webkontrol.ru
Fri Feb 9 13:37:00 UTC 2018


Hi Karthik,
Thank you very much, you made me much more relaxed. Below is getfattr output for a file from all the bricks:

root at gv2 ~ # getfattr -d -e hex -m . /data/glusterfs/testset/306/30677af808ad578916f54783904e6342.pack
getfattr: Removing leading '/' from absolute path names
# file: data/glusterfs/testset/306/30677af808ad578916f54783904e6342.pack
trusted.afr.dirty=0x000000000000000000000000
trusted.afr.myvol-client-6=0x000000010000000100000000
trusted.bit-rot.version=0x02000000000000005a0d2f650005bf97
trusted.gfid=0xe46e9a655128456bba0d98568d432717

root at gv3 ~ # getfattr -d -e hex -m . /data/glusterfs/testset/306/30677af808ad578916f54783904e6342.pack
getfattr: Removing leading '/' from absolute path names
# file: data/glusterfs/testset/306/30677af808ad578916f54783904e6342.pack
trusted.afr.dirty=0x000000000000000000000000
trusted.afr.myvol-client-6=0x000000010000000100000000
trusted.bit-rot.version=0x02000000000000005a0d2f6900076620
trusted.gfid=0xe46e9a655128456bba0d98568d432717

root at gv1 ~ # getfattr -d -e hex -m . /data/gv23-arbiter/testset/306/30677af808ad578916f54783904e6342.pack
getfattr: Removing leading '/' from absolute path names
# file: data/gv23-arbiter/testset/306/30677af808ad578916f54783904e6342.pack
trusted.gfid=0xe46e9a655128456bba0d98568d432717

Is it okay that only gfid info is available on the arbiter brick?

--
Best Regards,

Seva Gluschenko
CTO @ http://webkontrol.ru (http://webkontrol.ru/)
February 9, 2018 2:01 PM, "Karthik Subrahmanya" <ksubrahm at redhat.com (mailto:%22Karthik%20Subrahmanya%22%20<ksubrahm at redhat.com>)> wrote:
On Fri, Feb 9, 2018 at 3:23 PM, Seva Gluschenko <gvs at webkontrol.ru (mailto:gvs at webkontrol.ru)> wrote:
Hi Karthik,

Thank you for your reply. The heal is still undergoing, as the /var/log/glusterfs/glustershd.log keeps growing, and there's a lot of pending entries in the heal info.

The gluster version is 3.10.9 and 3.10.10 (the version update in progress). It doesn't have info summary [yet?], and the heal info is way too long to attach here. (It takes more than 20 minutes just to collect it, but the truth is, the cluster is quite heavily loaded, it handles roughly 8 million reads and 100k writes daily.) 
Since you have huge number of files inside nested directories and high load on the cluster, it might take some time to complete the heal. You don't need to worry about the gfids you are seeing on the heal info output. 
Heal info summary is supported from version 3.13. 
The heal info output is full of lines like this:

...

Brick gv2:/data/glusterfs
<gfid:96a4ee35-b519-40e2-8dc0-a26f8faa5628>
<gfid:fa4185b0-e5ab-4fdc-9dca-cb6ba33dcc8d>
<gfid:8b2cf4bf-8c2a-465e-8f28-3e9a7f517268>
<gfid:13925c48-fda4-40bd-bfcb-d7ced99b82b2>
<gfid:292e3a0e-7114-4c97-b688-e94503047b58>
<gfid:a52d1173-e034-4b57-9170-a7c91cbe2904>
<gfid:5c830c7b-97b7-425b-9ab2-761ef2f41e88>
<gfid:420c76a8-1598-4136-9c77-88c8d59d24e7>
<gfid:ea6dbca2-f7e3-4015-ae34-04e8bf31fd4f>
...

And so forth. Out of 80k+ lines, less than just 200 are not related to gfids (and yes, number of gfids is well beyond 64999):

# grep -c gfid heal-info.fpack
80578

# grep -v gfid heal-info.myvol
Brick gv0:/data/glusterfs
Status: Connected
Number of entries: 0

Brick gv1:/data/glusterfs
Status: Connected
Number of entries: 0

Brick gv4:/data/gv01-arbiter
Status: Connected
Number of entries: 0

Brick gv2:/data/glusterfs
/testset/13f/13f27c303b3cb5e23ee647d8285a4a6d.pack
/testset/05c - Possibly undergoing heal

/testset/b99 - Possibly undergoing heal

/testset/dd7 - Possibly undergoing heal

/testset/0b8 - Possibly undergoing heal

/testset/f21 - Possibly undergoing heal

...

And here is the getfattr output for a sample file:

# getfattr -d -e hex -m . /data/glusterfs/testset/13f/13f27c303b3cb5e23ee647d8285a4a6d.pack
getfattr: Removing leading '/' from absolute path names
# file: data/glusterfs/testset/13f/13f27c303b3cb5e23ee647d8285a4a6d.pack
trusted.afr.dirty=0x000000000000000000000000
trusted.afr.myvol-client-6=0x000000010000000000000000
trusted.bit-rot.version=0x02000000000000005a0d2f650005bf97
trusted.gfid=0xb42d966b77154de990ecd092201714fd

I tried several files, and the output is pretty much the same, the gfid is the only difference.

Could it be anything else I would provide to shed some light on this? 
I wanted to check the getfattr output of a file and a directory which belongs to the second replica sub volume from all the 3 bricks
Brick4: gv2:/data/glusterfs
Brick5: gv3:/data/glusterfs
Brick6: gv1:/data/gv23-arbiter (arbiter) 
to see the direction of pending markers being set.
Regards, 
Karthik 
--
Best Regards,

Seva Gluschenko
CTO @ http://webkontrol.ru (http://webkontrol.ru/)
February 9, 2018 9:16 AM, "Karthik Subrahmanya" <ksubrahm at redhat.com (mailto:%22Karthik%20Subrahmanya%22%20%3Cksubrahm at redhat.com%3E)> wrote:
Hey,Did the heal completed and you still have some entries pending heal?
If yes then can you provide the following informations to debug the issue.
1. Which version of gluster you are running2. gluster volume heal <volname> info summary or gluster volume heal <volname> info3. getfattr -d -e hex -m . <filepath-on-brick> output of any one of the which is pending heal from all the bricksRegards,Karthik 

On Thu, Feb 8, 2018 at 12:48 PM, Seva Gluschenko <gvs at webkontrol.ru (mailto:gvs at webkontrol.ru)> wrote:
Hi folks,

I'm troubled moving an arbiter brick to another server because of I/O load issues. My setup is as follows:

# gluster volume info

Volume Name: myvol
Type: Distributed-Replicate
Volume ID: 43ba517a-ac09-461e-99da-a197759a7dc8
Status: Started
Snapshot Count: 0
Number of Bricks: 3 x (2 + 1) = 9
Transport-type: tcp
Bricks:
Brick1: gv0:/data/glusterfs
Brick2: gv1:/data/glusterfs
Brick3: gv4:/data/gv01-arbiter (arbiter)
Brick4: gv2:/data/glusterfs
Brick5: gv3:/data/glusterfs
Brick6: gv1:/data/gv23-arbiter (arbiter)
Brick7: gv4:/data/glusterfs
Brick8: gv5:/data/glusterfs
Brick9: pluto:/var/gv45-arbiter (arbiter)
Options Reconfigured:
nfs.disable: on
transport.address-family: inet
storage.owner-gid: 1000
storage.owner-uid: 1000
cluster.self-heal-daemon: enable

The gv23-arbiter is the brick that was recently moved from other server (chronos) using the following command:

# gluster volume replace-brick myvol chronos:/mnt/gv23-arbiter gv1:/data/gv23-arbiter commit force
volume replace-brick: success: replace-brick commit force operation successful

It's not the first time I was moving an arbiter brick, and the heal-count was zero for all the bricks before the change, so I didn't expect much trouble then. What was probably wrong is that I then forced chronos out of cluster with gluster peer detach command. All since that, over the course of the last 3 days, I see this:

# gluster volume heal myvol statistics heal-count
Gathering count of entries to be healed on volume myvol has been successful

Brick gv0:/data/glusterfs
Number of entries: 0

Brick gv1:/data/glusterfs
Number of entries: 0

Brick gv4:/data/gv01-arbiter
Number of entries: 0

Brick gv2:/data/glusterfs
Number of entries: 64999

Brick gv3:/data/glusterfs
Number of entries: 64999

Brick gv1:/data/gv23-arbiter
Number of entries: 0

Brick gv4:/data/glusterfs
Number of entries: 0

Brick gv5:/data/glusterfs
Number of entries: 0

Brick pluto:/var/gv45-arbiter
Number of entries: 0

According to the /var/log/glusterfs/glustershd.log, the self-healing is undergoing, so it might be worth just sit and wait, but I'm wondering why this 64999 heal-count persists (a limitation on counter? In fact, gv2 and gv3 bricks contain roughly 30 million files), and I feel bothered because of the following output:

# gluster volume heal myvol info heal-failed
Gathering list of heal failed entries on volume myvol has been unsuccessful on bricks that are down. Please check if all brick processes are running.

I attached the chronos server back to the cluster, with no noticeable effect. Any comments and suggestions would be much appreciated.

--
Best Regards,

Seva Gluschenko
CTO @ http://webkontrol.ru (http://webkontrol.ru/)  
_______________________________________________
Gluster-users mailing list
Gluster-users at gluster.org (mailto:Gluster-users at gluster.org)
http://lists.gluster.org/mailman/listinfo/gluster-users (http://lists.gluster.org/mailman/listinfo/gluster-users)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gluster.org/pipermail/gluster-users/attachments/20180209/676adfad/attachment.html>


More information about the Gluster-users mailing list