我们是一个开发商,所以我们大量使用虚拟机和快照进行testing。 这在大多数情况下都能正常工作,但偶尔我会发现虚拟机中的某些设置需要在所有快照中进行更改。
例如,我最近创build了一个Vista虚拟机,只给了它512MB的RAM。 虚拟机已经有大约18个快照了,我真的很想避免重新创build所有这些快照。
有没有一种快速的方法来在所有虚拟机的快照中传播像这样的VMWare级别更改?
我正在使用ESX 3.5,但是欢迎任何其他版本(特别是Workstation)的build议。
这些快照已经存在多久了? 通常情况下,您不需要几天以上的快照,否则您可能会遇到问题。 我可以推荐的最好的办法是提交这些快照(如果它们很大/运行了一段时间,可能需要一段时间,Virtual Center可能会超时,但是如果它真的很大,它仍然会在ESX中删除)。 快照只是特定虚拟机的增量文件,因此无法跨多个虚拟机应用系统范围的更改。
更新:
为什么快照可以长时间停止计算机: http : //kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1002836
VMwarepipe理指南(PDF): http : //www.vmware.com/pdf/vi3_301_201_admin_guide.pdf
恐怖故事“长时间的快照”,如果你决定提交的话,对你们来说应该是相当痛苦的: http : //www.vmwarez.com/2006/11/beware-long-snapshot.html
我用perlsearch/replace来修改.vmsn文件。 如果你看这个文件的第一部分,你会看到.vmx文件。
我正在修改我的所有快照的虚拟端口组,因为networking更改使这个必要。 已恢复的快照使用新的端口组就可以了。
唯一的问题是.vmsn文件非常大(很多GB),因为perl在更改时将整个文件加载到内存中。 我相信你可以更有效地做到这一点,但它在100张快照上为我们工作。