3. 诊断工具链与日志体系
复杂故障诊断的效率,往往不取决于工程师对某个命令的熟悉程度,而取决于是否建立了“分层取证”的意识:先判断问题落在哪一层,再选择该层最合适的工具与日志,最后用支持包把证据固化下来。本节围绕 ESXi 主机、vCenter Server 与存储/网络三个层面,梳理一条可复用的工具链与日志体系。
一、工具链的分层定位
ESXi 主机侧的核心工具是 esxcli,它按命名空间组织,覆盖存储、网络、虚拟机、硬件等多个子系统。诊断时常用的命名空间包括:
esxcli storage core path list:查看路径状态(active/dead/standby)、路径选择策略与 HBA 信息,是判断存储多路径故障的第一入口。esxcli storage vmfs extent list:确认 VMFS 数据存储的 extent 组成与容量,用于排查数据存储不可访问或容量异常。esxcli network vm list/esxcli network nic list:核对虚拟机端口组归属与物理网卡链路状态、速率、双工。esxcli system syslog config get:确认远程 syslog 目标是否配置,决定日志能否被集中留存。
vmkfstools 则聚焦 VMFS 与虚拟磁盘文件层面,典型用途是查询磁盘描述符、检查快照链与磁盘几何信息:
vmkfstools -D /vmfs/volumes/datastore1/VM01/VM01.vmdk
vmkfstools -P /vmfs/volumes/datastore1
vmkfstools -X check /vmfs/volumes/datastore1/VM01/VM01-flat.vmdk
其中 -D 输出磁盘的锁定信息与 owner,是排查“虚拟机无法开机、提示磁盘被占用”的关键;-P 显示 VMFS 版本、块大小与容量;-X check 用于对 thin 磁盘做一致性检查。需要注意,vmkfstools 的部分写操作具有破坏性,诊断阶段应优先使用只读查询。
二、日志体系与关键文件
ESXi 日志位于 /var/log,其中与故障诊断最相关的是:
vmkernel.log:记录存储路径切换、设备发现、NMP/PSP 事件、内存与 CPU 调度异常,是存储与硬件类故障的主日志。hostd.log:vSphere API 与主机代理层日志,虚拟机注册、任务失败、权限问题多在此体现。vpxa.log:主机与 vCenter 之间的代理通信日志,用于判断是主机侧还是 vCenter 侧的问题。fdm.log:HA 代理日志,用于分析 HA 隔离、主机故障切换失败。
vCenter 侧日志集中在 VCSA 的 /var/log/vmware/vpxd/ 与 /var/log/vmware/vsphere-client/,其中 vpxd.log 记录清单操作、任务与告警,vpxd-profiler.log 可用于性能与响应时间分析。排查“vCenter 操作超时但主机正常”这类问题时,应同时比对 vpxd.log 与对应主机的 vpxa.log,确认请求在哪一跳被阻塞。
esxcli system time get),否则时间偏移会导致因果判断错误。三、性能图表与支持包
vCenter 性能图表提供 CPU、内存、磁盘、网络四类指标的实时与历史视图,适合定位“趋势性劣化”而非瞬时故障。诊断时应关注:CPU 的 Ready 时间(反映资源争用)、内存的 Balloon 与 Swap、磁盘的 DAVG/KAVG 延迟、网络的丢包率。图表用于缩小范围,日志用于确认根因,两者不可互相替代。
当现场无法继续在线排查时,应收集支持包(Support Bundle)。ESXi 侧通过 vm-support 生成,vCenter 侧通过 VAMI 或 vc-support.sh 生成。支持包包含日志、配置、性能数据与清单快照,是离线分析与厂商支持的基础。收集前应记录故障发生的时间窗口与现象,便于后续按时间轴检索。
四、一次存储路径故障的取证示例
假设某虚拟机在 vCenter 中显示“无法访问数据存储”,且任务超时。可按以下顺序取证:
- 在主机执行
esxcli storage core path list,观察目标 LUN 的路径是否出现dead或off,并记录Runtime Name与Transport。 - 查看
vmkernel.log中对应时间段的NMP、scsi关键字,确认是否发生路径切换或设备丢失。 - 用
vmkfstools -D检查该虚拟机磁盘的 owner 与锁定状态,排除“磁盘被其他主机占用”。 - 若主机侧日志正常,再回到 vCenter 查看
vpxd.log与vpxa.log,确认请求是否在代理层被阻塞。 - 最后收集
vm-support与 VCSA 支持包,按时间窗口归档,供厂商或复盘使用。
五、工具选择速查
| 现象 | 首选工具/日志 | 关键观察点 |
|---|---|---|
| 数据存储不可访问 | esxcli storage core path list | 路径状态、PSP、HBA 链路 |
| 虚拟机磁盘被占用 | vmkfstools -D | owner、锁定模式 |
| vCenter 任务超时 | vpxd.log + vpxa.log | 请求在哪一跳阻塞 |
| HA 切换失败 | fdm.log | 隔离判定、代理状态 |
| 性能趋势劣化 | vCenter 性能图表 | Ready、DAVG、丢包率 |
| 离线分析/厂商支持 | vm-support / vc-support.sh | 时间窗口与现象记录 |
工具链的价值不在于命令数量,而在于“现象—层级—工具—证据”的对应关系。把这条链路固定下来,复杂故障的定位时间会显著缩短,支持包也能成为可复用的分析资产。