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

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

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

我知道 Samba 4.1.0 最近在 SMB2 协议中实现了对 FSCTL_SRV_COPYCHUNK 的支持,但据我所知,还没有客户端工具/文件管理器支持此功能(关联)。我也研究过 AFP,但用于挂载 AFP 共享的仅有的两个 Linux 工具是gvfs-afpafpfs-ng,而且都不太好。afpfs-ng 无人维护,并且与 netatalk(段错误)配合不佳,而 gvfs-afp 运行时的吞吐量与 afpfs-ng 相比非常低。更新:看起来下一个版本的 NFS 也可能支持这一点。

还有其他协议支持服务器端复制吗?

提前致谢!

答案1

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

我们还计划很快为 gvfsd-smb 添加服务器端复制支持,但是谁知道“很快”是什么时候呢……

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

答案2

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

克隆人随 fstests 一起提供的实用程序可用于在 cifs.ko SMB2 挂载点上发出 ioctl。smbclient 支持工作也在进行中。

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

相关内容