VMware 虚拟机无法启动报正在处理另一个任务
现象
主机出现故障并伴随主机重启,重启后其中一个虚拟机恰好被备份软件开始备份 
排查过程
1. 初步检查
需求就是以最快速度把这台虚拟机启动起来 根据现场人员的描述:
- 主机是故障重启
- 需要处理的虚拟机就这一台
- 给出的线索还是虚拟机带有锁文件
2. 关键发现
根因
明确写出根因,不要只写“已恢复”。
处理步骤
我的思路是这样:
- 先查看当前的虚拟机状态
- 如果带有锁导致的无法启动那就尝试从软到硬到强制关闭虚拟机,让 ESXi 把锁释放
- 如果第二步无法释放,那就看看是哪个进程还在占用文件导致的锁
- 最差的是直接强制删除锁文件
# 列出所有正在运行的虚拟机,同时也获取到对应的wordID
esxcli vm process list
# 发现还在运行,就执行了软关闭
esxcli vm process kill --type=soft --world-id=3496027
# 因为已经启动了后面就没有继续
esxcli vm process kill --type=hard --world-id=3496027
esxcli vm process kill --type=force --world-id=3496027但是后面在 web 刷新的时候已经是启动状态了。
但是呢以我的理解我大胆猜测一下这个过程:
- 主机故障重启后,vCenter/HA 开始拉起 VM。
- NetWorker 也在恢复后继续/重试备份任务,先触发了快照相关操作。
- 这台 VM 一度被“备份快照任务/磁盘句柄”占用,UI 出现“正在处理另一个任务”。
- 同时你手工做了重配电源/快照操作,和备份任务冲突,出现一串失败记录。
- 备份任务失败或超时退出后,锁自动释放。
- 资源也在这段时间波动(你看到过内存不足),稍后恢复。
- HA 或你的后续重试命中“锁已释放 + 资源恢复”的窗口,VM 最终自己启动成功。
flowchart TD A["ESXi 主机故障并重启"] --> B["vCenter/HA 开始恢复虚拟机任务"] B --> C["NetWorker Backup 恢复后重试<br/>触发快照/磁盘操作"] C --> D["VM 出现任务占用或锁定<br/>报'正在处理另一个任务'"] D --> E["人工操作叠加<br/>重配/开机/快照任务冲突"] E --> F["出现多条失败记录<br/>含备份失败、开机失败"] F --> G["备份任务失败或超时退出<br/>锁自动释放"] G --> H["主机资源逐步恢复(含内存波动回落)"] H --> I["HA或人工重试再次开机"] I --> J["VM 最终成功启动"] style C fill:#ffe9cc,stroke:#d79b00 style D fill:#ffd6d6,stroke:#b85450 style G fill:#d5e8d4,stroke:#82b366 style J fill:#d5e8d4,stroke:#82b366
验证结果
- 验证项 1:虚拟机正常启动
- 验证项 2:第二天验证业务正常运行
经验沉淀
定位错误的位置
补充说明
文章附件目录:/assets/images/blog/{{slug}}/