How to repair dir total-size with gluster self-heal

clusterfilesystemsglusterfs

I build a glusterfs cluster, and the type is the Striped Replicated Volumes with 4 servers like that:

Volume Name: test-volume
Type: Striped-Replicate
Volume ID: bdb596e6-a7d2-44a4-8791-1b4fdc57469c
Status: Started
Number of Bricks: 1 x 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.90.245.18:/exp1
Brick2: 10.90.245.35:/exp2
Brick3: 10.90.245.36:/exp3
Brick4: 10.90.245.37:/exp4

I mount it from a client, while upload a 100G file to test-volume. Each of the file on the server should be 50G. While I uploading the data to cluster I turn down a server of cluster. While the client complete upload file then start the server and start service glusterd.
And then the gluster volume heal info like that:

root@alyrokif:/exp1# gluster volume heal test-volume info
Gathering Heal info on volume test-volume has been successful

Brick 10.90.245.18:/exp1
Number of entries: 0

Brick 10.90.245.35:/exp2
Number of entries: 0

Brick 10.90.245.36:/exp3
Number of entries: 0

Brick 10.90.245.37:/exp4
Number of entries: 0

and storage dir in restarted server like that:

root@xetvmcjg:/exp2# ll -h
total 742M
drwxr-xr-x  3 root root 4.0K Mar 28 16:37 ./
drwxr-xr-x 24 root root 4.0K Mar 27 16:30 ../
drw------- 72 root root 4.0K Mar 28 16:36 .glusterfs/
-rw-r--r--  2 root root 50G Mar 28 16:37 testfile

There was 50G in other 3 server. But there was only 742MB on the restarted server. So how can I make this 742MB to 50G.

Best Answer

I'm assuming you're using Gluster 3.3

Gluster does a proactive self-heal, though it may need to be prodded to notice this. This can be triggered by accessing the file from a client, which should cause it to (within 10 minutes) notice that a sync is incomplete and start healing.

You can also force a heal:

gluster volume heal testvol

And to force it to heal everything on the volume regardless of the need to do so (it can take an extremely long time if you have a lot of files)

gluster volume heal testvol full

You've already found the command to track healing progress, though this is also reflected in the gluster log-files.

Related Topic