Help to make iSER working
Max Gurtovoy
maxg at mellanox.com
Thu Aug 11 23:07:52 UTC 2016
Hi,
On 8/11/2016 11:43 PM, Ben RUBSON wrote:
> Here are the tests with udaddy from FreeBSD, trying to connect to Linux :
>
> # udaddy -s 192.168.2.2
> libibverbs: Warning: couldn't open config directory '/etc/ibverbs/'.
> libibverbs: Warning: couldn't open config directory '/etc/ibverbs/'.
> udaddy: starting client
> udaddy: connecting
> libibverbs: Warning: couldn't open config directory '/etc/ibverbs/'.
> udaddy: event: RDMA_CM_EVENT_ADDR_ERROR, error: -19
yes, you got the same event in iser (event 1).
There is a configuration issue with your setup.
Once you overcome this, iSER should work for you.
Meny/Hans,
can you assist here ?
Thanks,
Max.
> test complete
> return status -19
>
> Sounds like the issue is with FreeBSD itself.
>
> Ben
>
>
>
>> On 11 Aug 2016, at 18:59, Ben RUBSON <ben.rubson at gmail.com> wrote:
>>
>>
>>> On 11 Aug 2016, at 18:10, Max Gurtovoy <maxg at mellanox.com> wrote:
>>>
>>> On 8/11/2016 6:33 PM, Ben RUBSON wrote:
>>>> Thank you very much Max for your help.
>>>>
>>>>
>>>>
>>>> I managed to compile the kernel with iSER support doing the 3 modifications below.
>>>>
>>>> I added the following to /usr/src/sys/conf/options :
>>>> ICL_KERNEL_PROXY opt_global.h
>>>>
>>>> And I added "options ICL_KERNEL_PROXY" to my kernel configuration file.
>>>>
>>>> I then faced this compilation error :
>>>> /usr/src/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1358:2: error: implicit declaration of function 'icl_conn_handoff_sock'
>>>> icl_conn_handoff_sock(cs->cs_conn, so);
>>>> /usr/src/sys/modules/ctl/../../cam/ctl/ctl_frontend_iscsi.c:1358:2: note: did you mean 'icl_soft_handoff_sock'?
>>>> /usr/src/sys/dev/iscsi/icl.h:158:7: note: 'icl_soft_handoff_sock' declared here
>>>> int icl_soft_handoff_sock(struct icl_conn *ic, struct socket *so);
>>>>
>>>> So I replaced icl_conn_handoff_sock by icl_soft_handoff_sock (sounds like it is the needed correction).
>>>>
>>>> iscsictl -r now does not produce previous "invalid argument" error.
>>>>
>>>> @trasz : perhaps these modifications should be done in FreeBSD 11 source tree ?
>>
>> I'm also rebuilding world with the following to see if it can help :
>> # cat /etc/src.conf
>> WITH_ICL_KERNEL_PROXY="YES"
>> WITH_OFED="YES"
>>
>>>> Now I'm facing the following issue :
>>>>
>>>> # iscsictl -A -r -t iqn.2012-06.com.test:target1 -p 192.168.2.2
>>>> iscsid[8743]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed to connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: Input/output error
>>>> kernel: ERROR: iser_connect_error: conn 0xfffff8096786f000
>>>> iscsid[1078]: child process 8743 terminated with exit status 1
>>>
>>> please increase the debug level in both initiator and target and sent it out.
>>
>> Logs from the initiator :
>> iscsid[39668]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed to connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: Input/output error
>> kernel: INFO: iser_free_ib_conn_res: freeing conn 0xfffff8048d276000 cma_id 0 qp 0
>> kernel: DEBUG: iser_conn_connect: before cv_wait: 0xfffff8048d276000
>> kernel: INFO: iser_cma_handler: event 1 status -19 conn 0xfffff8048d276000 id 0xfffff80880606800
>> kernel: ERROR: iser_connect_error: conn 0xfffff8048d276000
>> kernel: DEBUG: iser_conn_connect: after cv_wait: 0xfffff8048d276000
>> iscsid[1078]: child process 39668 terminated with exit status 1
>>
>> Logs from the target (here I tried TGT) :
>> No logs, as if TGT did not receive anything.
>> If I try to connect without the "-r", here is what I get :
>> tgtd: login_start(502) Target iqn.2012-06.com.test:target1 is RDMA, but conn cid:0 from iqn.1994-09.org.freebsd:srv1 is TCP
>> So target is correctly iSER configured.
>> I tried without iSER on both sides, of course it works.
>>
>>> From first look I think you need to configure the LIO target to work with demo mode.
>>
>> I double-checked, LIO was in demo mode, I followed this guideline :
>> https://community.mellanox.com/docs/DOC-1468
>>
>> One strange thing, on initiator, sounds like no packet goes through the interface when trying to connect :
>> # sysctl hw.mlxen1.stat.rx_packets hw.mlxen1.stat.tx_packets
>> hw.mlxen1.stat.rx_packets: 386
>> hw.mlxen1.stat.tx_packets: 409
>> # iscsictl -A -r -t iqn.2012-06.com.test:target1 -p 192.168.2.2
>> # sysctl hw.mlxen1.stat.rx_packets hw.mlxen1.stat.tx_packets
>> hw.mlxen1.stat.rx_packets: 386
>> hw.mlxen1.stat.tx_packets: 409
>>
>>> Another thing you can try is the user space tgt target (compile with make ISCSI_RDMA=1) that I work with mostly.
>>>
>>>>
>>>> If I remove the "-r" option from the iscsictl command, it correctly connects to the target.
>>>>
>>>> On target side, Lio, targetcli :
>>>> /> ls iscsi/
>>>> o- iscsi ............................................. [1 Target]
>>>> o- iqn.2012-06.com.test:target1 ....................... [1 TPG]
>>>> o- tpg1 ........................................... [enabled]
>>>> o- acls .......................................... [0 ACLs]
>>>> o- luns ........................................... [1 LUN]
>>>> | o- lun0 ..................... [iblock/block1 (/dev/sdc7)]
>>>> o- portals ..................................... [1 Portal]
>>>> o- 192.168.2.2:3260 .................. [OK, iser enabled]
>>>>
>>>> I wanted to make some RDMA connection tests with udaddy for example, but I did not found the FreeBSD version.
>>>>
>>>> Any advice ?
>>>>
>>>> Many thanks !
>>>>
>>>> Ben
>>>>
>>>>
>>>>
>>>>> On 11 Aug 2016, at 15:44, Max Gurtovoy <maxg at mellanox.com> wrote:
>>>>>
>>>>> These are the instructions I get from iscsi maintainer that merged our code to FreeBSD-11:
>>>>> 1. set WITH_OFED=yes in /etc/make.conf
>>>>> 2. "make buildkernel buildworld installkernel installworld"
>>>>> 3. reboot
>>>>> 4. kldload iser
>>>>>
>>>>> After that, make sure you configured all the interfaces correctly and that you have ping between the 2 servers.
>>>>> later you need to check basic RDMA stuff on your servers (Added Hans/Oded/Meny to help you if needed).
>>>>>
>>>>> Only if the above are working you can proceed to check iser.
>>>>>
>>>>> Max.
>>>>>
>>>>> On 8/11/2016 4:22 PM, Ben RUBSON wrote:
>>>>>> I just tested to connect to a Linux iSER enabled target, but I still get this error message at initiator side :
>>>>>> iscsid[1187]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed to connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: Invalid argument
>>>>>>
>>>>>>> as if my initiator did not understand the iSER command "ISCSIDCONNECT".
>>>>>>> How to be sure everything is correctly compiled with ICL_KERNEL_PROXY enabled ?
>>>>>>
>>>>>> Ben
>>>>>>
>>>>>>
>>>>>>> On 10 Aug 2016, at 22:51, Max Gurtovoy <maxg at mellanox.com> wrote:
>>>>>>>
>>>>>>> Hi Ben,
>>>>>>>
>>>>>>> iSER initiator is supported in FreeBSD-11 but not the iser target.
>>>>>>> for the target you should use Linux target such as TGT (user space),
>>>>>>> Lio or SCST.
>>>>>>>
>>>>>>> thanks,
>>>>>>> Max.
>>>>>>>
>>>>>>>
>>>>>>> On 8/10/2016 8:13 PM, Ben RUBSON wrote:
>>>>>>>> Hello,
>>>>>>>>
>>>>>>>> I have some difficulties to make iSER (FreeBSD 11 BETA3) working.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ### My configuration :
>>>>>>>>
>>>>>>>> 2 servers with Mellanox ConnectX-3 NICs.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ### What I did :
>>>>>>>>
>>>>>>>> I rebuilt kernel adding the following to GENERIC :
>>>>>>>> options OFED
>>>>>>>> device mlxen
>>>>>>>> options COMPAT_LINUXKPI
>>>>>>>>
>>>>>>>> I built iser :
>>>>>>>> cd /usr/src/sys/modules/iser/ ; make ; make install ; kldload iser
>>>>>>>> (I saw later-on that I could have used "device iser" in kernel configuration)
>>>>>>>>
>>>>>>>> My /etc/ctl.conf :
>>>>>>>> portal-group pg0 {
>>>>>>>> discovery-auth-group no-authentication
>>>>>>>> listen 192.168.2.2
>>>>>>>> offload iser
>>>>>>>> }
>>>>>>>> target iqn.2012-06.com.test:target1 {
>>>>>>>> auth-group no-authentication
>>>>>>>> portal-group pg0
>>>>>>>> alias my-iser-disk
>>>>>>>> lun 0 {
>>>>>>>> path /dev/da8
>>>>>>>> }
>>>>>>>> }
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ### Error :
>>>>>>>>
>>>>>>>> As soon as I do the following :
>>>>>>>> iscsictl -A -r -t iqn.2012-06.com.test:target1 -p 192.168.2.2
>>>>>>>> I get this error :
>>>>>>>> iscsid[1187]: 192.168.2.2 (iqn.2012-06.com.test:target1): failed to connect to 192.168.2.2 using ICL kernel proxy: ISCSIDCONNECT: Invalid argument
>>>>>>>> iscsid[655]: child process 1187 terminated with exit status 1
>>>>>>>>
>>>>>>>> "sysctl hw.mlxen1.stat.tx_packets" on initiator shows that no packet is sent at all when trying to connect.
>>>>>>>>
>>>>>>>> Did I miss something ?
>>>>>>>>
>>>>>>>> Many thanks !
>>>>>>>>
>>>>>>>> Ben
>
> _______________________________________________
> freebsd-scsi at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-scsi
> To unsubscribe, send any mail to "freebsd-scsi-unsubscribe at freebsd.org"
>
More information about the freebsd-scsi
mailing list