VMware 似乎限制了 SCP 副本,这是什么原因?

VMware 似乎限制了 SCP 副本,这是什么原因?

我的 VMware 集群似乎出现了一个奇怪的问题,即 SCP 传输速率不一致。我有 Cluster1 和 Cluster2,它们物理上位于不同的区域。我需要将大型 vmdk 从 Cluster1 传输到 Cluster2。以下是我得到的结果:

  • 从 VMware 主机 SCP 直接到 VMware 主机,无压缩:4MB/s
  • 从 VMware 主机直接向 VMware 主机发送 SCP,压缩后:0.5MB/s
  • 从 Cluster1 中的 VMware 主机通过 SCP 传输到 Cluster1 中运行的其中一台虚拟机:30MB/s
  • 从 Cluster1 中的虚拟机 SCP 到 Cluster2 中的 VMware 主机,压缩:15MB/s
  • 从 Cluster1 中的虚拟机 SCP 到 Cluster2 中的 VMware 主机,无压缩:5MB/s
  • 从 Cluster1 中的虚拟机 SCP 到 Cluster2 中的虚拟机,压缩:20MB/s
  • 从 Cluster1 中的虚拟机 SCP 到 Cluster2 中的虚拟机,无压缩:7MB/s

使用 iperf 测试网络带宽显示,我在两个位置之间始终保持 200-300Mbps 的带宽。两个集群以及互联网的网络连接均为千兆位。

什么原因会导致 VMware 限制压缩的 CPU 使用率,什么原因会限制其在集群外的传输速率?

PS:在集群内部,我通过公共 IP,而客户 VM 位于不同的主机上。因此理论上 VMware 不应该知道传输是本地的。

编辑:Cluster1 是 4.1,Cluster2 是 5.0;尝试了 FastSCP,得到了与直接 SCP 压缩相同的结果:大约 0.5MB/s。

编辑2:将 VMware 主机上的系统资源分配增加到虚拟机正在获得的水平甚至更高。唯一的变化是主机间压缩的 SCP 不会从 0.5M 增加到 4M,就像非压缩传输一样。

仍然不明白为什么主机到主机的传输速度会更慢。

编辑3:添加更多资源后,能够实现跨数据中心 4~10MB/s 的传输速度。尽管它低于网络应能达到的 20~40,但我也只能接受这一点。不过如果有人有其他想法 - 我很想尝试一下 :)

答案1

这就是人们使用第三方产品的原因快速SCP

我假设您使用的是 ESXi 版本 4(您没有指定)。这在 ESXi 版本 5 中得到了改进。故意限制副本的原因与控制台资源管理有关。

答案2

我发现解决速度限制的方法是 ssh 进入 VMware 主机并使用 wget 获取文件。如果您使用来自网络的 iso 或 ova,这也更有意义。

答案3

VMWare 没有任何内置限制。通过 WAN 从/到 ESXi 的 SCP 速度慢的原因是接收缓冲区较小。其他 SCP/SSH 实现中也存在此限制。

由于 SCP/SSH 是基于 TCP 工作的,因此每当远程缓冲区填满时,它都会向发送端发送一个确认数据包。在收到确认之前,发送端不会发送任何新数据。随着延迟的增加,TCP 协议的本质与如此小的缓冲区相结合将导致有效带宽受到极大影响。

我们在这篇文章中更详细地讨论了这个主题,以及一些可能的解决方法。

VMWare ESXi SCP/SSH 吞吐量限制

相关内容