我正在使用两个 ESXi 服务器上的 SSH 将虚拟机从一台 ESXi 主机转移到另一台 ESXi 主机。
但是它的速度太慢了,这是一个巨大的 750GB .vmdk 磁盘映像,虚拟机已停止(有停机时间),并且以 5.5MB/s 的速度比,需要一天以上的时间才能完成移动。
我是否遗漏了什么?
myvm.mydomain.com-flat.vmdk 26% 200GB 5.4MB/s 29:09:06 ETd
ESXi Server 上的重要硬件:
Supermicro X9SCM-F
Intel 82574L Gigabit Controller
IBM SR-BR10i RAID Controller
2x WD Velociraptor WD1000DHTZ (RAID1 mode from controller)
另一点:在开始 VM 迁移之前,我已经构建并同步了 RAID 阵列。
谢谢你的帮助,
答案1
如果你觉得复制速度很慢,你还没有看到虚拟机运行。主要的问题是您的控制器缺少 BBU,而 ESXi 正在进行许多同步写入(其中控制器或磁盘的写入缓存本来可能会被使用,但为了确保数据一致性,这些缓存被绕过了)。
添加 BBU(如果可选)或将控制器更换为使用 BBWC/FBWC 的型号。或者,如果您不关心数据的完整性(请注意,如果您的主机在不合时宜的时刻断电,这可能会导致整个数据存储丢失),您可以使用 lsiutil 启用写回缓存,即使对于同步写入也是如此。有人甚至做了为 ESXi 编译,因此您甚至可能不需要重新启动到另一个操作系统来尝试它。
除此之外,ESXi 内部的 scp/cp 操作是相当慢,你应该选择不同的方法:
- 出于性能和数据放置原因,请勿使用 scp 或 cp;而是使用 vmkfstools(VMware 的虚拟机导入工具)或 SDK API 来操作虚拟磁盘。如果使用推荐的工具,您应该会看到非常显著的性能改进。
如果你不能使用上述工具,请考虑Veeam 的 FastSCP这也是为了提高 SCP 复制性能。
答案2
ESXi 并非设计为通用 *nux,VMWare 很少鼓励使用命令行,即使使用也是为了完成特定任务。因此,命令行界面的资源消耗相当严重,无论是内存、IO 还是 CPU 份额。您将其视为通用操作系统,要求它执行相当密集的任务,因此我对它的性能不佳并不感到惊讶,这不是您的磁盘子系统的错。
如果您使用支持的传输方式我相信您会更高兴。
编辑 - 哦,我刚刚注意到这些磁盘不是 100% 占空比的,也就是说,它们不是设计为全天候运行的,这样做会大大增加它们发生故障的可能性。你打算每天只运行这台服务器 12 个小时左右吗?
答案3
由于某种未知的原因(对我来说),EXSi 之间的 SCP(自由的) 主机的速度非常慢。我使用的解决这个问题的方法是使用 SCP 将虚拟机传输到非虚拟机,然后使用 SCP 传输到目标 ESXi 主机。这不是很聪明,但我设法更改了传输速度5MB/秒至 80MB/秒。我使用 Veeam FastSCP 时也遇到了同样的传输速度缓慢的问题,而且 vmkstools 对我来说不起作用(我没有为客户机提供共享存储),所以我想不出更好的解决方案。
如果有人能解释为什么 EXSi 之间的 SCP(免费版本) 主机太慢了,我会很感激。