从系统删除iSCSI会话

在完成 Ceph iSCSI initator客户端 配置后,我发现执行 移动云计算Libvirt集成Ceph iSCSI 会始终提示错误:

libvirt启动iSCSI pool报错,显示已经存在iSCSI会话
error: Failed to start pool images_iscsi
error: internal error: Child process (/usr/bin/iscsiadm --mode node --portal a-b-data-2.dev.cloud-atlas.io:3260,1 --targetname iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw --login) unexpected exit status 15: iscsiadm: Could not login to [iface: default, target: iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw, portal: a-b-data-2.dev.cloud-atlas.io,3260].
iscsiadm: initiator reported error (15 - session exists)
iscsiadm: Could not log into all portals

最初我以为只要退出上次测试 Ceph iSCSI initator客户端 创建的会话就可以了,所以执行:

iscsiadm退出target登陆
sudo iscsiadm -m node -T iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw -u

然后再次启动libvirt的iSCSI pool:

使用virsh pool-start启动images_iscsi存储池
sudo virsh pool-start images_iscsi

但是报错依旧

看起来清理之前存在的iSCSI session可能是解决方法

清理iSCSI会话

  • 如果iSCSI磁盘已经挂载,则需要先卸载,例如:

    umount /clusterfs
    
  • 检查当前会话:

iscsiadm检查当前会话
sudo iscsiadm -m session -o show

此时可以看到:

tcp: [23] 192.168.8.205:3260,1 iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw (non-flash)
  • 从iSCSI target登出:

iscsiadm退出target登陆
sudo iscsiadm -m node -T iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw -u

提示信息:

Logging out of session [sid: 23, target: iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw, portal: 192.168.8.205,3260]
Logout of [sid: 23, target: iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw, portal: 192.168.8.205,3260] successful.
  • 再次检查当前会话:

iscsiadm检查当前会话
sudo iscsiadm -m session -o show

此时就看到没有活跃会话了:

iscsiadm: No active sessions.
  • 删除删除节点:

iscsiadm删除节点(iqn)
sudo iscsiadm -m node -o delete -T iqn.2022-12.io.cloud-atlas.iscsi-gw:iscsi-igw

此时 /etc/iscsi/nodes 目录下对应节点目录会删除

  • 如果需要可以删除iSCSI discovery数据库的targets记录:

iscsiadm删除discovery数据的target记录
iscsiadm -m discoverydb -t sendtargets -p 192.168.8.205:3260 -o delete

然后可以重新尝试 移动云计算Libvirt集成Ceph iSCSI

参考