problems with scsi_transport_fc and qla2xxx
Hi!
Most of the problem seems to be a QLogic driver problem. HBAs are connected to target via FC switch.
1. If I have several LUNs on each HBA, with QLogic only 1 directory per adapter (for LUN 0) is created in /sys/class/fc_remote_ports, while with Emulex a directory for every LUN is created.
2. The situation I described occurs with QLogic only if the cable connecting between HBA and switch is pulled out/in. If I connect/disconnect the cable between switch and target, disks come back.
3. With Emulex in both cases disks come back.
However, both with Emulex and QLogic stale directories in /sys/classfc_remote_ports are left.
For example, with Emulex if I had in the beginning
rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-0 rport-7:0-1 rport-7:0-2 then disconnected adapter 7, got
rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-0 rport-7:0-2 (7-0-0 and 7-0-2 didn't disappear while 7-0-1 did)
connected 7 back
rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-2 rport-7:0-4 rport-7:0-5 rport-7:0-6
(7-0-0 disappeared, but 7-0-2 is still here).
Thanks,
Maxim.
MK> Hi!
MK> I'm checking 2.6.16-rc5 with 2 QLogic 2312 adapters using qla2xxx MK> driver from 2.6.16-rc5.
MK> As with earlier kernels, I think > 2.6.12 (since scsi_transport_fc MK> gained functionality) I have the following problem.
MK> 2 scsi hosts available, 4 and 5 (for QLogic).
MK> I disconnect the cable from one of QLogic cards. After timeout I have MK> the message
MK> rport-4:0-0: blocked FC remote port time out: removing target and saving binding MK> and appropriate SCSI devices that came from adapter 4 disappear from MK> /proc/scsi/scsi.
MK> So far, so good.
MK> I reconnect the cable, the directory
MK> /sys/class/fc_remote_ports/rport-4:0-1 appears along with the old MK> ones rport-4:0-0 and rport-5:0-0, so currently I have 3.
MK> However, no automatic rescan appears on adapter 4.
MK> What's worse, if I try echo "0 1 0" > /sys/class/scsi_host/host4/scan MK> the process is stuck.
MK> Please advise.
MK> Thanks,
MK> Maxim.
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 4 lines · Maxim Kozover
Hi Andrew!
I applied the patch changing 2 lines inscsi_transport_fc.cto if (fc_host_tgtid_bind_type(shost)!=FC_TGTID_BIND_NONE) {
Quoted 8 lines
I tried first with Emulex as QLogic seemed yesterday to have more problems, (not only orphan rports, but also not creating all rports), so let's start solving problems one by one.
I saw no change in behavior with Emulex.
1. I had 3 LUNs on adapters 6 and 7.# ls /sys/class/fc_remote_ports rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-0 rport-7:0-1 rport-7:0-2
Ok, so specifically you have one target-port at rport-7:0-2 which has three luns (0, 1, and 2).
/devices/pci0000:00/0000:00:06.0/0000:05:00.2/0000:07:01.1/host7/rport-7:0-2/target7:0:0/7:0:0:0 /devices/pci0000:00/0000:00:06.0/0000:05:00.2/0000:07:01.1/host7/rport-7:0-2/target7:0:0/7:0:0:1 /devices/pci0000:00/0000:00:06.0/0000:05:00.2/0000:07:01.1/host7/rport-7:0-2/target7:0:0/7:0:0:2
So what are the other rports? Other initiators?
Quoted 5 lines
2. disconnected the cable between adapter 7 and the switch, rport-7:0-0 disappeared momentarily with Emulex LinkDown event. lpfc 0000:07:01.1: 1:1305 Link Down Event x2 received Data: x2 x20 x110
# ls /sys/class/fc_remote_ports rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-0 rport-7:0-2
Actually, rport-7:0-1 disappears -- my guess an initiator. Is rport-7:0-0 an FCP_TARGET with no luns?
Quoted 3 lines
3. Then after a timeout I got a message about blocking rport-7:0-2, but nothing changed.
rport-7:0-2: blocked FC remote port time out: removing target and saving binding
Exactly, the scsi_target and scsi_device is reaped after TMO expires.
Quoted 2 lines
# ls /sys/class/fc_remote_ports rport-6:0-0 rport-6:0-1 rport-6:0-2 rport-7:0-0 rport-7:0-2
This is still correct.
Quoted 4 lines
However, all scsi entries related to adapter 7 are removed from
/proc/scsi/scsi.Please advise.
If your question is, are the /proc/scsi/scsi devices (/dev/sda, sdb, ...) supposed to disappear when the rport TMO expires , then yes they are supposed to disappear. The rports persist with a port_state of 'not present' for persistent-binding purposes, until the port return (i.e. you reinsert the cable). If that were to occur, then upon rport addition, the 3-lun storage would be attached to rport-7:0-2 and a request signaled for lun scanning by the midlayer.
--
Andrew
Hi Andrew!
You're right. I didn't look at roles in Emulex case.
When using Emulex everything is OK.
Tomorrow I'll connect QLogic again to continue problem investigation. Thanks much for quick and professional replies.
I'll just describe Emulex situation to confirm.
Let's connect only 1 Emulex port (adapter 7) to a switch and leave adapter 6 not connected. Then we have
# ls /sys/class/fc_remote_ports/ rport-7:0-0 rport-7:0-1 rport-7:0-2 # cat /sys/class/fc_remote_ports/*/roles Fabric Port Directory Server FCP Target, FCP Initiator
When the cable is disconnected from adapter 7, immediately with LinkDown event, the rport with the role of Directory server disappears and only 2 are left:
# ls /sys/class/fc_remote_ports/ rport-7:0-0 rport-7:0-2 # cat /sys/class/fc_remote_ports/*/roles Fabric Port FCP Target, FCP Initiator
Then after a timeout, the role of rport-7:0-2 is changed to unknown and relevant entries are removed from /proc/scsi/scsi. rport-7:0-0 is still here.
rport-7:0-2: blocked FC remote port time out: removing target and saving binding
# ls /sys/class/fc_remote_ports/ rport-7:0-0 rport-7:0-2 # cat /sys/class/fc_remote_ports/*/roles Fabric Port unknown
After reconnecting the cable, rport-7:0:0 disappears and rport-7:0:4 and rport-7:0-5 appear along with newly recognized LUNs in /proc/scsi/scsi.
# ls /sys/class/fc_remote_ports/ rport-7:0-2 rport-7:0-4 rport-7:0-5 # cat /sys/class/fc_remote_ports/*/roles FCP Target, FCP Initiator Fabric Port Directory Server
If I'm not mistaken, in QLogic case only 1 rport per adapter appeared instead of 3. Tomorrow I'll connect QLogic and report again.
Thanks,
Maxim.