哪些文件传输协议支持服务器端复制?

And*_*son 9 copying protocol

我想知道 Linux 上可用的哪些文件传输协议支持服务器端复制(并且不在内部下载和重新上传文件)。我拥有的最简单的用例是将大文件(例如 VM)从一个目录复制到同一共享上的另一个目录。

我知道 Samba 4.1.0 最近在 SMB2 协议中实现了对 FSCTL_SRV_COPYCHUNK 的支持,但据我所知,还没有客户端工具/文件管理器支持这个(链接)。我也看了看AFP,但只有两个Linux工具安装AFP股gvfs-afpafpfs-ng也不是太大。afpfs-ng 是无人维护的,不能很好地与 netatalk(段错误)配合,而 gvfs-afp 在工作时的吞吐量比 afpfs-ng 低。更新:看起来 NFS 的下一个版本也可能支持这一点。

是否有任何其他协议支持服务器端复制?

提前致谢!

小智 6

正如 Ross Lagerwall 所提到的,Linux CIFS 内核客户端 (cifs.ko) 可以通过 CIFS_IOC_COPYCHUNK_FILE ioctl 使用 Samba 4.1+ SMB2 服务器端复制支持。

fstests 附带的Cloner实用程序可用于在 cifs.ko SMB2 挂载点上发出 ioctl。smbclient 支持的工作也在进行中。

Samba 服务器端复制实现的一个好处是,它可以在 Btrfs 文件系统之上使用,以执行近乎即时的文件数据复制/重复数据删除,如本性能比较所示


小智 5

正如您所指出的,AFP 支持服务器端副本。gvfs 的最新未发布版本包含对 gvfsd-afp 的许多改进,以使其更可靠和更快。在我的测试中,它能够在 1GBE 上获得大约 70MB/s 的大传输速度,并且能够在 11 秒内复制 10000 个文件的目录,这还不错。如果服务器端副本很重要并且您不想登录到终端,那么这就是我建议使用的。

我们还计划很快为 gvfsd-smb 添加服务器端副本支持,但谁知道“很快”可能是什么时候......

(免责声明,我帮助维护 gvfs。)