我想知道 Linux 上哪些文件传输协议支持服务器端复制(并且不会在内部下载和重新上传文件)。我最简单的用例是将大型文件(例如 VM)从一个目录复制到同一共享上的另一个目录。
我知道 Samba 4.1.0 最近在 SMB2 协议中实现了对 FSCTL_SRV_COPYCHUNK 的支持,但据我所知,还没有客户端工具/文件管理器支持此功能(关联)。我也研究过 AFP,但用于挂载 AFP 共享的仅有的两个 Linux 工具是gvfs-afp
和afpfs-ng
,而且都不太好。afpfs-ng 无人维护,并且与 netatalk(段错误)配合不佳,而 gvfs-afp 运行时的吞吐量与 afpfs-ng 相比非常低。更新:看起来下一个版本的 NFS 也可能支持这一点。
还有其他协议支持服务器端复制吗?
提前致谢!
答案1
正如您所指出的,AFP 支持服务器端复制。gvfs 的最新未发布版本对 gvfsd-afp 进行了许多改进,使其更加可靠、速度更快。在我的测试中,它在 1GBE 上进行大容量传输时能够达到约 70MB/s 的速度,并且能够在 11 秒内复制一个包含 10000 个文件的目录,这还不错。如果服务器端复制很重要,而您又不想登录终端,那么我建议您使用这个。
我们还计划很快为 gvfsd-smb 添加服务器端复制支持,但是谁知道“很快”是什么时候呢……
(免责声明,我帮助维护 gvfs。)