iscsi Initiator 登录target时报错iscsiadm: Login I/O error, failed to receive a PDU


iscsi Initiator 登录target时报错iscsiadm: Login I/O error, failed to receive a PDU

[root@rac2 ~]# iscsiadm -m discovery -t st -p 10.10.10.111:3260 -I iser
iscsiadm: recv's end state machine bug?
iscsiadm: Login I/O error, failed to receive a PDU
iscsiadm: retrying discovery login to 10.10.10.111
iscsiadm: recv's end state machine bug?
iscsiadm: Login I/O error, failed to receive a PDU
iscsiadm: retrying discovery login to 10.10.10.111
iscsiadm: recv's end state machine bug?
iscsiadm: Login I/O error, failed to receive a PDU
iscsiadm: retrying discovery login to 10.10.10.111
iscsiadm: recv's end state machine bug?
iscsiadm: Login I/O error, failed to receive a PDU
iscsiadm: retrying discovery login to 10.10.10.111
iscsiadm: recv's end state machine bug?
iscsiadm: Login I/O error, failed to receive a PDU
iscsiadm: retrying discovery login to 10.10.10.111
iscsiadm: recv's end state machine bug?
iscsiadm: Login I/O error, failed to receive a PDU
iscsiadm: retrying discovery login to 10.10.10.111
iscsiadm: connection login retries (reopen_max) 5 exceeded
iscsiadm: Could not perform SendTargets discovery: encountered iSCSI login failure
[root@rac2 ~]#

但是ping 该ip地址是ok的。
[root@rac2 ~]# ping 10.10.10.111
PING 10.10.10.111 (10.10.10.111) 56(84) bytes of data.
64 bytes from 10.10.10.111: icmp_seq=1 ttl=64 time=0.156 ms
64 bytes from 10.10.10.111: icmp_seq=2 ttl=64 time=0.147 ms
64 bytes from 10.10.10.111: icmp_seq=3 ttl=64 time=0.109 ms
^C
--- 10.10.10.111 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.109/0.137/0.156/0.022 ms
[root@rac2 ~]#

根据redhat.com文章:
https://access.redhat.com/solutions/2158021
明确说明是存储端的问题。

建议使用 debug模式来排错
iscsiadm -m discovery -t st -d8 -p X.X.X.X

于是
iscsiadm -m discovery -t st -d8 -p 10.10.10.111:3260 -I iser
不过功力尚浅,看不出什么门道,先记录下来输出:


[root@rac2 ~]# iscsiadm -m discovery -t st -d8 -p 10.10.10.111:3260 -I iser
iscsiadm: ip 10.10.10.111, port 3260, tgpt -1
iscsiadm: Max file limits 1024 4096

iscsiadm: updating defaults from '/etc/iscsi/iscsid.conf'
iscsiadm: updated 'discovery.sendtargets.iscsi.MaxRecvDataSegmentLength', '32768' => '32768'
iscsiadm: updated 'node.startup', 'manual' => 'automatic'
iscsiadm: updated 'node.leading_login', 'No' => 'No'
iscsiadm: updated 'node.session.timeo.replacement_timeout', '120' => '120'
iscsiadm: updated 'node.conn[0].timeo.login_timeout', '30' => '15'
iscsiadm: updated 'node.conn[0].timeo.logout_timeout', '15' => '15'
iscsiadm: updated 'node.conn[0].timeo.noop_out_interval', '5' => '5'
iscsiadm: updated 'node.conn[0].timeo.noop_out_timeout', '5' => '5'
iscsiadm: updated 'node.session.err_timeo.abort_timeout', '15' => '15'
iscsiadm: updated 'node.session.err_timeo.lu_reset_timeout', '30' => '30'
iscsiadm: updated 'node.session.err_timeo.tgt_reset_timeout', '30' => '30'
iscsiadm: updated 'node.session.initial_login_retry_max', '4' => '8'
iscsiadm: updated 'node.session.cmds_max', '128' => '128'
iscsiadm: updated 'node.session.queue_depth', '32' => '32'
iscsiadm: updated 'node.session.xmit_thread_priority', '-20' => '-20'
iscsiadm: updated 'node.session.iscsi.InitialR2T', 'No' => 'No'
iscsiadm: updated 'node.session.iscsi.ImmediateData', 'Yes' => 'Yes'
iscsiadm: updated 'node.session.iscsi.FirstBurstLength', '262144' => '262144'
iscsiadm: updated 'node.session.iscsi.MaxBurstLength', '16776192' => '16776192'
iscsiadm: updated 'node.conn[0].iscsi.MaxRecvDataSegmentLength', '262144' => '262144'
iscsiadm: updated 'node.conn[0].iscsi.MaxXmitDataSegmentLength', '0' => '0'
iscsiadm: updated 'node.conn[0].iscsi.HeaderDigest', 'None' => 'None'
iscsiadm: updated 'node.session.nr_sessions', '1' => '1'
iscsiadm: updated 'node.session.iscsi.FastAbort', 'Yes' => 'Yes'
iscsiadm: in read_transports
iscsiadm: Adding new transport iser
iscsiadm: Matched transport iser

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'handle'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/iser/handle'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/iser/handle'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/iser/handle' with attribute value '18446744072106209312'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'caps'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_transport/iser/caps'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_transport/iser/caps'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_transport/iser/caps' with attribute value '0x89'

