我发现我的虚拟机正在使用快照管理器中不可见的快照运行。我还发现该机器正在使用增量文件(可能是旧快照)运行
我看到有合并快照的程序,但我现在想了解的是:
拥有 50gb 的 VMDK 平面磁盘 => 这实际上是在开始时创建的 vdisk
现在我有一个 38 gb 的 DELTA 文件...而且这个文件每天都在增长。
我的问题是:为什么增量文件不断增大?这是正常的吗?
答案1
我确信一些对 VM 更熟悉的人会在这里附和,但听起来好像增量文件正在做它应该做的事情。
据我所知,快照的工作原理是通过写时复制,您从原始映像(即您的虚拟磁盘)和一个空文件(即增量文件)开始。每次更改任何内容时,都会在增量磁盘上进行更改。原始磁盘不会受到影响,这样,如果您需要恢复到快照,增量文件将被丢弃,所有内容都将从原始虚拟磁盘读取。
随着时间的推移,这会导致增量文件随着内容的更改、添加和删除而大幅增长。据我所知,如果您添加一个 10MB 的文件,增量文件就会增长 10MB。删除该文件,它又会增长 10MB,因为有 10MB 的差异。我可能是错的,它实际上可能会缩小 10MB,但我不这么认为。(请有人纠正我)。
如果您将更改合并到快照中,您将返回到原始的 50GB 磁盘映像。
当然,我也可能犯下严重错误,在这种情况下,我会被否决,你应该听取任何了解更多信息的人的意见。
答案2
增量文件增大是正常的。Matt 所说的关于快照工作原理的说法是正确的。不正常的是快照未显示在快照管理器中。我怀疑您也无法对该虚拟机进行任何新的快照。这听起来像是一个孤立的快照。
如果可以,您需要备份然后关闭该虚拟机。
这知识库如果可以检测到快照,可能会有所帮助。否则,我过去解决这个问题的唯一方法是手动删除快照文件,重写 .vmx 文件,并使虚拟机处于崩溃状态,从而丢失快照中的所有更改。
如果虚拟机无法关闭,您需要在主机上找到正确的进程并从服务控制台将其杀死 -9。
然后,您需要重命名或删除所有 [guestname]-######-delta.vmdk、[guestname]-######.vmdk、[guestname]-Snapshot###.vmem.WRITELOCK 文件。然后编辑 vmx 文件。查找 scsi0:0.fileName 行。它应该将其中一个快照文件列为硬盘。将其更改为原始 vmdk 文件。启动虚拟机时,它会告诉您它已崩溃。您会丢失快照的内容,但至少您可以恢复服务器。
这是一个严苛的解决方案,但是如果 ESX 说没有快照并且 VM 拒绝关闭,你就无能为力了。
答案3
这种事情可能会变得非常混乱。Phosdex 和 Matt 几乎已经考虑到了最坏的情况。
我建议按照这个说明进行操作VMware KB1002310故障排除文档,它涵盖了与 Phosdex 链接的相同方法,但它提供了一些关于如何确定您正在查看的快照是否与您认为的 VM 相关联的更多提示。有时它们不是,我见过这种情况,当人们移动 VM 以使用数据存储区浏览器“整理”东西时发生。
如果仍然失败,您可以采取一种略微另辟蹊径的方法,使用 VMware Converter 在 VM 上执行 P2V 迁移。即使它是虚拟机,如果您将其视为物理目标,Converter 也会从客户操作系统的上下文中提取当前状态,并且不会关心是否存在处于某些无法管理状态的可疑快照。然后,它会将 VM 的当前状态复制到一个干净的全新目标,留下快照混乱。一旦转换后的副本运行(但与生产网络隔离),您就可以以任何方式安全地终止原始副本并将副本连接到生产。一旦您确定副本没有问题,您就可以完全删除旧 VM。