<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>
      =&gt; takes 1m31.586s<br>
      <br>
      cp /mnt/ext4/gluster-brick/image to /tmp/<br>
      =&gt; 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 &amp; 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>