![Hyper-V VM 陷入无限循环,尝试合并已删除的快照,但磁盘空间不足](https://linux22.com/image/573831/Hyper-V%20VM%20%E9%99%B7%E5%85%A5%E6%97%A0%E9%99%90%E5%BE%AA%E7%8E%AF%EF%BC%8C%E5%B0%9D%E8%AF%95%E5%90%88%E5%B9%B6%E5%B7%B2%E5%88%A0%E9%99%A4%E7%9A%84%E5%BF%AB%E7%85%A7%EF%BC%8C%E4%BD%86%E7%A3%81%E7%9B%98%E7%A9%BA%E9%97%B4%E4%B8%8D%E8%B6%B3.png)
我目前遇到了共置服务器上磁盘空间不足的问题,需要一些帮助。情况是:
- 该服务器是“我的”,但它位于托管设施,因此我无法轻松访问它。
- 该服务器有两个物理 250GB 磁盘,采用 RAID1 配置(即呈现一个 250GB 磁盘)
- 该磁盘分区为 C: (177GB) 和 E: (54GB)
- C: 有大约 25GB 的可用空间。如果需要,可能可以释放 50GB 多一点的空间(总计)。
- 服务器是 Win Server 2008(不是 R2)
- 我的服务器上有几台虚拟机。有问题的虚拟机名为 SVR03。
- SVR03 有一个动态扩展的 vhd 文件,它是 E: 上的唯一文件,目前占用了该驱动器上的所有空间:54GB。
- SVR03有快照,存储在 C:\programdata\microsoft\windows\hyper-v\snapshots 的正常位置。我们发现此快照占用了 C: 上越来越多的空间,我们不需要此快照,因此通过 Hyper-V 管理器将其删除。但是,据我了解,此快照需要合并到 vhd 中才能真正删除,并且此合并在 VM 关闭时发生。
- 现在,在关闭 SVR03 后,Hyper-V 尝试执行快照与 vhd 的合并,但由于 E: 上空间不足,因此失败。似乎在失败之前已经达到约 50%。
- 最初它在失败之前只达到大约 25%,然后我在驱动器上发现额外的 2GB 未分区空间,因此扩展了 E:,遗憾的是额外的空间不够,并且 vhd 已扩展以占用所有空间,但快照尚未成功合并。
- Hyper-V 合并失败后,会等待一段时间然后重试。
- 我无法压缩 SRV03 的 vhd,因为 Hyper-V 正在使用它并尝试合并它。
- 我可以重新启动 SVR03,但关机时仍会出现同样的问题。
我怎样才能摆脱这种情况?
有没有办法告诉 Hyper-V 暂时不要合并快照,这样我就可以移动文件了?例如,我可以将 vhd 文件移动到其他地方,这样就有更多空间了(通过清除 C: 上的空间或关闭 RAID 并创建一个新的 250GB 的 F:)。如果我要移动 vhd 文件,这样可以吗?还是快照以某种方式链接到文件的当前位置?
有没有办法取消删除快照,以便我可以关闭 SVR03,然后移动 vhd?
非常感谢!
答案1
关闭 RAID 似乎馊主意™,但除非你能将 USB 驱动器插入服务器或类似的东西,否则你很差劲。你可以关闭机器,取消合并,然后获取 vhd 和 avhd 文件。一旦你移动它们,Hyper-V 将不再自动合并它们,你必须手动执行。一旦合并,将 vhd 移回原始位置,Hyper-V 将自动发现 avhd 文件已消失。
答案2
将所有AVHD
与虚拟服务器关联的重命名为VHD
它来自一种可能有效的手动合并快照的方法。
我还没有尝试过这种方法,所以如果出了问题,我不承担任何责任。如果你有外部备份,我建议你拿一个 :)
手动合并磁盘的参考
答案3
这是我解决问题的方法:
- 连接了一个外部 USB 驱动器。这在一定程度上解决了空间问题,但仍然让我的机器在关闭虚拟机时不断尝试合并快照
- 通过右键单击 Hyper-V 管理器中的服务器名称 > 停止服务来停止 Hyper-V 管理服务。请注意,这不会停止任何虚拟机,也不会阻止您通过远程桌面等访问它们。
- 远程桌面到服务器 SVR03 并将其关闭。现在磁盘文件不再使用。
- 将 VHD(从 E:)和 AVHD 快照文件复制到 USB 驱动器。
- 重命名原始 VHD 和 AVHD 文件。这样做的目的是 (a) Hyper-V 在我启动时不会尝试合并它们,并且 (b) 稍后使用编辑磁盘向导时,您将获得“重新连接”选项。
- 按照指示这里,将 AVHD 文件重命名为 VHD,然后使用编辑磁盘向导编辑 AVHD 文件并将其重新连接到父 VHD。请注意,如果原始 VHD 文件(在我的情况下在 E: 上)仍在那里,则不会获得重新连接选项。现在再次使用编辑磁盘向导编辑 AVHD 文件并将其与 VHD 文件合并。如果您使用的是 USB 驱动器,这需要很长时间!
- 现在我的 VHD 比它的分区还大,因此我删除了该驱动器并调整了 C: 的大小以使用该空间,删除了旧的 VHD 和 AVHD 文件,然后将合并的 VHD 文件移动到 C:
- 创建一个具有与 SVR03 相同设置的新 VM,并将合并的 VHD 文件作为现有硬盘驱动器。
- 启动它,一切顺利!
答案4
这对我有用。编辑磁盘,手动合并所有可以合并的内容。重命名损坏的机器。使用原始设置创建一台新机器。连接手动合并的磁盘。(您现在正在运行最后一个可用的配置。)启动它,运行更新。删除损坏的机器。找出还需要修复的内容(即自上次拍摄可用快照以来所做的更改。)如果是 sqlserver,则从最近的异地备份中恢复数据库。