![Windows Server 到服务器复制,远程执行,流程概述](https://linux22.com/image/644582/Windows%20Server%20%E5%88%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A4%8D%E5%88%B6%EF%BC%8C%E8%BF%9C%E7%A8%8B%E6%89%A7%E8%A1%8C%EF%BC%8C%E6%B5%81%E7%A8%8B%E6%A6%82%E8%BF%B0.png)
好的,在这个例子中我有 3 个服务器
服务器_A、服务器_B、服务器_C
我想通过在 Server_C 上执行批处理脚本将数据通过网络从 Server_A 移动到 Server_B,它会是这样的。
robocopy "\\Server_A\Share\" "\\Server_B\Share\"
1.) 数据实际上是如何写入 Server_B 的?是先从 Server_A 复制到 Server_C 的临时文件夹或内存中,然后再写入 Server_B?还是 Server_C 以某种方式直接告诉 Server_A 将文件复制到 Server_B。
我的想法是,必须先将数据读到 Server_C 上的临时文件夹或内存中,然后才能将其写入 Server_B,这意味着通过使用 Server_C 来管理传输,您实际上使通过网络传输的数据量增加了一倍,这是否成为了一个额外的跳跃?
2.) 假设两台服务器的所有方面都相同,那么在 server_A 上运行此数据副本是否比在 Server_B 上运行更快?即:当您从一台服务器复制到另一台服务器时,在源服务器和目标服务器上管理副本是否会对现实世界产生任何影响?
我猜测从源服务器运行副本会更快,因为与查询远程服务器相比,它可以以最快的速度访问本地存储的文件分配表。
提前感谢您提供的任何意见。
答案1
从“Server_C”运行robocopy
问题中显示的命令会导致数据通过网络从“Server_A”读取并由“Server_C”发送到“Server_B”。所有数据都经过“Server_C”上的网络接口。数据通过 RAM 中的缓冲区移动 - 没有“临时文件夹”或类似的东西 - 它比这更短暂。
不过,您说得对,您创建了一个“跳跃”,从而导致总体上产生更多流量。“Server_C”没有特定的需要如果“Server_A”和“Server_B”能够直接通信,数据就可以通过它进行移动。
在这种情况下,在“Server_A”或“Server_B”上运行命令会更快robocopy
。您不会创建流量不必要经过的“跳跃”。这肯定会产生“实际影响”,但它是否会对可见速度产生任何实际影响取决于您移动的数据量和网络拓扑。
在源服务器和目标服务器上运行该命令并没有什么特别的区别,因为相同的数据将从磁盘读取并通过网络传输。源服务器和目标服务器的“文件分配表访问”速度没有区别——在这种情况下,无论您从哪里启动复制,移动的数据都是相同的。