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

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

Number of entries: 0

Number of entries: 0

Number of entries: 0

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.


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.