ESXi 存储取消掩码后重新扫描无法完成的解决方法

ESXi 存储取消掩码后重新扫描无法完成的解决方法

记录一下,今天早上遇到一个关于存储管理的严重问题——在 ESXi 主机上取消挂载、分离和取消掩码存储设备后,执行重新扫描操作时,任务无法完成并最终超时。查了一下 VMware KB 429293,原来这是由于 hostd 进程在等待内核响应时发生死锁导致的。在这里分享先:

故障现象还原

1. 重新扫描任务超时

在 vSphere Client 中执行存储重新扫描操作时,任务会在 30 分钟后显示为“超时”状态。

2. 主机日志信息

/var/log/hostd.log 文件中,会看到任务创建的日志,但没有任务完成的日志:

YYYY-MM-DDThh:mm:ss.xxxZ In(166) Hostd[2099685]: [Originator@6876 sub=Vimsvc.TaskManager opID=2d87b187-85-3732 sid=52d20413 user=vpxuser:VSPHERE.LOCAL\Administrator] Task Created : haTask-ha-host-vim.host.StorageSystem.rescanAllHba-168675585

核心原因分析

根据 KB 429293 的解释,问题的根本原因是:

hostd 进程死锁

当执行存储设备查询时,hostd 进程会等待内核响应。如果内核在处理该查询时出现问题,hostd 进程会进入死锁状态,导致任务无法完成或终止。

解决方法

1. 避免死锁的操作顺序

# 建议的操作顺序
1. 重新扫描存储(在取消掩码前)
2. 分离存储设备
3. 取消掩码
4. 再次重新扫描存储

 

# 如果不按此顺序,可能会导致死锁

2. 重启 ESXi 主机(彻底解决)

# 彻底解决死锁问题,需要重启 ESXi 主机
# 在 vSphere Client 中:
# 导航到 ESXi 主机 > 右键点击 > 选择“重启”

 

# 或者使用 ESXi Shell 命令:
reboot

3. 尝试重启管理代理(临时解决方案)

# 尝试重启管理代理(可能部分解决问题,但可能失败)
# 在 ESXi Shell 中:
/etc/init.d/hostd restart
/etc/init.d/vpxa restart

 

# 或者使用
service-control --stop --all
service-control --start --all

操作步骤

1. 备份与准备

# 拍摄 ESXi 主机的快照(如果是 vCenter 管理的主机)
Get-VMHost -Name  | Get-VM | New-Snapshot -Name "Before_Storage_Rescan_Fix" -Description "Backup before storage rescan fix"

2. 检查当前系统状态

# 检查存储设备状态
esxcli storage core device list

 

# 检查任务状态
esxcli system task list

 

# 检查 hostd 进程状态
ps | grep hostd

3. 分离存储设备

# 列出所有存储设备
esxcli storage core device list

 

# 分离特定的存储设备
esxcli storage core device set -d  -s false

4. 取消掩码存储设备

# 列出当前的存储掩码
esxcli storage core claimrule list

 

# 删除对应的存储掩码规则
esxcli storage core claimrule remove -r

 

# 更新存储系统
esxcli storage core claimrule load
esxcli storage core claimrule run

5. 重新扫描存储

# 执行存储重新扫描
esxcli storage core adapter rescan --all

预防措施

1. 按照正确的操作顺序

# 执行存储操作时,遵循正确的顺序:
# 重新扫描 → 分离 → 取消掩码 → 重新扫描

2. 监控存储操作

# 在执行存储操作时,监控任务状态
Get-Task | Where-Object {$_.State -eq "Running"}

 

# 监控系统资源使用情况
esxcli system process list | Sort-Object -Property CPUPercent -Descending

3. 定期维护存储系统

# 定期检查存储系统的健康状态
esxcli storage core device list | Select-Object Device, Size, Vendor, Model, Status

 

# 检查存储适配器状态
esxcli storage core adapter list

故障排查

1. 任务无法取消

# 如果重新扫描任务无法取消
# 使用 ESXi Shell 列出并终止任务
esxcli system task list
esxcli system task cancel -t 

2. 管理代理无法启动

# 如果管理代理无法启动
# 检查系统资源
top | head -20

 

# 检查日志文件
tail -f /var/log/hostd.log
tail -f /var/log/vmkernel.log

 

记住,存储管理操作直接影响到虚拟机的可用性和数据安全,因此在执行此类操作时需要格外谨慎。如果遇到无法解决的问题,及时联系 VMware 支持寻求帮助。


Reference: VMware KB 429293

有VM问题需要协助?

免费试用VMware技术助理(已接Deepseek)!即时解答VM难题

→ 🤖VM技术助理

解析和诊断各类vCenter错误,ESXi日志,虚拟机vmware.log

→ 📕VMware日志分析器

图书推介 - 京东自营

24小时热门

还有更多VMware问题?

免费试下我们的VMware技术助理(已接Deepseek)!即时解答VM难题 → 🤖VM技术助理

试试 📕VMware日志分析器 免费诊断各类vCenter错误,ESXi日志,虚拟机vmware.log等等

########

扫码加入VM资源共享交流微信群(请备注加群

需要协助?或者只是想技术交流一下,直接联系我们!

推荐更多

ESXi 存储取消掩码后重新扫描无法完成的解决方法
运维必备

ESXi 存储取消掩码后重新扫描无法完成的解决方法

ESXi 存储取消掩码后重新扫描无法完成的解决方法。详细解析 ESXi 主机在存储取消掩码后重新扫描任务无法完成的问题,重点说明 hostd 进程死锁的原因,提供分步的解决方法,帮助管理员快速恢复存储管理功能。 本文针对该问题提供了深度剖析与实测解决方案。

VMware 产品安装/卸载失败的错误 1603 解决方法
运维必备

VMware 产品安装/卸载失败的错误 1603 解决方法

VMware 产品安装/卸载失败的错误 1603 解决方法。详细解析 VMware 产品在 Windows 系统上安装或卸载时出现错误 1603 的原因,重点说明 C:\ProgramData\VMware 文件夹的权限问题,提供完整的解决步骤,帮助管理员快速恢复安装/卸载功能。 本文针对该问题提供了深度剖析与实测解决方案。

vCenter VAMI 更新失败的 RPM 数据库损坏修复方法
运维必备

vCenter VAMI 更新失败的 RPM 数据库损坏修复方法

vCenter VAMI 更新失败的 RPM 数据库损坏修复方法。详细解析 vCenter VAMI 中更新失败的问题,重点说明 RPM 数据库损坏的原因,提供完整的修复步骤,帮助管理员快速恢复 VAMI 的更新功能。 本文针对该问题提供了深度剖析与实测解决方案。

启用 Secure Boot 后无法安装 lpfc驱动的证书验证问题
运维必备

启用 Secure Boot 后无法安装 lpfc驱动的证书验证问题

启用 Secure Boot 后无法安装 lpfc 合作伙伴驱动的证书验证问题。详细解析启用 Secure Boot 后无法安装 lpfc 合作伙伴驱动的问题,重点说明自签名证书验证失败的原因,提供两个解决方案,帮助管理员快速恢复驱动安装功能。 本文针对该问题提供了深度剖析与实测解决方案。

//omg10.com/4/9119499