iscsiadm: Could not match iface[hw=,ip=,net_if=,iscsi_if=iser] to host.
iscsiadm: Looking for config file /var/lib/iscsi/send_targets/10.10.10.111,3260

iscsiadm: Looking for config file /var/lib/iscsi/send_targets/10.10.10.111,3260 config st_config.
iscsiadm: updated 'discovery.startup', 'manual' => 'manual'
iscsiadm: updated 'discovery.type', 'sendtargets' => 'sendtargets'
iscsiadm: updated 'discovery.sendtargets.address', '' => '10.10.10.111'
iscsiadm: updated 'discovery.sendtargets.port', '0' => '3260'
iscsiadm: updated 'discovery.sendtargets.auth.authmethod', 'None' => 'None'
iscsiadm: updated 'discovery.sendtargets.timeo.login_timeout', '15' => '15'
iscsiadm: updated 'discovery.sendtargets.use_discoveryd', 'No' => 'No'
iscsiadm: updated 'discovery.sendtargets.discoveryd_poll_inval', '30' => '30'
iscsiadm: updated 'discovery.sendtargets.reopen_max', '5' => '5'
iscsiadm: updated 'discovery.sendtargets.timeo.auth_timeout', '45' => '45'
iscsiadm: updated 'discovery.sendtargets.timeo.active_timeout', '30' => '30'
iscsiadm: updated 'discovery.sendtargets.iscsi.MaxRecvDataSegmentLength', '32768' => '32768'
iscsiadm: disc rec already exists
iscsiadm: Looking for config file /var/lib/iscsi/send_targets/10.10.10.111,3260

iscsiadm: starting sendtargets discovery, address 10.10.10.111:3260,
iscsiadm: in read_transports
iscsiadm: Updating transport iser
iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'handle'

iscsiadm: sysfs_attr_get_value: found in cache '/class/iscsi_transport/iser/handle'

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_transport/iser'/'caps'

iscsiadm: sysfs_attr_get_value: found in cache '/class/iscsi_transport/iser/caps'

iscsiadm: no authentication configured...
iscsiadm: sendtargets discovery to 10.10.10.111:3260 using isid 0x00023d000000
iscsiadm: resolved 10.10.10.111 to 10.10.10.111
iscsiadm: discovery timeouts: login 15, reopen_cnt 6, auth 45.
iscsiadm: in ctldev_open
iscsiadm: created NETLINK_ISCSI socket...
iscsiadm: setting iface iser, dev , set ip , hw , transport iser.

iscsiadm: iscsi_create_leading_conn discovery ep connect

iscsiadm: in ktransport_ep_connect
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: ktransport_ep_connect got handle 4
iscsiadm: in ktransport_ep_poll
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: in ktransport_ep_poll
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: iscsi_create_leading_conn discovery create session

iscsiadm: in kcreate_session
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: expecting event 28, got 106, handling...
iscsiadm: in ctldev_handle
iscsiadm: in nl_read
iscsiadm: ctldev_handle got event type 106

iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: iscsi_create_leading_conn discovery created session 18

iscsiadm: iscsi_create_leading_conn discovery create conn

iscsiadm: in kcreate_conn
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: iscsi_create_leading_conn discovery bind conn

iscsiadm: in kbind_conn
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: connected to discovery address 10.10.10.111
iscsiadm: discovery session to 10.10.10.111:3260 starting iSCSI login
iscsiadm: iscsi_create_session discovery set params

iscsiadm: sysfs_attr_get_value: open '/class/iscsi_connection/connection18:0'/'ping_tmo'

