在 Samba 连接的 NAS 上移动文件

在 Samba 连接的 NAS 上移动文件

这可能是一个愚蠢的问题,但是当我在 NAS-box(freeNAS)上移动文件时,数据会通过我的 Windows PC 传输吗?

我抄袭的时候怎么办?

我一直不敢清理我的 NAS 盒,因为我不知道文件是否需要花费几个小时来移动等等......

答案1

这取决于源和目标:

相同的源和目标共享:
如果源和目标位于同一个 SMB 共享上,则您的客户端只需发送移动它的命令即可。数据本身永远不会传输到您的客户端并再次上传到服务器。即使在速度较慢的 VPN 连接上,这也允许您在几毫秒内移动 GB 的文件。

不同的源和目标共享:
如果源文件夹和目标文件夹不在同一 SMB 共享上,那么即使您移动数据,数据也会通过本地计算机传输。因此,网络传输大约是数据大小的两倍(读取数据、写入数据、删除旧位置上的数据)。

复制:
如果您复制数据,则始终通过客户端进行复制。因此流量始终是数据大小的两倍左右。

所以是的,只有在同一共享上移动才会很快。如果您使用具有本地 shell 访问权限的 NAS,您可能能够通过登录 shell 并直接在 NAS 端移动文件夹来更快地执行一些移动操作。例如,您想要将文件从移动到,\\nas\incoming\然后\\nas\archived\通过 Samba/SMB 移动文件意味着通过网络将数据从一个共享复制到另一个共享。假设 NAS 上的目录结构如下所示(示例):

/data/
/data/incoming
/data/archived
...

假设/data/在同一卷上(使用mount命令检查),则执行以下操作将更快:

mv "/data/incoming/some-folder" "/data/archived"

这会立即移动所有数据,因为文件系统上的移动操作只是some-folder在 中添加对目录的引用archived并从 中删除该引用incoming

警告:如果您在 shell 上移动数据,那么您也会移动它,包括所有权限。因此,您可能需要some-folder在移动后调整其权限,以匹配archived文件夹中其他文件的权限。

相关内容