Which file transfer protocols support server-side copying?

Solution 1:

As mentioned by Ross Lagerwall, Samba 4.1+ SMB2 server-side copy support can be utilized by the Linux CIFS kernel client (cifs.ko) via the CIFS_IOC_COPYCHUNK_FILE ioctl.

The Cloner utility shipped with fstests can be used to issue the ioctl on cifs.ko SMB2 mount points. Work on smbclient support is also in progress.

One benefit of the Samba server-side copy implementation is that it can be used atop a Btrfs filesystem to perform near-instantaneous copy / deduplication of file data, as demonstrated in this performance comparison.

Solution 2:

As you noted, AFP supports server side copies. The latest unreleased version of gvfs contains a number of improvements to gvfsd-afp to make it more reliable and faster. In my tests, it is able to get about 70MB/s for a large transfer on 1GBE and is able to duplicate a directory of 10000 files in 11 seconds which is not too bad. If server side copies are important and you don't want to be logged into a terminal, this is what I'd recommend to use.

We also plan on adding server side copy support for gvfsd-smb soon, but who knows when "soon" may be...

(Disclaimer, I help maintain gvfs.)