iSCSI挂载成功的关键三步是IQN匹配、登录成功、设备识别稳定;漏任一步会导致lsblk无盘、fdisk无设备或重启断连。

直接说结论:iSCSI挂载不是“配完就能用”,关键在三步——IQN对得上、登录能成功、设备识别稳定。漏掉任意一步,lsblk 看不到盘,fdisk -l 列不出设备,或者重启后自动断开。
怎么确认客户端 IQN 已正确设置并被存储端授权
存储服务器(如 OceanStor、普安、TrueNAS)基本都靠 IQN 做 ACL 白名单控制。如果你的 iscsiadm -m discovery 没返回目标,或者登录时报 “No route to host” 或 “session failed”,第一反应不是网络不通,而是 IQN 没配对。
-
/etc/iscsi/initiatorname.iscsi文件必须只有一行有效内容,格式为InitiatorName=iqn.YYYY-MM.domain:identifier,不能有多余空格、注释或换行 - 这个值必须和你在存储管理界面中“添加启动器”时填的一模一样,大小写、标点都不能错
- 改完文件后不用重启服务,但必须执行
systemctl restart iscsid让新 IQN 生效 - 验证命令:
cat /etc/iscsi/initiatorname.iscsi和iscsiadm -m node -P 1 | grep "Target Name\|IQN"对比输出
发现和登录命令为什么总失败
常见错误是参数拼错、端口没写对、或用了过时语法。CentOS 7+/RHEL 8+ 的 iscsiadm 对参数非常敏感,尤其 -t 类型和 -p 地址格式。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 发现命令必须用
-t st(sendtargets),不是-t static或漏写st;-p后跟IP:port,端口不写默认是 3260,但显式写出更稳妥 - 登录命令不能只写
iscsiadm -m node --login,它默认登录所有已发现节点,容易连错;推荐指定目标:iscsiadm -m node -T iqn.2024-12.org.trusnas.ctl:server1 -p 10.254.200.37:3260 -l - 如果提示 “No records found”,说明之前没成功 discovery,或记录被清空了;可加
--rescan或重跑 discovery - 登录后检查会话:
iscsiadm -m session应该有输出;没输出说明根本没建立连接
为什么 lsblk 看不到新磁盘,或重启后消失
这不是磁盘没挂上,而是系统没“认”出来,或没配置持久化。iSCSI 设备名(如 sdb)每次登录可能变化,靠设备名写 /etc/fstab 是高危操作。
- 登录成功后必须执行
iscsiadm -m session --rescan,强制内核重新扫描 LUN,否则lsblk不刷新 - 开机自动连接依赖两个配置:一是
/etc/iscsi/iscsid.conf中node.startup = automatic;二是运行iscsiadm -m node -o update -n node.startup -v automatic把该设置写入每个 target 的 node 记录里 - 挂载不能写
/dev/sdb1,要用 UUID 或 WWID。查 UUID:blkid /dev/sdb1;写 fstab 时用UUID=xxx /mnt/iscsi ext4 defaults,_netdev 0 0,_netdev必须加,否则网络未就绪就挂载会卡住启动 - 多路径场景下,
/dev/sdb可能只是底层路径,真实设备是/dev/mapper/mpathb,此时必须用 multipath 工具识别并配置
挂载后读写慢或偶发 IO 错误怎么办
这不是 iSCSI 本身的问题,而是网络或配置层暴露的瓶颈。iSCSI 对网络质量极其敏感,丢包、延迟抖动、TCP 调优不当都会导致超时重传甚至会话中断。
- 确保 iSCSI 流量走独立网卡或 VLAN,避免和业务流量混跑;禁用该网卡上的 LRO/GRO:
ethtool -K eth1 lro off gro off - 检查 TCP 参数:
/proc/sys/net/ipv4/tcp_retries2建议设为 8(默认 15),避免重传时间过长;tcp_keepalive_time设为 30 秒更及时探测链路异常 - 存储端开启 write-cache 且客户端启用
echo 1 > /sys/block/sdb/device/allow_restart可缓解部分写阻塞,但需确认存储端有电池或电容保护 - 用
iscsiadm -m session -P 3查看连接状态里的recovery_tmo和fast_abort,非必要别关 fast_abort,否则 IO 卡死时无法快速 failover
最常被忽略的是:iSCSI 设备识别依赖 udev 规则和内核模块加载顺序,systemctl enable iscsid 不等于 systemctl enable iscsi;后者才是控制 login 行为的服务,前者只是后台守护进程。少启一个,重启后盘就“失踪”。

















