iscsi挂载失败首要排查发现与登录:启动iscsid服务、验证initiator名称、执行discovery和login命令;多路径环境下须使用/dev/mapper/mpatha类设备而非/dev/sdb;fstab挂载需加_netdev和依赖声明,卸载前必须登出会话并清理multipath缓存。

确认 iSCSI 服务已就绪且能发现目标
挂载失败的第一道坎,往往不是挂载本身,而是压根没看到存储。Linux 不会自动“感知”iSCSI 设备,必须主动发现并登录目标(target)。如果 fdisk -l 或 lsblk 里没有新盘,别急着格式化——先查连接链路是否通。
- 确保
iscsid服务已启动:systemctl start iscsid,且设为开机自启:systemctl enable iscsid - 检查 initiator 名称是否有效:
cat /etc/iscsi/initiatorname.iscsi,内容应为类似iqn.1994-05.com.redhat:2a7f3e8d6b3c的合法 IQN;若为空或被注释,需手动写入并重启服务 - 执行发现命令时,IP 必须是存储侧实际监听的 iSCSI IP(不是管理网段),且端口默认是
3260:iscsiadm -m discovery -t st -p 192.168.10.50:3260。双链路环境要对两个 IP 各跑一次 - 发现后不等于已连接,必须显式登录:
iscsiadm -m node -p 192.168.10.50 -l;若报connection refused,优先排查存储防火墙、iSCSI 功能是否开启、IQN 是否已在存储侧注册为启动器
识别新磁盘与多路径设备的区别
登录成功后,系统通常会在 /dev/ 下生成类似 sdb、sdc 的块设备。但如果你用的是企业级存储(如 OceanStor、Dell EMC),大概率会走多路径(multipath),这时看到的不是 /dev/sdX,而是 /dev/mapper/mpatha 这类设备——它才是稳定可用的入口。
- 运行
ls /dev/disk/by-path/可看到多路径设备的物理路径映射,避免误操作底层单路径盘 - 用
multipath -ll查看多路径状态,确认所有路径都是active ready;若出现failed或ghost,说明链路或 HBA 驱动有问题 - 永远不要直接对
/dev/sdb格式化或挂载,除非你确定它没有被纳入 multipath。否则重启后设备名可能漂移,导致 fstab 挂载失败甚至数据错乱 - 多路径设备的分区形式是
/dev/mapper/mpatha1,不是/dev/sdb1;格式化前务必确认设备名,mkfs.xfs /dev/mapper/mpatha1才是安全操作
挂载时绕开 fstab 自动挂载陷阱
/etc/fstab 看起来省事,但 iSCSI 设备加载时机晚于 root 文件系统挂载,直接写进 fstab 容易导致开机卡住或报 device not found 错误。这不是配置写错了,而是依赖顺序没对上。
- 临时挂载用
mount /dev/mapper/mpatha1 /mnt/data,验证读写正常后再考虑持久化 - 若必须开机挂载,改用 systemd 服务或 udev 规则触发,而不是依赖 fstab 的同步挂载;或者在 fstab 中加
_netdev,x-systemd.requires=iscsid.service参数,明确声明网络依赖 - 避免使用 UUID 或 LABEL 做 fstab 标识:iSCSI 设备的 UUID 在每次登录时可能刷新(尤其未启用 persisting binding),而 LABEL 又容易重复;最稳妥的是用
/dev/mapper/mpatha1路径(前提是 multipath 配置了 alias) - 挂载选项推荐加
noatime,nodiratime,defaults,减少元数据更新开销;数据库类应用可加barrier=1,errors=remount-ro提升可靠性
卸载前必须先登出 iSCSI 会话
直接 umount 后就关机或重启?危险。iSCSI 会话仍处于登录状态,下次启动可能因残留 session 导致设备重名、multipath 识别混乱,甚至存储侧报“session conflict”错误。
- 卸载前先登出:
iscsiadm -m node -p 192.168.10.50 -u;批量登出所有 target 可用iscsiadm -m node -U all - 确认会话已清空:
iscsiadm -m session应无输出;若有残留,强制清除:iscsiadm -m node -o delete -p 192.168.10.50 - 如果用了 multipath,登出后建议运行
multipath -F清除缓存,再multipath重建映射,避免旧路径干扰 - 生产环境切忌跳过这步——看似省事的操作,往往在半夜扩容或故障恢复时反噬
真正麻烦的从来不是命令敲得对不对,而是设备状态、服务依赖、路径稳定性这三者有没有对齐。尤其是 multipath 和 fstab 的组合,表面配置都对,一重启就失效,问题一定出在时序或识别逻辑上。










