ESXi 6.7 U3主机因快照导致数据存储满及VM启动UID引用错误求助
ESXi 6.7 U3主机因快照导致数据存储满及VM启动UID引用错误求助
老哥,你的情况我太熟了——快照引发的空间爆炸+VM配置错乱,简直是ESXi管理员的日常噩梦之一。先别慌,咱们一步步拆解问题,先把VM的启动问题搞定,再处理空间和快照残留。
第一步:修复UID引用错误,让VM能正常识别磁盘
你手动移动快照文件后,VM的.vmx配置里的磁盘UUID关联被彻底打乱了,这就是UID错误的根源。咱们得把配置掰回正轨:
- 先确认VM处于完全关机状态(别挂起,也别留着快照状态)。
- 找到datastore2里VM的文件夹,下载
.vmx文件到本地,用记事本/VS Code打开编辑:- 找到所有类似
scsi0:0.fileName = "VMname_000002.vmdk"的行,把文件名改成原始的主磁盘文件(比如VMname.vmdk)。 - 删除所有和快照相关的配置行:比如
replay.*开头的快照回放配置、snapshot.numSnapshots、snapshot.currentSnapshot这类快照计数的行,还有对应快照磁盘的uuid行。
- 找到所有类似
- 保存修改后的
.vmx文件,上传回原文件夹覆盖旧文件。 - 回到vSphere Client,先把这个VM从清单里移除(右键VM → 移除),然后从datastore里重新注册它:找到VM文件夹里的
.vmx文件,右键 → 添加到清单。这一步会让ESXi重新识别VM的磁盘配置。
第二步:清理残留快照,解决datastore空间问题
注册成功后,先别急着启动VM,先处理快照和空间的烂摊子:
- 检查快照管理器:右键VM → 快照 → 快照管理器,如果还有残留的快照条目,直接选择“删除所有快照”(如果能正常删除的话)。
- 手动合并快照(如果快照管理器无显示但磁盘文件还在):
- 先开启ESXi主机的SSH服务:vSphere Client里找主机→配置→服务→SSH→启动。
- 用SSH工具登录ESXi主机,切换到VM的datastore目录:
cd /vmfs/volumes/datastore2/你的VM文件夹名/ - 先查看磁盘链关系,确认主盘和快照的层级:
vmkfstools -chain 你的VM主磁盘名.vmdk - 因为datastore2已经满了,咱们把合并后的磁盘放到datastore1:
vmkfstools -i 最新的快照磁盘名.vmdk -d thick /vmfs/volumes/datastore1/你的VM文件夹名/合并后的磁盘名.vmdk - 合并完成后,修改VM的
.vmx文件,把磁盘路径指向datastore1里的新磁盘,再重新注册VM。
- 释放datastore2空间:确认VM能正常启动后,把datastore2里原来的旧磁盘和快照文件删掉,彻底释放空间。
第三步:预防下次再踩坑
这次的问题完全可以提前避免,给你几个实用建议:
- 厚置备VM的datastore,一定要预留至少10-20%的可用空间,备份工具创建快照时需要额外空间存储增量数据。
- 备份前先检查datastore的可用空间,空间不够的话要么扩容,要么先清理冗余文件。
- 取消备份后,一定要去快照管理器里确认快照是否被自动删除——有些工具取消备份后不会自动清理快照,得手动删。
- 如果业务允许,把厚置备改成精简置备,能灵活利用datastore空间;或者直接扩容datastore2,一劳永逸。
备注:内容来源于stack exchange,提问作者Jader de Alencar Rodrigues
相关产品推荐
相关产品推荐

