Hi All,
We are seeing an issue with Redhat 6.7 where ISID's are repeated for
different sessions to same target (volume level target). Our array target
has to close the existing sessions with same ISID before accepting new
connections. This causes repeated login retry attempts by iscsid and
overall system discovery process is too slow. From the code i see that ISID
is determined as below. With this many sessions above 256 can have repeated
ISID. Is this a design flaw?. Can this be avoided?.
/* OUI and uniqifying number */
session->isid[0] = DRIVER_ISID_0;
session->isid[1] = DRIVER_ISID_1;
session->isid[2] = DRIVER_ISID_2;
session->isid[3] = 0;
session->isid[4] = 0;
session->isid[5] = 0;
/*
* TODO: use the iface number or some other value
* so this will be persistent
*/
session->isid[3] = session->id;
Only least significant byte of session SID is used here. Hence for mulitple
sessions the ISID can be same.
SID: session->id ISID
480: e0 --> 0x00023de00000
224: e0 --> 0x00023de00000
544: 10 --> 0x00023d100000
528: 10 --> 0x00023d100000
545: 21 --> 0x00023d210000
289: 21 --> 0x00023d210000
iscsid: sending login PDU with current stage 1, next stage 3, transit 0x80,
isid 0x00023de00000 exp_statsn 7 <------
iscsid: > InitiatorName=iqn.1994-05.com.redhat:8973f121285
iscsid: > InitiatorAlias=localhost
iscsid: >
TargetName=iqn.2007-11.com.nimblestorage:arr6-iscsi-vol-60062-v2adb271243103de8.00000175.69cb1afa
iscsid: > SessionType=Normal
iscsid: > HeaderDigest=None
iscsid: > DataDigest=None
iscsid: > DefaultTime2Wait=2
iscsid: > DefaultTime2Retain=0
iscsid: > IFMarker=No
iscsid: > OFMarker=No
iscsid: > ErrorRecoveryLevel=0
iscsid: > InitialR2T=No
iscsid: > ImmediateData=Yes
iscsid: > MaxBurstLength=16776192
iscsid: > FirstBurstLength=262144
iscsid: > MaxOutstandingR2T=1
iscsid: > MaxConnections=1
iscsid: > DataPDUInOrder=Yes
iscsid: > DataSequenceInOrder=Yes
iscsid: > MaxRecvDataSegmentLength=262144
iscsid: in ksend_pdu_begin
iscsid: send PDU began for hdr 48 bytes and data 504 bytes
iscsid: in kwritev
iscsid: wrote 48 bytes of PDU header
iscsid: in kwritev
iscsid: wrote 504 bytes of PDU data
iscsid: in ksend_pdu_end
iscsid: in __kipc_call
iscsid: in kwritev
iscsid: in nlpayload_read
iscsid: in nlpayload_read
iscsid: send PDU finished for conn 224:0 <-----
iscsid: sending login PDU with current stage 1, next stage 3, transit 0x80,
isid 0x00023de00000 exp_statsn 2 <-----
iscsid: > InitiatorName=iqn.1994-05.com.redhat:8973f121285
iscsid: > InitiatorAlias=localhost
iscsid: >
TargetName=iqn.2007-11.com.nimblestorage:arr6-iscsi-vol-60062-v2adb271243103de8.00000175.69cb1afa
iscsid: > SessionType=Normal
iscsid: > HeaderDigest=None
iscsid: > DataDigest=None
iscsid: > DefaultTime2Wait=2
iscsid: > DefaultTime2Retain=0
iscsid: > IFMarker=No
iscsid: > OFMarker=No
iscsid: > ErrorRecoveryLevel=0
iscsid: > InitialR2T=No
iscsid: > ImmediateData=Yes
iscsid: > MaxBurstLength=16776192
iscsid: > FirstBurstLength=262144
iscsid: > MaxOutstandingR2T=1
iscsid: > MaxConnections=1
iscsid: > DataPDUInOrder=Yes
iscsid: > DataSequenceInOrder=Yes
iscsid: > MaxRecvDataSegmentLength=262144
iscsid: in ksend_pdu_begin
iscsid: send PDU began for hdr 48 bytes and data 504 bytes
iscsid: in kwritev
iscsid: wrote 48 bytes of PDU header
iscsid: in kwritev
iscsid: wrote 504 bytes of PDU data
iscsid: in ksend_pdu_end
iscsid: in __kipc_call
iscsid: in kwritev
iscsid: in nlpayload_read
iscsid: in nlpayload_read
iscsid: send PDU finished for conn 480:0 <-----
Errors due to this.
data avail. Consumed 0
Jan 26 15:18:36 hiqa-sys-rhel2 kernel: connection480:0: iscsi_sw_tcp_recv read
0 bytes status 1
Jan 26 15:18:39 hiqa-sys-rhel2 kernel: connection480:0: iscsi_sw_sk_state_check
TCP_CLOSE|TCP_CLOSE_WAIT
Jan 26 16:04:49 hiqa-sys-rhel2 kernel: connection480:0: detected conn error
(1020) ISCSI_ERR_TCP_CONN_CLOSE
Data IP intermittent failures.
[root@hiqa-sys-rhel2 ~]# cat
/sys/class/iscsi_connection/connection480\:0/address
cat: /sys/class/iscsi_connection/connection480:0/address: Transport endpoint is
not connected
[root@hiqa-sys-rhel2 ~]# cat
/sys/class/iscsi_connection/connection480\:0/address
172.18.80.95
[root@hiqa-sys-rhel2 ~]# cat
/sys/class/iscsi_connection/connection480\:0/address
172.18.80.95
[root@hiqa-sys-rhel2 ~]# cat
/sys/class/iscsi_connection/connection480\:0/address
172.18.80.95
[root@hiqa-sys-rhel2 ~]# cat
/sys/class/iscsi_connection/connection480\:0/address
cat: /sys/class/iscsi_connection/connection480:0/address: Transport endpoint is
not connected
size=4.0G uuid=2414083771cb6a2846c9ce900fa1acb69 mount-device:
/dev/nimblestorage/arr6-iscsi-vol-60062-2414083771cb6a2846c9ce900fa1acb69
target:
iqn.2007-11.com.nimblestorage:arr6-iscsi-vol-60062-v2adb271243103de8.00000175.69cb1afa
` + array_id=1 device=/dev/dm-113
|- 488:0:0:0 sddy 128:0 session=480 sess_st=LOGGED_IN dev_st=running
iface=default tgtportal=172.18.80.96
|- 552:0:0:0 sdbj 67:208 session=544 sess_st=LOGGED_IN dev_st=running
iface=default tgtportal=172.18.80.96
|- 600:0:0:0 sdhf 133:80 session=592 sess_st=LOGGED_IN dev_st=running
iface=default tgtportal=172.18.160.88
|- 232:0:0:0 sdha 133:0 session=224 sess_st=FAILED dev_st=running
iface=default tgtportal=172.18.160.88
Volume Info.
[root@hiqa-sys-rhel2 ~]# sg_inq -p 0xd4 /dev/sdha
Only hex output supported. sg_vpd decodes more pages.
VPD INQUIRY, page code=0xd4:
00 00 d4 01 02 01 00 61 72 72 36 2d 69 73 63 73 69 ......arr6-iscsi
10 2d 76 6f 6c 2d 36 30 30 36 32 00 00 00 00 00 00 -vol-60062......
[root@hiqa-sys-rhel2 ~]# sg_inq -p 0xd4 /dev/sddy
Only hex output supported. sg_vpd decodes more pages.
VPD INQUIRY, page code=0xd4:
00 00 d4 01 02 01 00 61 72 72 36 2d 69 73 63 73 69 ......arr6-iscsi
10 2d 76 6f 6c 2d 36 30 30 36 32 00 00 00 00 00 00 -vol-60062......
Regards
Shiva Merla
--
You received this message because you are subscribed to the Google Groups
"open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.