iscsiadm: sysfs_attr_get_value: new uncached attribute '/sys/class/iscsi_connection/connection18:0/ping_tmo'

iscsiadm: sysfs_attr_get_value: add to cache '/sys/class/iscsi_connection/connection18:0/ping_tmo'

iscsiadm: sysfs_attr_get_value: cache '/sys/class/iscsi_connection/connection18:0/ping_tmo' with attribute value '0'

iscsiadm: in kset_param
iscsiadm: set operational parameter 15 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: set operational parameter 17 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 18 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 19 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: set operational parameter 22 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: set operational parameter 23 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: set operational parameter 24 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: set operational parameter 25 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 26 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 27 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 28 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 35 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 30 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 31 to:
iscsiadm: 0
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 32 to:
iscsiadm: iser
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 34 to:
iscsiadm: iqn.1994-05.com.redhat:3fea8217eb5a
iscsiadm: in kset_param
iscsiadm: set operational parameter 39 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: set operational parameter 40 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: set operational parameter 41 to:
iscsiadm:
iscsiadm: in kset_param
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: set operational parameter 43 to:
iscsiadm: 1
iscsiadm: sending login PDU with current stage 1, next stage 3, transit 0x80, isid 0x00023d120000 exp_statsn 0
iscsiadm: >    InitiatorName=iqn.1994-05.com.redhat:3fea8217eb5a
iscsiadm: >    InitiatorAlias=rac2
iscsiadm: >    SessionType=Discovery
iscsiadm: >    HeaderDigest=None
iscsiadm: >    DataDigest=None
iscsiadm: >    DefaultTime2Wait=2
iscsiadm: >    DefaultTime2Retain=0
iscsiadm: >    IFMarker=No
iscsiadm: >    OFMarker=No
iscsiadm: >    ErrorRecoveryLevel=0
iscsiadm: >    MaxRecvDataSegmentLength=8192
iscsiadm: in ksend_pdu_begin
iscsiadm: send PDU began for hdr 48 bytes and data 244 bytes
iscsiadm: in kwritev
iscsiadm: wrote 48 bytes of PDU header
iscsiadm: in kwritev
iscsiadm: wrote 244 bytes of PDU data
iscsiadm: in ksend_pdu_end
iscsiadm: in __kipc_call
iscsiadm: in kwritev
iscsiadm: in nlpayload_read
iscsiadm: in nlpayload_read
iscsiadm: send PDU finished for conn 18:0
^Ciscsiadm: caught SIGINT, exiting... --------->>>>这是我执行ctrl+c的结果,否则会一直输出。
[root@rac2 ~]#

突然想到我曾经写过测试ib网络的文章:
http://blog.csdn.net/msdnchina/article/details/71133494

于是在服务器端(有10.10.10.111 这个ip地址的这一端)敲入:
ibping -S -C mlx4_1 -P 2

在客户端执行:ibping -c 10000 -f -C mlx4_1 -P 2 -L 0
[root@rac2 ~]# ibping -c 10000 -f -C mlx4_1 -P 2 -L 0
ibping: iberror: failed: can't resolve destination port 0
[root@rac2 ~]# 

其实,有经验的人,一下就看出来了,链路正常的话,-L后边的值不能为0,这正说明ib链路不通,虽然ping 10.10.10.111能通。


