登录
首页 >  文章 >  linux

Linux iSCSI网络存储使用教程

时间:2026-05-12 14:36:26 337浏览 收藏

本文深入剖析Linux客户端接入iSCSI网络存储的完整流程与高频故障排查要点,直击“发现目标→登录节点→扫描设备”三步缺一不可的核心逻辑,并针对实践中最常遇到的三大痛点——discovery无响应、login失败、fdisk看不到新磁盘——逐一拆解底层原因:从服务端3260端口监听与防火墙配置、SendTargets模式启用、ACL访问控制、CHAP认证缺失,到会话建立后必须主动rescan才能暴露设备,再到开机自动连接与挂载的正确配置顺序及稳定设备路径的最佳实践,为运维人员提供一套即学即用、避坑高效的iSCSI实战指南。

Linux如何使用iSCSI网络存储_Linux iSCSI网络存储使用要点

Linux 客户端接入 iSCSI 存储,核心就三步:发现目标、登录节点、扫描设备。漏掉任意一步,/dev/sdX 就不会出现,后续挂载、LVM、格式化全卡死。

iscsiadm -m discovery 为什么没返回?

常见现象是执行 iscsiadm -m discovery -t st -p 192.168.1.100 后无输出、无报错、也看不到目标 —— 这通常不是命令错了,而是服务端根本没响应。

  • 检查服务端是否真正监听了 3260 端口:ss -tlnp | grep :3260netstat -tlnp | grep :3260,没进程说明 target 没启动或配置未生效
  • 确认服务端防火墙放行了 3260(TCP),CentOS 7+ 默认用 firewalldfirewall-cmd --list-ports,缺就加:firewall-cmd --add-port=3260/tcp --permanent && firewall-cmd --reload
  • -t st 表示使用 SendTargets 方式发现,服务端必须已启用该模式(targetcli/iscsi/iqn.xxxx/tpg1/portals 已创建且状态为 enabled
  • 别用 ping 判断网络通不通 —— iSCSI 是 TCP 连接,要测端口:nc -zv 192.168.1.100 3260

iscsiadm -m node -l 登录失败的典型错误

执行 iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f -p 192.168.1.100 -l 报错,最常遇到的是:

  • iscsiadm: Could not login to [iface: default, target: iqn.xxx, portal: 192.168.1.100,3260]:多数因 ACL 未配 —— 服务端 targetcli 中对应 iqnacls 目录下,必须有客户端的 initiator IQN(如 iqn.1994-05.com.redhat:client1),否则拒绝登录
  • iscsiadm: No records found:说明此前没执行过 discovery,或者 discovery 结果没存到本地数据库;可强制重发现:iscsiadm -m discovery -R -t st -p 192.168.1.100-R 刷新缓存)
  • 登录后立即断开:检查服务端是否配置了 auth(CHAP),若启用了但客户端 /etc/iscsi/iscsid.conf 里没填 node.session.auth.authmethod 和用户名密码,就会被踢

登录成功后 fdisk -l 看不到新磁盘?

登录只是建立了会话(session),iSCSI 设备此时还“不可见”,必须主动触发一次 LUN 扫描。

  • 先确认 session 是否活跃:iscsiadm -m session,应看到类似 tcp: [1] 192.168.1.100:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.51d5764d7f3f (non-flash)
  • 执行扫描:iscsiadm -m session --rescan(推荐)或 echo "- - -" > /sys/class/scsi_host/host*/scan
  • 再运行 fdisk -l | grep "^Disk /dev/sd",新盘(如 /dev/sdb)才会列出;注意它可能没有分区表,直接是裸设备
  • 如果仍不出现,检查内核是否加载了 scsi_modiscsi_tcp 模块:lsmod | grep -E "(scsi|iscsi)"

如何让 iSCSI 设备开机自动连接并挂载?

自动连接靠 iscsiadm 配置,自动挂载靠 /etc/fstab,两者缺一不可,顺序也不能颠倒。

  • 设为自动登录:iscsiadm -m node -o update -n node.startup -v automatic(对当前已发现的节点生效)
  • 确保 iscsid 服务开机自启:systemctl enable iscsid(CentOS/RHEL 7+);注意不是 iscsi 服务(那是旧版兼容服务)
  • /etc/fstab 中挂载项必须加 _netdev 选项,例如:/dev/sdb1 /mnt/iscsi ext4 defaults,_netdev 0 0;否则系统可能在网络未就绪时尝试挂载,导致启动卡住或失败
  • 验证:重启前手动运行 iscsiadm -m node -lmount -a,确认无报错

真正容易被忽略的是:iSCSI 设备名(如 /dev/sdb)在多路径或重连后可能变化,生产环境应改用 /dev/disk/by-path//dev/disk/by-id/ 下的稳定路径,否则 fstab 会挂错盘。

终于介绍完啦!小伙伴们,这篇关于《Linux iSCSI网络存储使用教程》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>