<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Hi,<br>
<br>
I did a local sparse image copy benchmark copying from a gluster
mount (of a local gluster-server) vs copying directly from the
gluster-brick to test SEEK_HOLE support and performance.<br>
Motivation : VM's image files are sparse.<br>
Benchmark:<br>
<blockquote>cp /mnt/gluster-mount/image to /tmp/<br>
=> takes 1m31.586s<br>
<br>
cp /mnt/ext4/gluster-brick/image to /tmp/<br>
=> takes 0m29.215s (3 times faster!)<br>
</blockquote>
Target: sparse qcow2 image file<br>
<br>
logic size: 30G<br>
physic size: 1.9G<br>
<br>
Commands like 'cp' call lseek(NEXT_HOLE) and lssek(SEEK_DATA) to
skip useless zeros on modern filesystems [1].<br>
Is this supported on the gluster client? Is the server sending some
kind of holes-index-buffer to the client?<br>
<br>
[1] lseek & SEEK_HOLE: <a class="moz-txt-link-freetext" href="http://linux.die.net/man/2/lseek">http://linux.die.net/man/2/lseek</a><br>
<br>
</body>
</html>