-- A start job for unit iscsi.service has finished with a failure. -- -- The job identifier is 2343 and the job result is failed. Apr 01 15:59:31 iscsi systemd[1]: Starting Login and scanning of iSCSI devices... -- Subject: A start job for unit iscsi.service has begun execution -- Defined-By: systemd -- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- A start job for unit iscsi.service has begun execution. -- -- The job identifier is 2537. Apr 01 15:59:31 iscsi iscsiadm[22805]: iscsiadm: default: 1 session requested, but 1 already present. Apr 01 15:59:31 iscsi iscsiadm[22805]: iscsiadm: default: 1 session requested, but 1 already present. Apr 01 15:59:31 iscsi iscsiadm[22805]: iscsiadm: default: 1 session requested, but 1 already present. Apr 01 15:59:31 iscsi iscsiadm[22805]: iscsiadm: default: 1 session requested, but 1 already present. Apr 01 15:59:31 iscsi iscsiadm[22805]: iscsiadm: Could not log into all portals Apr 01 15:59:31 iscsi systemd[1]: iscsi.service: Main process exited, code=exited, status=15/n/a -- Subject: Unit process exited -- Defined-By: systemd -- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- An ExecStart= process belonging to unit iscsi.service has exited. -- -- The process' exit code is 'exited' and its exit status is 15. Apr 01 15:59:31 iscsi systemd[1]: iscsi.service: Failed with result 'exit-code'. -- Subject: Unit failed -- Defined-By: systemd -- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- The unit iscsi.service has entered the 'failed' state with result 'exit-code'. Apr 01 15:59:31 iscsi systemd[1]: Failed to start Login and scanning of iSCSI devices. -- Subject: A start job for unit iscsi.service has failed -- Defined-By: systemd -- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- A start job for unit iscsi.service has finished with a failure. -- -- The job identifier is 2537 and the job result is failed.
最新发布
04-02
<think>好的,我现在要解决用户提到的iscsi.service启动失败的问题,错误信息是exit-code 15,并且提示iscsiadm无法登录所有门户。首先,我需要回顾一下用户提供的引用内容,特别是引用[2]和[3],因为它们涉及iscsiadm命令和ACL配置。 首先,引用[2]显示用户曾经成功登出iscsi目标,但问题现在发生在启动登录失败。可能的原因包括目标不可达、认证问题或配置错误。引用[3]提到不同主机验证不通过需要将主机的initiatorname.iscsi中的WWNN添加到目标的ACL列表中,这可能是一个关键点。 接下来,我需要考虑可能的原因和对应的检查步骤。首先检查网络连通性,确保iSCSI目标IP和端口可达。然后检查iscsiadm的配置是否正确,包括目标IQN、IP和端口。接着,检查ACL设置,确认initiator的WWNN是否被允许访问目标。此外,查看日志文件,如journalctl或/var/log/messages,以获取更详细的错误信息。 另外,系统单元启动失败可能有依赖性问题,检查iscsi.service的依赖是否正确安装和启动,比如iscsid.service。最后,可能需要重新发现目标或更新节点信息,以确保配置是最新的。 需要逐步指导用户执行这些检查步骤,确保每一步都清晰易懂,并针对可能的错误提供解决方案。同,结合用户提供的引用内容,强调ACL配置的重要性,并提醒检查initiatorname.iscsi文件中的名称是否正确,以及是否正确添加到目标的ACL中。</think>### iSCSI服务启动失败解决方案 针对iscsi.service启动失败并报错"exit-code 15"的问题,按照以下步骤排查: 1. **检查网络连通性** - 使用命令验证目标端口可达性: ```bash telnet 172.25.254.238 3260 ``` 若连接失败,需检查防火墙规则: ```bash firewall-cmd --list-all | grep 3260 ``` 若未开放端口,需执行: ```bash firewall-cmd --add-service=iscsi-target --permanent firewall-cmd --reload ``` 2. **验证iSCSI配置** - 检查发现门户配置: ```bash iscsiadm -m discovery -t st -p 172.25.254.238 ``` 输出应包含类似内容: ``` 172.25.254.238:3260,1 iqn.2018-06.com.example:storagel ``` 3. **检查ACL配置** 根据引用[3],确认客户端启动器名称已添加到目标服务器ACL: - 查看本机启动器名称: ```bash cat /etc/iscsi/initiatorname.iscsi ``` 输出示例: ``` InitiatorName=iqn.2023-09.com.example:client1 ``` - 在目标服务器配置中添加该IQN到ACL列表 4. **手动登录验证** 使用引用[2]中的命令测试手动登录: ```bash iscsiadm -m node -T iqn.2018-06.com.example:storagel -p 172.25.254.238 -l ``` 若失败,观察具体报错: - CHAP认证失败:检查`/etc/iscsi/iscsid.conf`中的用户名密码 - 目标不存在:确认目标IQN正确性 5. **查看详细日志** ```bash journalctl -u iscsi.service -xe ``` 重点关注包含"Could not log into all portals"的上下文信息 6. **服务依赖检查** 验证依赖服务状态: ```bash systemctl status iscsid.service ``` 若未运行,需先启动: ```bash systemctl start iscsid && systemctl enable iscsid ``` **典型解决方案流程**: ```bash # 刷新节点信息 iscsiadm -m node --op=delete -T iqn.2018-06.com.example:storagel iscsiadm -m discovery -t st -p 172.25.254.238 iscsiadm -m node -T iqn.2018-06.com.example:storagel -p 172.25.254.238 -l # 确认成功后重启服务 systemctl restart iscsi ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值