我想知道在Linux上可用的文件传输协议支持服务器端复制(并且不在内部下载和重新上传文件)。 我最简单的用例是将大文件(如VM)从一个目录复制到另一个目录中。
我知道Samba 4.1.0最近在SMB2协议中实现了对FSCTL_SRV_COPYCHUNK的支持,但据我所知,目前还没有客户端工具/文件pipe理器支持这个( 链接 )。 我也看过法新社,但是用于装载AFP股票的唯一两个Linux工具是gvfs-afp和afpfs-ng ,但都不是太好。 afpfs-ng没有维护,与netatalk(segfaults)配合不好,而gvfs-afp的吞吐量与afpfs-ng相比非常低。 更新:它看起来像下一个版本的NFS也可能支持这一点。
还有其他支持服务器端复制的协议吗?
提前致谢!
正如你所说,法新社支持服务器端副本。 最新的未发布的gvfs版本包含了对gvfsd-afp的一些改进,使其更加可靠和更快。 在我的testing中,在1GBE上能够获得大约70MB / s的大容量传输,并且能够在11秒内复制10000个文件的目录,这也不算太差。 如果服务器端的副本是重要的,你不想login到terminal,这是我推荐使用。
我们也计划尽快为gvfsd-smb添加服务器端副本支持,但是谁知道什么时候“很快”可能是…
(免责声明,我帮助维护gvfs。)
正如Ross Lagerwall提到的那样,Linux CIFS内核客户端(cifs.ko)可以通过CIFS_IOC_COPYCHUNK_FILE ioctl使用Samba 4.1+ SMB2服务器端副本支持。
fstests附带的Cloner实用程序可用于在cifs.ko SMB2安装点上发出ioctl。 有关客户支持的工作也在进行中。
Samba服务器端副本实现的一个好处是可以在Btrfs文件系统上使用,以执行近乎即时的文件数据复制/重复数据删除, 如此性能比较中所示 。