问题描述
在 ESXi 主机启动过程中,可能会遇到以下问题:
- ‘activating: storage-path-claim’ 任务耗时过长,导致启动延迟
- 启动时间超过 30 分钟
- ESXi 主机似乎在该阶段挂起
在 KVM 控制台输出中,可以看到类似这样的信息:
hpp loaded successfully. activating: storage-path-claim.
从 /vmfs/volumes/##########################/log/jumpstart-stdout.log 中可以找到更详细的错误:
YYYY-MM-DDThh:mm:ss.###Z Method invocation failed: execute boot storage restore --nfs-volumes failed
YYYY-MM-DDThh:mm:ss.###Z restore-nfs-volumes: failed to restore volume :: Failed DNS lookup: hostname: , error: -3
YYYY-MM-DDThh:mm:ss.###Z Method invocation failed: execute boot storage restore --nfs41-volumes failed
YYYY-MM-DDThh:mm:ss.###Z restore-nfs-volumes: ResolveHostNames failed. Retrying Failed DNS lookup: hostname: , error: -3
根本原因分析
根据 VMware KB 420426,问题的根本原因是 ESXi 主机在启动过程中遇到 DNS 解析失败:
1. 主机在启动时尝试恢复存储配置,包括 NFS 卷
2. 无法解析 NFS 服务器的 FQDN(完全限定域名)
3. 这导致 ‘activating: storage-path-claim’ 任务不断重试并最终超时
4. 该问题可能影响 ESXi 7.x、8.x 和 9.x 版本
故障排查和解决方案
步骤 1:检查 ESXi DNS 配置
1. 使用 KVM 控制台或 DCUI(Direct Console User Interface)直接连接到 ESXi 主机
2. 导航到 Configure Management Network > DNS Configuration
3. 验证以下内容:
步骤 2:验证 DNS 解析功能
1. 使用 DCUI 或 SSH(如果已启用)打开 ESXi 主机的命令行
2. 测试 NFS 服务器的 DNS 解析:
nslookup
3. 如果 nslookup 失败,尝试使用 IP 地址进行测试:
ping
4. 同时检查 ESXi 主机是否可以解析其他常见域名(如 vmware.com):
nslookup vmware.com
步骤 3:检查 DNS 服务器配置
1. 登录到 DNS 服务器(可能是 Windows DNS 或 Linux 上的 BIND)
2. 验证 NFS 服务器的 DNS 记录是否存在且正确
3. 检查正向和反向查找区域是否正确配置
4. 确认 DNS 服务器是否响应查询
步骤 4:网络和防火墙检查
1. 验证 ESXi 主机与 DNS 服务器之间的网络连接:
ping
2. 如果 DNS 服务器位于负载均衡器之后,检查:
3. 检查防火墙规则:
步骤 5:执行网络分析
1. 在 ESXi 主机上启动数据包捕获:
pktcap-uw --switchport vmnic0 --dir 0 -o dns_capture.pcap &
nslookup
2. 使用 Wireshark 分析捕获的数据包
3. 在交换机级别执行数据包捕获以检查网络问题
步骤 6:测试 VMkernel 连通性
1. 检查 VMkernel 端口配置
2. 测试 VMkernel 端口与 NFS 服务器的连通性:
nc -zv 2049
3. 如果使用 NFS 4.1,测试相应的端口:
nc -zv 2049
nc -zv 20048
步骤 7:临时解决方案(如果需要快速启动)
如果需要立即启动 ESXi 主机,可以考虑以下临时解决方案:
1. 断开与该网络的连接或暂时禁用 NFS 存储
2. 在主机启动后,通过 vCenter 或 DCUI 重新配置存储
3. 或者,使用静态路由或直接使用 IP 地址连接到 NFS 存储
预防措施
为了避免将来遇到类似问题,建议:
1. 确保 DNS 服务器的高可用性:配置至少两个 DNS 服务器以提供冗余
2. 定期验证 DNS 解析:定期测试 ESXi 主机上的 DNS 解析功能
3. 优化 DNS 服务器性能:确保 DNS 服务器响应时间足够快
4. 使用静态 IP 地址:在可能的情况下,考虑为存储设备配置静态 IP 地址,以减少对 DNS 解析的依赖
5. 监控 DNS 服务器:设置监控以跟踪 DNS 服务器的响应时间和错误率
验证与测试
验证步骤
1. 修复 DNS 配置后,重新启动 ESXi 主机
2. 观察启动过程,确保 ‘activating: storage-path-claim’ 任务快速完成
3. 检查存储是否已正确挂载
4. 验证所有虚拟设备是否可访问
测试方法
1. 在主机启动后,测试 NFS 存储的访问:
ls -la /vmfs/volumes/
2. 创建一个简单的文件以验证存储写入功能:
touch /vmfs/volumes//test_file.txt
3. 删除测试文件:
rm /vmfs/volumes//test_file.txt
相关资源
1. [VMware KB 420426](https://knowledge.broadcom.com/external/article?articleNumber=420426)
2. [ESXi DNS 配置指南](https://docs.vmware.com/en/VMware-vSphere/8.0/com.vmware.vsphere.install.doc/GUID-5B7B8D8B-7C6A-4E6F-8D6A-7B8D8B7C6A4E.html)
3. [NFS 存储配置最佳实践](https://core.vmware.com/resource/nfs-storage-best-practices-vsphere-8)
通过按照本文中的步骤进行故障排查,您可以识别并修复导致 ESXi 主机在启动过程中遇到 “activating: storage-path-claim” 任务挂起或延迟的问题。
Reference: VMware KB 420426







