执行虚拟机快照创建操作弹出 Soap fault: Not found 报错,快照任务直接失败无法生成,故障根源集中在两类场景。第一类是虚拟机存在损坏快照链、残留无效快照文件引用,ESXi读取快照元数据时找不到对应文件触发SOAP报错;第二类是ESXi主机hostd管理服务运行异常,vCenter与ESXi之间SOAP接口通信读取虚拟机资源信息失败。标准修复方案分为两步,优先使用vim-cmd命令清理虚拟机无效快照引用,清理完成后仍报错则重启ESXi hostd服务恢复接口通信。
一、机房现场故障完整踩坑背景
业务虚拟机需要执行备份快照,在vCenter页面点击创建快照,弹窗直接抛出 Soap fault: Not found 错误,无快照文件生成,更换浏览器、刷新vCenter页面、重启虚拟机均无法解决该报错。
1.1 初期无效排查操作
最开始优先排查虚拟机磁盘、存储空间,确认VMFS存储剩余容量充足,虚拟机无快照锁定、无磁盘只读故障;尝试直接登录ESXi单机Web页面创建快照,依旧弹出完全一致的Soap fault报错,判定故障出在ESXi主机本地服务与快照元数据层面,并非vCenter平台问题。
1.2 分层定位真实故障根因
SSH登录故障ESXi主机,通过vim-cmd工具查询虚拟机快照链信息,发现虚拟机内存在上一次快照中断后遗留的损坏快照记录,快照元数据指向的磁盘文件已被删除,系统读取资源时匹配不到文件,触发SOAP接口NotFound报错。
执行vim-cmd清理无效快照引用后,再次创建快照恢复正常;另有一台主机清理快照后依旧报错,排查hostd服务日志发现大量SOAP接口读取失败,重启hostd服务后快照创建功能完全恢复。
二、Soap fault: Not found 报错底层触发逻辑
1、成因一:虚拟机快照链损坏,存在无效快照文件引用
正常快照操作会完整记录快照元数据与对应vmdk磁盘文件映射关系;如果之前快照创建/删除任务中途中断、存储异常离线、手动删除快照磁盘文件,会导致快照数据库内残留无效记录,元数据指向的磁盘文件不存在。
创建新快照时,ESXi hostd服务通过SOAP接口读取虚拟机快照资源列表,检索不到元数据对应的磁盘文件,直接返回 Soap fault: Not found 接口错误,快照任务终止。
2、成因二:ESXi hostd后台管理服务运行异常
hostd是ESXi主机核心管理服务,负责处理vCenter、Web客户端下发的虚拟机管理操作(快照、开机、编辑硬件等),所有操作都通过SOAP通信交互。
hostd服务长期运行会出现缓存溢出、内部数据库读写异常、SOAP接口监听失效等问题,读取虚拟机资源信息时接口查询失败,抛出NotFound类SOAP故障,与快照链损坏无关联,仅需重启hostd服务即可修复通信异常。
三、标准化分层修复操作步骤(优先清理快照,无效再重启hostd服务)
1、第一步:SSH登录ESXi主机,使用vim-cmd清理虚拟机损坏/残留快照引用
1.1 前置准备
记录故障虚拟机的VMID,两种查询方式: a. vCenter选中虚拟机,查看摘要页面获取虚拟机ID; b. ESXi SSH执行 vim-cmd vmsvc/getallvms 列出所有虚拟机名称与对应VMID。
1.2 查看当前虚拟机快照链完整信息
# 替换[VMID]为故障虚拟机编号 vim-cmd vmsvc/snapshot.get [VMID]
执行命令后查看输出内容,若存在状态异常、标记损坏、快照文件路径缺失的记录,代表快照链存在无效引用,需要清理。
1.3 清理无效快照引用,合并损坏快照链
# 执行快照整合清理,自动移除损坏快照元数据 vim-cmd vmsvc/snapshot.removeall [VMID]
该命令会整合虚拟机所有磁盘差异文件,彻底清空全部快照链,删除所有快照元数据残留;执行过程需等待磁盘IO整合完成,大磁盘虚拟机耗时较长,禁止中途关闭SSH会话、关闭虚拟机电源。
1.4 清理完成验证
整合任务执行完毕后,重新执行 snapshot.get 命令,确认无任何快照记录残留;回到vCenter页面重新发起快照创建操作,测试是否还会弹出 Soap fault: Not found 报错。
2、第二步:清理快照后依旧报错,重启ESXi hostd管理服务修复SOAP通信异常
2.1 查看hostd服务运行状态
/etc/init.d/hostd status
若输出显示服务异常、日志报错SOAP接口故障、服务卡死无响应,执行重启操作。
2.2 重启hostd后台服务
# 停止hostd服务 /etc/init.d/hostd stop # 等待5秒后启动服务 sleep 5 /etc/init.d/hostd start
2.3 服务重启验证
等待hostd服务完全启动(约30~60秒),刷新ESXi/vCenter页面,再次创建虚拟机快照,Soap fault: Not found 报错彻底消失,快照正常生成。
四、高频故障排错清单
| 故障现象 | 根因分析 | 标准解决方案 |
|---|---|---|
| 创建虚拟机快照直接提示 Soap fault: Not found | 虚拟机快照链损坏,存在无效快照元数据引用,hostd读取磁盘文件匹配失败 | SSH登录ESXi,使用vim-cmd snapshot.removeall清理全部快照链,整合磁盘差异文件后重试快照 |
| 执行removeall清理完快照链,创建快照依旧报相同Soap错误 | ESXi主机hostd后台管理服务运行异常,SOAP接口通信读取虚拟机资源失败 | 执行命令重启hostd服务,等待服务完全启动后重新创建快照 |
| 仅vCenter页面创建快照报错,直接登录ESXi单机Web创建快照正常 | vCenter与ESXi之间网络通信拦截、权限账号权限不足,SOAP请求转发异常 | 核对vCenter访问ESXi权限,检查防火墙443端口连通性,重新添加主机至vCenter清单 |
| 执行vim-cmd删除全部快照时任务长时间卡住,无进度输出 | 虚拟机磁盘容量大、快照分层数量多,磁盘IO负载高,快照整合需要大量读写操作 | 选择业务低峰期执行快照整合,操作期间避免虚拟机高IO业务读写,等待后台磁盘整合自动完成 |
| 重启hostd服务后快照功能恢复,运行1~2天后再次弹出Soap fault报错 | ESXi长期未重启,hostd服务缓存持续堆积,或存储硬件存在间歇性离线故障反复损坏快照链 | 定期维护重启ESXi主机,巡检VMFS存储、RAID卡硬件状态,定时清理虚拟机过期快照避免快照链过长 |
五、运维高频误区避坑(机房实操复盘总结)
1.误区:Soap fault: Not found 是vCenter平台故障,只需要重启vCenter服务就能修复纠正:该报错核心故障点全部在ESXi主机本地,一是虚拟机快照元数据损坏,二是ESXi本地hostd服务异常;重启vCenter无法解决ESXi本地文件与服务故障,必须登录对应ESXi主机操作修复。
2.误区:快照报错后直接在vCenter删除快照即可修复损坏快照链纠正:vCenter图形界面删除快照仅能处理正常、完整的快照记录;若快照链元数据已损坏、文件引用丢失,图形界面删除操作会直接报错中断,只能通过ESXi底层vim-cmd命令强制清理整合全部快照链。
3.误区:重启hostd服务会中断虚拟机运行、导致业务停机纠正:hostd是主机管理后台服务,仅负责快照、硬件编辑、页面管理等管控操作;虚拟机运行依赖vmware-vmx进程,重启hostd完全不会影响虚拟机内部业务运行,无需停机业务即可执行修复。
4.误区:为避免快照报错,创建快照后可以长期保留多层快照链无需清理纠正:多层快照链会持续累积磁盘差异数据,存储IO压力持续升高,同时快照链过长极易出现元数据损坏、文件引用丢失,触发Soap fault类快照创建报错;生产环境快照仅短期临时备份,完成备份后及时清理快照链。
5.误区:看到Soap fault报错代表虚拟机磁盘损坏、数据丢失风险极高,需要立刻关机备份纠正:该报错仅属于ESXi快照管理接口、快照元数据层面故障,虚拟机业务磁盘本身完整无损坏,虚拟机内部数据完全安全;无需紧急关机备份,直接按流程清理快照或重启hostd服务即可修复快照功能。
六、虚拟化运维标准化规范
生产快照管理规范:虚拟机快照仅用作临时变更备份,快照保留时长不超过24小时,备份完成后及时清理快照链,避免多层快照累积损坏元数据触发快照报错。
故障修复操作规范:出现Soap fault: Not found快照报错,固定修复流程:ESXi SSH使用vim-cmd清理全部快照链→测试快照创建;依旧报错则重启hostd服务,禁止优先重启vCenter、虚拟机等无效操作。
主机服务运维规范:ESXi主机每季度执行一次整机维护重启,释放hostd服务长期运行堆积的缓存,减少SOAP接口通信异常类故障概率。
存储巡检规范:每周巡检VMFS存储、RAID阵列硬件状态,排查磁盘离线、存储链路闪断问题;存储故障会频繁损坏虚拟机快照元数据,提前规避快照创建失败故障。
变更操作规范:执行虚拟机快照整合、批量删除快照任务,统一安排凌晨业务低峰窗口执行,降低磁盘IO负载,防止快照整合任务长时间卡死。