我有一些大文件(几 GB)需要通过本地网络传输。涉及三台计算机,源计算机 A、目标计算机 B,可能还有第三台计算机(执行复制的人员或脚本所在的计算机)。
如果我在计算机 A(从本地源到远程 smb 目标)、计算机 B(从远程 smb 源到本地目标)或 C(从远程 smb 目标到远程 smb 目标)上运行它,会有什么区别吗?
另外,我想在多台目标机器上并行运行这个程序,这会改变什么吗?
答案1
如果 C 上的脚本只是在 A 或 B 上执行远程命令(例如通过 PowerShell 或 SSH),并且传输直接在 A 和 B 之间进行,则其他变体之间没有根本区别(在源或目标上启动传输),并且所有三个变体应该或多或少相同。但是如果你尝试做类似的事情
copy \\serverA\files \\serverB\files
在 C 上,您将有效地使所需的数据传输量增加一倍,因为数据将从 A 复制到 C,再从 C 复制到 B。
至于多路并行传输的问题:如果您的意思是并行地从 A 复制到 B、从 A 复制到 D、从 A 复制到 E,这不会改变任何东西,但如果文件相同,那么寻找某种使用多播将文件仅发送一次到网络的并行复制工具可能会更快,否则您的网络带宽将由所有传输共享,从而将速度降低到(1/并行传输数)。