咨询:将VM从vSphere客户端(192.168.10.X)迁移至另一客户端的替代方案
替代OVF导出/导入的vSphere虚拟机迁移方案
嘿,遇到OVF导出慢的问题确实头疼,尤其是要等十几个小时的情况。针对你这种跨独立vSphere客户端(两台ESXi主机)迁移虚拟机的场景,我给你几个更高效的替代方案:
方案1:直接使用vMotion(优先推荐,条件允许的话)
如果两台ESXi主机处于同一网络(都是192.168.10.x段),且满足以下前提,直接用vMotion是最快的方式:
- 两台ESXi主机版本兼容,建议开启Enhanced vMotion Compatibility (EVC) 确保CPU指令集兼容
- 虚拟机未绑定到源主机的本地存储(或者目标主机可以访问源存储,比如共享存储)
- 两台主机都配置了vMotion专用网络(或者用现有管理网络临时替代,不推荐生产环境)
操作步骤:
- 在源ESXi主机的vSphere Client中,进入主机 -> 管理 -> 已连接的主机,添加目标ESXi主机(192.168.10.Y)的IP/凭据
- 右键选中要迁移的虚拟机,选择迁移
- 在迁移向导中选择更改主机,然后选择已添加的目标主机
- 如果虚拟机在本地存储,同时选择更改存储,指定目标主机的存储路径
- 按照向导完成迁移,整个过程虚拟机可以保持运行(如果是vMotion),或者短暂停机(如果是冷迁移)
方案2:用命令行直接复制虚拟机文件
如果vMotion条件不满足,用ESXi的命令行工具直接复制虚拟机文件夹比OVF导出高效得多,因为跳过了OVF的打包/压缩开销:
- 分别在两台ESXi主机上开启SSH服务:进入主机 -> 管理 -> 服务,找到
TSM-SSH并启动 - 通过SSH登录到源ESXi主机,找到虚拟机的存储路径,比如:
ls /vmfs/volumes/ # 找到对应的数据存储,进入虚拟机文件夹,比如 /vmfs/volumes/datastore1/MyVM/ - 用
scp直接复制整个虚拟机文件夹到目标主机的存储:
(如果网络带宽足够,这个速度会远快于OVF导出,尤其是大虚拟机)scp -r /vmfs/volumes/datastore1/MyVM root@192.168.10.Y:/vmfs/volumes/datastore2/ - 复制完成后,在目标主机的vSphere Client中,右键目标数据存储 -> 注册虚拟机,选择复制过来的
.vmx文件,完成注册即可
方案3:借助共享存储中转
如果两台主机可以访问同一个共享存储(比如NFS、iSCSI存储),可以用这个方法:
- 在源主机上,将虚拟机通过Storage vMotion迁移到共享存储
- 在目标主机上挂载同一个共享存储(确保权限配置正确)
- 在目标主机的vSphere Client中注册共享存储上的虚拟机
- (可选)如果需要将虚拟机迁移到目标主机的本地存储,再执行一次Storage vMotion
额外优化:如果必须用OVF导出
如果你还是需要用OVF方式,试试这两个优化点加快速度:
- 取消导出时的压缩选项:压缩会占用大量CPU资源,反而减慢导出速度,尤其是大虚拟机
- 直接导出到目标主机的存储:不要导出到中间设备,减少一次文件传输步骤
内容的提问来源于stack exchange,提问作者Rajadurai




