前情提要

在日常运维中,常见的情况是 ESXi 在「存储 → 设备」中可以识别到 iSCSI 磁盘,但是在 「数据存储」中却没有显示,无法直接使用。这通常是因为 VMFS 文件系统的签名冲突或快照未解析,导致数据存储未自动挂载。

这种情况多出现在以下场景:

  • 从其他主机迁移过来的存储盘;

  • iSCSI 存储掉线后重新接入;

  • 使用已有的 VMFS 数据存储,但 ESXi 未自动识别。


解决方法

可以通过 SSH 登录 ESXi 主机,使用命令行手动检查并挂载存储。

1. 登录 ESXi 主机

在 vSphere Client 中开启主机的 SSH 服务,然后通过终端工具(如 Xshell、Putty)连接到 ESXi 主机。

2. 查看未挂载的 VMFS 卷

执行以下命令:

esxcli storage vmfs snapshot list

如果输出类似以下结果,说明系统检测到未挂载的卷:

686bed4f-47d9a544-178f-6c92bfa3d118
   Volume Name: iscsi
   VMFS UUID: 686bed4f-47d9a544-178f-6c92bfa3d118
   Can mount: true
   Reason for un-mountability:
   Can resignature: true
   Reason for non-resignaturability:
   Unresolved Extent Count: 1

这里可以看到:

  • Volume Name:iscsi

  • VMFS UUID:686bed4f-47d9a544-178f-6c92bfa3d118

  • Can mount: true 表示可以挂载


3. 挂载数据存储

使用 esxcfg-volume 命令挂载:

esxcfg-volume -M 686bed4f-47d9a544-178f-6c92bfa3d118

输出示例:

Persistently mounting volume 686bed4f-47d9a544-178f-6c92bfa3d118

其中:

  • -M 参数表示 持久化挂载(即主机重启后仍然自动挂载)。

  • 如果只需要临时挂载,可以使用 -m 参数。


4. 验证结果

挂载成功后,在 vSphere Client 中刷新「数据存储」,即可看到新挂载的 iSCSI 存储卷,并可以正常使用。


注意事项

  1. 不要误用 Resignature

    • esxcfg-volume -r 会对 VMFS 重新签名,相当于生成一个新的数据存储卷,可能导致原虚拟机找不到原有路径。

    • 一般情况下,只需挂载(-M / -m),不要轻易使用重新签名操作。

  2. 数据安全

    • 如果同一块盘被多个 ESXi 主机同时写入,可能会导致数据损坏。

    • 在集群环境中,请确保通过 vCenter 正确配置共享存储和多路径策略。

  3. 日志排查

    • 如果挂载失败,可以查看 /var/log/vmkernel.log 获取更多信息。


总结

当 ESXi 识别到 iSCSI 设备但未显示在「数据存储」中时,可以通过以下步骤解决:

  1. 使用 esxcli storage vmfs snapshot list 查找未挂载的 VMFS 卷;

  2. 使用 esxcfg-volume -M <UUID> 持久化挂载;

  3. 在 vSphere Client 中刷新存储即可正常使用。

这种方法可以快速恢复 iSCSI 存储的使用,避免因为误操作导致数据丢失。