更改 VMWare 快照中的设置

更改 VMWare 快照中的设置

我们是一家开发公司,因此我们大量使用虚拟机和快照进行测试。这在大多数情况下都很好用,但偶尔我会发现虚拟机中的某些设置需要在所有快照中更改。

例如,我最近创建了一个 Vista VM,只给它分配了 512MB 的 RAM。该 VM 已经有大约 18 个快照,如果可能的话,我真的非常希望避免重新创建所有快照。

有没有一种快速的方法可以将这样的 VMWare 级别更改传播到所有 VM 快照?

我正在使用 ESX 3.5,但欢迎任何其他版本(尤其是 Workstation)的建议。

答案1

这些快照已经存在多久了?通常,您不希望快照存在超过几天,否则您可能会遇到问题。我所能推荐的最佳方法是提交这些快照(如果它们很大/已经运行了一段时间,则可能需要一段时间。虚拟中心可能会超时,但如果它真的很大,它仍会在 ESX 中删除)。快照只是特定 VM 的增量文件,因此无法在多个 VM 上应用系统范围的更改。

更新:

快照为何会导致机器长时间停止:http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1002836

VMware 管理指南 (PDF):http://www.vmware.com/pdf/vi3_301_201_admin_guide.pdf

如果您决定犯下“长快照”的恐怖故事,这对您来说应该会非常痛苦:http://www.vmwarez.com/2006/11/beware-long-snapshot.html

答案2

我使用 perl 搜索/替换来修改 .vmsn 文件。如果您查看此文件的第一部分,您将看到 .vmx 文件。

我正在修改所有快照的虚拟端口组,因为网络更改使得这成为必要。恢复的快照可以正常使用新的端口组。

唯一的问题是 .vmsn 文件非常大(很多 GB),因为 perl 在更改时会将整个文件加载到内存中。我相信您可以更有效地做到这一点,但它在 100 个快照上对我们有用。

相关内容