我有两台 ESXi 服务器,均通过 Host Update Utility 更新了最新补丁。其中一台 ESXi 服务器是新安装的,另一台已使用约 8 个月,没有出现任何问题。所有虚拟机都是 ESXi 原生的,在旧服务器上创建(我有几个 Windows 2003 和 Arch Linux 虚拟机)。在新服务器上安装 ESXi 并更新两台服务器后,我尝试从旧服务器移动虚拟机。但是,每次作业都失败,状态为:
FAILED: The operation is not supported on the object.
但是,我仍然能够将 ESXi VM 转换为 VMware Server VM(它安装在我自己的工作站上)。我在 Converter 目录中拥有必要的 sysprep 文件,虚拟机管理程序和 Converter 都是可用的最新版本... 出了什么问题?我应该怎么做才能在 ESXi 服务器之间移动 VM?
UPD:转换器在过去也能正常工作(大约 4 个月前),当时我在白盒上临时安装了 ESXi,以测试转换是否有效。
答案1
为什么不将 VM 作为源主机上的虚拟设备导出,然后将其导入目标主机?这就是我移动 VM 的方式,效果非常好。(当然,我完全是 VMware 新手)。
答案2
这个错误有点误导,它(通常)是指您分配给机器的虚拟设备存在问题。
当您运行转换器向导时,在失败之前您能进行到什么程度?我怀疑您已经完成了整个向导,可以检查源,可以浏览目标,并且在失败时返回作业屏幕?
尝试在向导的最后一页禁用任何类型的 VM 自定义。
检查您已分配给虚拟机的设备,并删除除最小裸设备之外的所有设备。检查您定义的 VLAN 网络在两个 ESXi 计算机上都可用且标签相同。
您使用的是最新版本的 Converter 吗?(4.0.1)
答案3
您是否只是想将虚拟机从一台服务器移动到另一台服务器,以便它们在不同的服务器上运行?我会考虑使用存储管理实用程序复制虚拟机的配置和驱动器文件(可能使用共享存储目录作为中间文件)。这需要一段时间,特别是如果文件很大,但您可以告诉新服务器根据这些驱动器文件(预先存在的)创建虚拟机。只要版本匹配,这应该就可以正常工作。
答案4
当我有无法跨 ESX 服务器移动的虚拟机时,我会使用 netcat 通过网络传输虚拟机内容。
以下是我为此采取的步骤:
- 在目标上创建一个新的虚拟机,其配置与源相同(尤其是磁盘大小和布局)
- 从救援 Linux(CD/DVD 或 PXE 服务器)启动源虚拟机和目标虚拟机
- 在我运行的目的地:
nc -l 10000 > /dev/sda
其中 10000 是端口 - 在源上运行:
nc destination_ip 10000 < /dev/sda
其中 destination_ip 是救援 Linux 内目标的 IP 地址