[Gluster-devel] copy_file_range() syscall for offloading copying of files?

Niels de Vos ndevos at redhat.com
Thu Jun 7 10:27:32 UTC 2018


Hi Pranith and Amar,

The copy_file_range() syscall can support reflinks on the (local)
filesystem. This is something I'd really like to see in Gluster soonish.
There is https://github.com/gluster/glusterfs/issues/349 which discusses
some of the technical bits, but there has not been an updated since the
beginning of April.

If we can support a copy_file_range() FOP in Gluster, support for
reflinks can then be made transarant. The actual data copying will be
done in the bricks, without transporting the data back and forth between
client and server. Distribution of the data might not be optimal, but I
think that is acceptible for many use-cases where the performance of
'file cloning' is important. Many of these environments will not have
distributed volumes in any case.

Note that copy_file_range() does not guarantee that reflinks are used.
This depends on the support and implementation of the backend
filesystem. XFS in Fedora already supports reflinks (needs special mkfs
options), and we could really benefit of this for large files like VM
disk-images.

Please provide an updated status by replying to this email, and ideally
adding a note to the GitHub issue.

Thanks!
Niels


More information about the Gluster-devel mailing list