Esxcli迁移虚拟机是企业级虚拟化环境中常见的重要操作,主要用于资源优化、负载均衡、硬件升级或灾难恢复等场景,相较于vCenter图形界面的迁移方式,esxcli命令行工具提供了更灵活、高效且可脚本化的迁移能力,尤其适用于批量操作或无图形界面的管理环境,本文将详细介绍基于esxcli的虚拟机迁移原理、操作步骤、注意事项及最佳实践,帮助管理员顺利完成迁移任务。

迁移前的准备工作
虚拟机迁移前需充分规划,确保迁移过程平稳可控,准备工作主要包括环境评估、目标主机检查及虚拟机状态确认。
环境评估
- 源主机与目标主机兼容性:确保两台主机ESXi版本相同或兼容,避免因版本差异导致功能不兼容或数据丢失,若版本不同,建议先将源主机升级至与目标主机一致的版本。
- 存储兼容性:确认目标主机的存储数据stores与源主机兼容,支持虚拟机磁盘文件的读写操作,若使用NFS存储,需检查网络连通性及挂载点配置;若使用SAN存储,需确保LUN映射正确。
目标主机检查
- 资源充足性:检查目标主机的CPU、内存、存储空间及网络资源是否满足虚拟机运行需求,避免资源不足导致迁移失败或后续性能问题。
- 网络配置:确保虚拟机所需的网络端口组在目标主机上已创建,且VLAN ID、网卡类型等配置与源主机一致,避免迁移后网络中断。
虚拟机状态确认
- 关机或休眠状态:冷迁移(非实时迁移)要求虚拟机处于关机或休眠状态,确保数据一致性,若需热迁移(实时迁移),需启用vMotion功能并确保主机间网络带宽充足。
- 依赖服务检查:确认虚拟机内无正在执行的关键任务,如数据库事务、文件复制等,避免迁移过程中数据损坏,对于必须在线的虚拟机,建议提前告知业务方并安排维护窗口。
使用esxcli迁移虚拟机的操作步骤
esxcli迁移虚拟机主要通过esxcli vm storage migrate命令实现,支持将虚拟机磁盘文件从源数据存储迁移至目标数据存储,以下是具体操作流程:
连接ESXi主机
首先通过SSH登录到源ESXi主机,或使用本地控制台,若需远程管理,确保esxcli命令已正确配置权限:
esxcli --server <ESXi_IP> -u <username> set
查看虚拟机信息
使用以下命令获取待迁移虚拟机的ID、名称及当前存储信息:
esxcli vm process list
输出结果中,World ID即为虚拟机的唯一标识,Display Name为虚拟机名称。

查看可用数据存储
列出ESXi主机上已挂载的数据存储,选择目标数据存储:
esxcli storage filesystem list
记录目标数据存储的Name或UUID,例如datastore1或naa.60050763005012345。
执行迁移命令
使用esxcli vm storage migrate命令迁移虚拟机磁盘文件,基本语法如下:
esxcli vm storage migrate -w <World_ID> -d <Destination_Datastore>
参数说明:
-w:虚拟机的World ID(必填)-d:目标数据存储的名称或UUID(必填)-s:指定源数据存储(可选,若未指定则迁移所有磁盘)-t:迁移类型,默认为copy(复制后删除源文件),可选move(直接移动,需共享存储)
示例:将World ID为12345的虚拟机迁移至datastore2:

esxcli vm storage migrate -w 12345 -d datastore2
验证迁移结果
迁移完成后,再次查看虚拟机信息,确认磁盘文件路径已更新:
esxcli vm process list | grep <World_ID>
在目标数据存储目录(如/vmfs/volumes/datastore2)下检查虚拟机文件是否存在,源数据存储中的文件是否根据-t参数被保留或删除。
迁移过程中的注意事项
- 网络稳定性:若迁移涉及跨主机或远程存储,需确保网络带宽稳定,避免因网络中断导致迁移失败。
- 存储性能:对于大容量虚拟机,建议在业务低峰期执行迁移,减少对生产环境的影响。
- 错误处理:若迁移失败,可通过
esxcli vm storage migrate -l查看迁移日志,定位错误原因(如权限不足、存储空间不足等)。 - 备份验证:迁移前对虚拟机进行备份,迁移后验证虚拟机启动及业务功能是否正常,确保数据完整性。
迁移后的优化与验证
- 性能监控:迁移后监控虚拟机在目标主机上的CPU、内存及磁盘I/O性能,确保无异常波动。
- 配置调整:根据目标主机资源情况,调整虚拟机资源分配(如CPU预留、内存限制等)。
- 清理冗余数据:若使用
copy模式迁移且确认源文件不再需要,及时清理源数据存储中的冗余文件,释放存储空间。
常见问题及解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 迁移失败,提示“权限不足” | 用户无操作数据存储的权限 | 检查用户角色是否具有“Storage Administrator”权限 |
| 迁移中断,网络连接超时 | 网络不稳定或带宽不足 | 检查网络链路,或调整迁移时间窗口 |
| 虚拟机迁移后无法启动 | 目标存储路径错误或磁盘文件损坏 | 验证存储路径,检查虚拟机磁盘文件完整性 |
| 迁移速度过慢 | 存储I/O性能瓶颈或网络带宽不足 | 优化存储配置或增加网络带宽 |
通过以上步骤和注意事项,管理员可以高效、安全地使用esxcli完成虚拟机迁移,相较于图形界面,命令行操作虽然需要一定的技术基础,但其灵活性和自动化能力使其在大规模虚拟化环境中更具优势,在实际操作中,建议先在测试环境验证流程,确保迁移方案的可靠性,再应用于生产环境。

















