从 VMWare Workstation 8 导出快照

从 VMWare Workstation 8 导出快照

如何将虚拟机从 VMWare Workstation 8 导出到另一台具有 VMWare Workstation 8 的物理计算机?即如何在 VMWare Workstation 8 的不同实例之间移动快照?

虚拟机主机是Linux CentOS。

假设安装了 WMWare 的源机器和目标机器均在 Windows 上运行。

谢谢。

答案1

好的,感谢您的澄清,问题在于您对快照的理解 - 它不是您想象的那样。假设您有一个没有快照的磁盘,当您创建快照时,所发生的一切就是虚拟机管理程序创建新文件,其中仅包含自快照以来对基础磁盘所做的更改,然后虚拟机管理程序仅向客户操作系统发送来自基础磁盘的正确数据(如果自快照以来磁盘的该部分未发生更改)或来自快照文件的数据(仅当自创建快照以来该部分数据已发生更改时)。因此,仅发送快照文件只会包含更改的数据,本身用处不大或毫无用处 - 可以吗?

也就是说,您实际上想要实现的目标非常简单,只需关闭虚拟机并从文件菜单中选择“保存为 OVF”,这样您就可以将虚拟机保存为与虚拟机管理程序无关的格式(称为 OVF),然后您可以将其传输给任何您想要的人。然后,他们可以将该 OVF 文件导入他们拥有的任何虚拟机管理程序(即它不必是 VMWare Workstation)。此文件将包含关闭时保存的虚拟机,如果需要,您可以根据需要在自己的机器上删除快照并继续工作。

这是我刚刚创建的(相当糟糕的)图表;

在此处输入图片描述

在此示例中,我们只有四个数据“块”/位置 - 编号为 1 至 4。如您所见,每个“块”包含一些数据(在本例中为单个数字)。然后,我们创建快照编号 1 并更改“块”1 和 3 中的数据(在本例中为 101 和 75)。此时,如果操作系统读取“块”1,则虚拟机管理程序的响应为 101,而不是 100,对于“块”3,响应为 75 而不是 50,但“块”2 和 4 的响应仍为 200 和 25。如果我们删除快照 1,则所有内容都会恢复为黄色值。如果我们创建第二个快照并将数字 102 写入“块 1”,则该“块”且仅该块会在第二个快照文件中更新,如果我们读取“块”3,它会参考第一个快照文件来获取该数据,如果我们想要读取“块”2 和 4,则参考基础文件。如果我们在“快照 2”点保存/导出虚拟机,它将创建一个文件,其中包含在该点写入的块(即 102、200、75、25)。

现在,显然在任何 VM 快照的情况下,磁盘 IO 的性能都会受到影响,因为为了实现这种快照机制,可能需要多次读取和写入磁盘。事实上,快照越多,每个快照的更改越多,性能受到的影响就越大。话虽如此,但如果当前快照的一部分写入了大量磁盘,性能影响就会减小,因为几乎所有的 IO 都将进入快照文件,但如果可以的话,应该尽量避免这种情况。事实上,VM 快照不宜长期使用,因为删除它们(实际上只是将更改写回基础文件或中间快照文件)所需的时间会随着快照以来发生的更改越多而变长。一般来说,我不喜欢快照存在超过 24/48 小时,但在桌面环境中,这个时间可以稍微延长一些。

顺便说一句,这种机制几乎就是所有快照方法在所有虚拟机管理程序中的工作方式(在 NetApp 的 WAFL 文件系统和 ZFS 中可能会有点不同,但至少是一个很好的基本理解)。

这样清楚了吗?如果不清楚,可以看一下手册,手册上说得很清楚。

答案2

实际上你可以这样做。只需关闭虚拟机并在快照菜单中克隆要导出的快照。在克隆向导中,请务必使用创建独立克隆的选项 - 这将允许移动机器。

Chopper3 关于快照的说法是正确的,但 VMware 能够合并磁盘并删除其他快照中的更改。这就是为什么也可以手动删除不再需要的快照主机并最终释放一些磁盘空间。

请记住,合并和删除操作一开始可能会占用大量磁盘空间,并且可能需要相当长的时间。

相关内容