我们在其他地方有一台 ESXi 服务器。我可以使用 vSphere 客户端连接到该服务器。
服务器中插入了一个外部 USB 硬盘。
如何将已停止的虚拟机复制到外部硬盘?
答案1
正如 ewwhite 在他的评论中所说,这比它应该的要难,而且如果不进行大量高级配置,几乎是不可能的。
这主要是因为 vSphere 背后的底层操作系统(我相信它大致基于 Red Hat Linux,但不要因此责怪我!)从未被设计为功能齐全的操作系统 - 这就是为什么它被定义为虚拟机管理程序。
一个选择是亲自动手,在 ESXi 控制台上四处摸索。您需要检测(尝试fdisk -l
作为起点)并安装设备。我不确定您是否可以安装它,因为 ESXi 可能不知道如何处理 FAT32/exFAT 文件系统(我思考它在底层使用 ext3 或 ext4,但没有系统可以检查)。
如果失败,您可以使用 USB 直通将连接的 USB 设备分配给 Windows VM,然后使用该 VM 中的 vSphere Client 通过数据存储浏览器将目录保存到 USB 设备。
VMware 文档:
答案2
这可以通过一种迂回的方式实现,但需要第二台虚拟机(或服务器)。
- 使用 USB 直通将 USB 驱动器安装到同一物理服务器上的第二台虚拟机。
- 使用 NFS 从此 VM 共享 USB 驱动器。
- 将 ESXi 中的 NFS 共享挂载为网络存储
- 使用 vsphere 客户端将 VM 文件直接从一个存储复制到另一个存储。
在第二台虚拟机中使用 vmxnet 网络驱动程序将使大多数驱动器达到最大容量。需要 NFS 服务器,但比使用 vsphere 客户端下载选项快得多,并且允许您保留精简配置的文件。
答案3
正如其他人所说,将拇指驱动器连接到 ESX 主机不会有太大帮助。但是,您可以使用 scp(或 Windows 等效程序)将文件复制到网络上的另一台主机。有一段时间,我使用 pscp 备份我的 VM 文件,您可以从PuTTY 下载页面。具体来说,我使用这个命令,在 Windows 服务器上运行:
pscp -C -v -r -pw <password> root@esxhost:/vmfs/volumes/datastore D:\localpath
这会将所有内容从某个数据存储递归复制到我的本地文件系统。-C 开关启用压缩,这在复制精简配置的 vmdk 文件时非常有用。
但请注意,如果您确实有精简配置的 vmdk 文件,则在复制到本地存储(或数据存储区中的任何位置)时,它们将变得“膨胀”。
答案4
我需要这样做才能将物理服务器迁移到 AWS。我首先需要将物理服务器转换为 VMDK,并选择结合使用 VMware vCenter Converter Standalone 和 VMware ESXi 6.5。两者都是免费的(至少是功能齐全的免费试用版),并且设置和使用相对简单。
问题是,物理服务器有近 2TB 的存储空间,我需要将其转换为 AWS 中的 EBS 卷。我不确定为什么,但每次我尝试通过 VMware ESXi Web 界面导出时,下载都会在约 700MB 后失败。
我的解决方案是使用 SCP。为了做到这一点,我首先必须在 VMware ESXi 服务器上启用 SSH 访问。接下来,我登录 VMware ESXi 网络界面并浏览到存储 > 我的大存储驱动器并获取存储卷的路径。
一旦启用该功能,我就会启动赛格威并开始转移:
# Make destination directory on external HDD plugged into Windows PC
mkdir -p /cygdrive/d/VMWareMachines/MyBigServer
# Copy the entire volume from the ESXi server to the external HDD
scp -r [email protected]:/vmfs/volumes/4b3dc0ea-ff5a5bd3-503d-00224d50922a/ /cygdrive/d/VMwareMachines/MyBigServer/
估计需要将近 23 小时才能完成,因为我正在读取/写入旋转磁盘和 USB 2.0,但它实现了我将服务器的 VMDK 复制到外部媒体的目标。显然,使用千兆交换机、SSD 读/写和/或 USB3+ 速度会更快。