记录使用 ServerSide Copy
实现快速文件拷贝。
前置条件
NAS 设置 SMB 共享,不同盘挂载为主机电脑的不同文件夹。
问题
远程操作 NAS 时,在不同硬盘间复制或移动文件,经常发现会占用本机网络。
假如我的网络目前为千兆,数据通过电脑中转的话下载上传各占满带宽一半,导致移动文件的速度只有 50MB/s 左右非常慢。数据都是要经过我的电脑中转的,无法直接在 NAS 内部通过硬盘传送。
那么是否可以实现直接在 NAS 跨磁盘传输数据呢?
解决
SMB 协议有个功能特性为 ServerSide Copy
(服务器端复制操作),顾名思义,可以直接在 NAS 跨磁盘传输数据。
Samba 4.1.0
是第一个通过 SMB2 FSCTL_SRV_COPYCHUNK 请求支持服务器端复制操作的版本。
对于 NFS,2016 年 11 月发布的 NFSv4.2 规范支持
ServerSide Copy
。
方法一:在 NAS 本机传输
(熟悉命令行也可以使用命令行传输文件,但是并不是太好用)。
推荐在 NAS 安装具备 WebUI 的文件管理器 APP(如 Filebrowser
),在文件管理器中进行文件操作。
方法二:使用 Windows
使用支持 SMB ServerSide Copy
特性的 SMB 客户端进行文件操作,操作系统如 Windows 8+ 的 文件资源管理器
即可支持。
但是对于 macOS Finder,需要服务器 。Samba
在 smb.conf
中包含 vfs_fruit
模块和 fruit:copyfile = yes
对于 macOS,Finder 及第三方文件管理器,均无法支持 SMB 的ServerSide Copy
。
参考
- Server-Side Copy - SambaWiki
- MacOS | < preparing to move…< folders between directories in the SAME truenas share. Why is this taking so long% - TrueNAS General - TrueNAS Community Forums
-EOF
查看最新版,请访问本文链接:https://blog.onehat.cn/p/fc3d.html
原创作品,转载请保留出处。