[Gluster-users] Sparse Files and Heal

Joe Julian joe at julianfamily.org
Tue Nov 18 17:12:01 UTC 2014

On 11/18/2014 06:56 AM, Pranith Kumar Karampuri wrote:
> On 11/18/2014 05:35 PM, Lindsay Mathieson wrote:
>> I have a VM image which is a sparse file - 512GB allocated, but only 
>> 32GB used.
>> root at vnb:~# ls -lh /mnt/gluster-brick1/datastore/images/100
>> total 31G
>> -rw------- 2 root root 513G Nov 18 19:57 vm-100-disk-1.qcow2
>> I switched to full sync and rebooted.
>> heal was started on the image and it seemed to be just transfering 
>> the full file from node vnb to vng. iftop showed bandwidth at 500 Mb/s
>> Eventually the cumulative transfer got to 140GB which seemed odd as 
>> the real file size was 31G. I logged onto the second node (vng) and 
>> the *real* file size size was up to 191Gb.
>> It looks like the heal is not handling sparse files, rather it is 
>> transferring empty bytes to make up the allocated size. Thats a 
>> serious problem for the common habit of over committing your disk 
>> space with vm images. Not to mention the inefficiency.
> Ah! this problem doesn't exist in diff self-heal :-(. Because the 
> checksums of the files will match in the sparse regions. In full 
> self-heal it just reads from the source file and writes to the sink 
> file. What we can change there is if the file is a sparse file and the 
> data that is read is all zeros (read will return all zeros as data in 
> the sparse region) then read the stale file and compare if it is also 
> all zeros. If both are 'zeros' then skip the write. I also checked 
> that if the sparse file is created while the other brick is down, then 
> also it preserves the holes(i.e. sparse regions). This problem only 
> appears when both the files in their full size exist on both the 
> bricks and full self-heal is done like here :-(.
> Thanks for your valuable inputs. So basically you found 2 issues. I 
> will raise 2 bugs one for each of the issues you found. I can CC you 
> to the bugzilla, so that you can see the update on the bug once it is 
> fixed. Do you want to be CCed to the bug?

Hey, nice. This will really speed up full heals for most common vm images.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://supercolony.gluster.org/pipermail/gluster-users/attachments/20141118/675bebdc/attachment.html>

More information about the Gluster-users mailing list