清理旧的iSCSI

半兽人 发表于: 2025-09-25   最后更新时间: 2025-09-25 21:06:10  
{{totalSubscript}} 订阅, 64 游览

1. iscsi-initiator-utils 的作用

  • 这个软件包提供 iSCSI initiator,也就是 Linux 客户端登录 iSCSI target 的工具(iscsiadm)。
  • 本身不会和 multipath 冲突,但可能影响 多路径识别 的几个情况:

2. 可能影响 multipath 的因素

  1. 已经登录过旧的 iSCSI target

    • 如果以前用 iscsiadm 登录过某些 target,但路径未配置 multipath,multipath 可能认为这些设备不属于多路径设备
    • 特别是 /etc/iscsi/nodes/ 中旧节点信息可能残留,导致 multipathd 扫描不识别新路径
  2. 设备命名问题

    • multipath 通过 WWID 或 SCSI 层信息 来判断哪些设备属于同一个 target
    • 如果旧的 iscsi-initiator-utils 会把设备映射到 /dev/sdX 而不是 /dev/dm-*,multipath 扫描可能被 blacklist 或无法合并
  3. session 状态混乱

    • multipath 扫描 iSCSI 设备时,如果某条路径已经被 initiator 登录但未被 multipath 管理,会被忽略
    • 所以看到 sdbsdc 直接出现在 lsblk,说明还没有被 multipath “接管”

3. 排查和解决方案

  1. 清理旧的 iSCSI session

    sudo iscsiadm -m node --logoutall=all
    sudo iscsiadm -m node -o delete
    
  2. 重启 multipathd 并刷新

    sudo systemctl restart multipathd
    sudo multipath -F
    sudo multipath
    sudo multipath -ll
    
  3. 重新发现并登录新的多路径 target

    sudo iscsiadm -m discovery -t sendtargets -p 192.168.0.16:3260
    sudo iscsiadm -m discovery -t sendtargets -p 192.168.0.17:3260
    
    sudo iscsiadm -m node -T <IQN> -p 192.168.0.16 --login
    sudo iscsiadm -m node -T <IQN> -p 192.168.0.17 --login
    
  4. 确认 multipath 配置

  5. blacklist 去掉 sd 拦截

  6. find_multipaths yes
  7. 再执行 multipath -ll 应该能看到 /dev/mapper/mpathX

总结:

  • 之前用的 iscsi-initiator-utils 并不会直接阻止 multipath,但 旧的 session/设备信息 + blacklist 会导致 multipath 不识别 iSCSI device
  • 解决办法就是 清理旧 session → 重新登录 → multipath 扫描
更新于 2025-09-25

查看ceph更多相关的文章或提一个关于ceph的问题,也可以与我们一起分享文章