在虚拟机运行时复制 vmware vmdk 文件

在虚拟机运行时复制 vmware vmdk 文件

我需要将一些虚拟机从一个数据存储复制到另一个数据存储。我运行的是 ESX 3.5 U3,虚拟机大多基于 Windows。我并不关心数据完整性,因为它只是为了在目标位置测试 NetApps 重复数据删除,并且虚拟机永远不会从这些文件运行。由于虚拟机正在使用,我无法关闭它们。如果我尝试使用“cp”复制它,当然我会收到有关文件锁定的错误。

例如:“ cp: cannot open ....vmdk' for reading: Device or resource busy

有什么诀窍可以做到这一点吗?使用 dd 还是 cpio?

问候

答案1

看到这个文章和这个,这似乎就是您要找的东西。

流程如下:

使用 vmware-cmd 对源虚拟机进行快照。

创建新的虚拟机并删除其中的所有 vmdk

使用 vmkfstools 将快照中的 vmdk 文件复制到新的文件中。

正确修复您的配置文件。

希望这可以帮助。

答案2

对于阅读此主题的任何使用 VMware Workstation 的用户来说,如果不先关闭虚拟机,则无法根据用户指南生成独立运行的副本(即备份)。Uranium 备份应用程序将在虚拟机运行时复制虚拟机,但对于像我这样的小型初创公司来说,这并不便宜(150 欧元)。我在实践中发现,只需暂停虚拟机并将文件复制到备份位置即可正常工作;提供完全独立的副本。虚拟机仅在复制阶段处于脱机状态,复制完成后将恢复其程序和文件状态。启动备份虚拟机时,它会询问您是否已移动或复制它。复制活动虚拟机的文件显然是有风险的,因为备份期间状态更改可能会导致备份无法运行。因此,我编写了一个非常基本的脚本来暂停虚拟机,将文件复制到另一个位置,然后恢复虚拟机。如果您想要副本,请给我发电子邮件。

答案3

尝试使用 VMWare Standalone Converter 并使用其“复制正在运行的机器”选项。它将临时安装一个代理;但这应该可以满足您的需求,确保 VM 在转换期间保持运行。

相关内容