Linux:iSCSI客户端扫描无法发现iSCSI服务端问题排查

配置环境信息:
Redhat7 target:192.168.23.10
Redhat7 initiator:192.168.23.20
Windows10 initiator:192.168.23.1

问题:在192.168.23.20客户端扫描服务端,没有发现资源。

第一步:检查网络连通性,网络正常。

第二步:检查initiator文件中写入的客户端名称与target目录中acls的参数一致
[[email protected] Desktop]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3c9133ae8aee:client

o- iscsi ............................................................................................................ [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3c9133ae8aee ....................................................... [TPGs: 1]
| o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
| o- acls .......................................................................................................... [ACLs: 1]
| | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3c9133ae8aee:client ................................... [Mapped LUNs: 1]

检查结果表示一致!

第三步:检查initiator的服务状态
[[email protected] Desktop]# systemctl restart iscsid
[[email protected] Desktop]# systemctl status iscsid
iscsid.service - Open-iSCSI
Loaded: loaded (/usr/lib/systemd/system/iscsid.service; enabled)
Active: active (running) since Fri 2020-02-07 08:42:17 EST; 10s ago
Docs: man:iscsid(8)
man:iscsiadm(8)
Process: 3950 ExecStop=/sbin/iscsiadm -k 0 2 (code=exited, status=0/SUCCESS)
Process: 3955 ExecStart=/usr/sbin/iscsid (code=exited, status=0/SUCCESS)
Main PID: 3957 (iscsid)
CGroup: /system.slice/iscsid.service
├─3956 /usr/sbin/iscsid
└─3957 /usr/sbin/iscsid

Feb 07 08:42:17 client systemd[1]: Starting Open-iSCSI...
Feb 07 08:42:17 client systemd[1]: Failed to read PID from file /var/run/iscsid.pid: Invali...ment
Feb 07 08:42:17 client iscsid[3956]: iSCSI daemon with pid=3957 started!
Feb 07 08:42:17 client systemd[1]: Started Open-iSCSI.
Hint: Some lines were ellipsized, use -l to show in full.

检查结果表示,运行正常!

第四步:检查target的服务状态
[[email protected] Desktop]# systemctl status targetd
targetd.service - targetd storage array API daemon
Loaded: loaded (/usr/lib/systemd/system/targetd.service; enabled)
Active: failed (Result: exit-code) since Fri 2020-02-07 07:45:27 EST; 11s ago
Process: 3597 ExecStart=/usr/bin/targetd (code=exited, status=255)
Main PID: 3597 (code=exited, status=255)

Feb 07 07:45:27 localhost.localdomain systemd[1]: Starting targetd storage array API daemon...
Feb 07 07:45:27 localhost.localdomain systemd[1]: Started targetd storage array API daemon.
Feb 07 07:45:27 localhost.localdomain targetd[3597]: CRITICAL:root:password not set in /etc/target/targetd.yaml
Feb 07 07:45:27 localhost.localdomain systemd[1]: targetd.service: main process exited, code=exited, status=255/n/a
Feb 07 07:45:27 localhost.localdomain systemd[1]: Unit targetd.service entered failed state.

iSCSI服务运行有报错,“ CRITICAL:root:password not set in /etc/target/targetd.yaml”。
查看该文件/etc/target/targetd.yaml,网上搜索该文件的相关配置文档,未果,后续待补充。
自我尝试配,未果。

此时,依据现有信息无法判断我的iSCSI target是否配置正常。
但是按照网络一个文档提示,该报错并不影响服务正常使用,initiator依然可以发现target。

第五步:在Windows 客户都尝试扫描 iSCSI共享资源,未果,没有搜索到。

此时,基本可以判断我的iSCSI target配置有问题,列出target所有目录进行检查。
[[email protected] Desktop]# targetcli
targetcli shell version 2.1.fb34
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type ‘help‘.

/> ls
o- / ......................................................................................................................... [...]
o- backstores .............................................................................................................. [...]
| o- block .................................................................................................. [Storage Objects: 1]
| | o- desk0 ........................................................................... [/dev/md0 (40.0GiB) write-thru activated]
| o- fileio ................................................................................................. [Storage Objects: 0]
| o- pscsi .................................................................................................. [Storage Objects: 0]
| o- ramdisk ................................................................................................ [Storage Objects: 0]
o- iscsi ............................................................................................................ [Targets: 1]
| o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3c9133ae8aee ....................................................... [TPGs: 1]
| o- tpg1 ............................................................................................... [no-gen-acls, no-auth]
| o- acls .......................................................................................................... [ACLs: 1]
| | o- iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3c9133ae8aee:client ................................... [Mapped LUNs: 1]
| | o- mapped_lun0 ................................................................................. [lun0 block/desk0 (rw)]
| o- luns .......................................................................................................... [LUNs: 1]
| | o- lun0 ......................................................................................... [block/desk0 (/dev/md0)]
| o- portals .................................................................................................... [Portals: 1]
| o- 192.168.23.20:3260 ............................................................................................... [OK]
o- loopback ......................................................................................................... [Targets: 0]

逐行检查,问题发现了,提供访问共享资源的网卡地址写错了,正确的应该是192.168.23.10。

第六步:修改正确的TCP/IP地址
通过help可得删除命令。
/iscsi/iqn.20.../tpg1/portals> help

GENERALITIES

Commands are built using the following syntax:

[TARGET_PATH] COMMAND_NAME [OPTIONS]

The TARGET_PATH indicates the path to run the command from.
If ommited, the command will be run from your current path.

The OPTIONS depend on the command. Please use help
COMMAND to get more information.

AVAILABLE COMMANDS

The following commands are available in the
current path:

  • bookmarks action [bookmark]
  • cd [path]
  • create [ip_address] [ip_port]
  • delete ip_address ip_port
  • exit
  • get [group] [parameter...]
  • help [topic]
  • ls [path] [depth]
  • pwd
  • refresh
  • set [group] [parameter=value...]
  • status

删除错误的TCP/IP信息:
/iscsi/iqn.20.../tpg1/portals> delete 192.168.23.20 3260
Deleted network portal 192.168.23.20:3260
添加正确的TCP/IP信息:
/iscsi/iqn.20.../tpg1/portals> create 192.168.23.10
Using default IP port 3260
Created network portal 192.168.23.10:3260.

重启服务,initiator再次尝试扫描。
[[email protected] Desktop]# iscsiadm -m discovery -t sendtargets -p 192.168.23.10
192.168.23.10:3260,1 iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.3c9133ae8aee

总结,targetd.yaml关于root password的保存不影响iSCSI服务的正常运行。

原文地址:https://blog.51cto.com/12400136/2469702

时间: 2024-10-03 09:45:27

Linux:iSCSI客户端扫描无法发现iSCSI服务端问题排查的相关文章

(8)Linux(客户端)和Windows(服务端)下socket通信实例

Linux(客户端)和Windows(服务端)下socket通信实例: (1)首先是Windows做客户端,Linux做服务端的程序 Windows   Client端 #include <stdio.h> #include <Windows.h> #pragma comment(lib, "ws2_32.lib") #define Port 5000 #define IP_ADDRESS "192.168.1.30"     //服务器地址

WebSocket安卓客户端实现详解(三)–服务端主动通知

WebSocket安卓客户端实现详解(三)–服务端主动通知 本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址 WebSocket安卓客户端实现详解(一)–连接建立与重连 WebSocket安卓客户端实现详解(二)–客户端发送请求 终于是最后一篇啦,有点激动\ ( ≧▽≦ ) /啦啦啦, 服务端主动通知 热身完毕,我们先回顾下第一篇中讲到的服务端主动通知的流程 根据notify中事件类型找到对应的处理类,处理对应逻辑. 然后用eventbus通知对应的ui界面更新. 如果

如何创建一个客户端回调:js获得服务端的内容?

答案:表面上看去就是前端的js调用服务的C#方法,本质就是ajax,通过XMLHttpRequest对象和服务端进行交互.回调:就说回过头来调用,按理说js是一种脚本语言,怎么能用来调用服务端的呢?就是通过XMLHttpRequest实现的. 下面说一些具体的操作步骤 1.页面继承接口System.Web.UI.ICallbackEventHandler //继承接口使得:该页面可以作为服务器上的回调事件的目录 2.定义前端代码如下 <div> 请输入信息: <input type=&q

Android-低功耗蓝牙(BLE)-客户端(主机/中心设备)和服务端(从机/外围设备)

一.Android 低功耗蓝牙(BLE)的API简介 从Android 4.3(API 18)才支持低功耗蓝牙(Bluetooth Low Energy, BLE)的核心功能, BLE蓝牙协议是GATT协议, BLE相关类不多, 全都位于android.bluetooth包和android.bluetooth.le包的几个类: android.bluetooth. .BluetoothGattService 包含多个Characteristic(属性特征值), 含有唯一的UUID作为标识 .Bl

JAVA聊天室客户端不显示内容,服务端没问题的原因总算找到了

o(≧口≦)o刚才打了很多内容,结果忘了网络断开了,没法自动存稿.结果一发布把内容都弄没了.气死,不写了. 今天讲的是JAVAEE,讲的很快,主要就重点或者是和SE不一样的才过一下,差不多的就跳过去,让我们自己看PPT......(没掉的内容)...... 上周做了个简单的聊天室功能代码,一直出错.发的内容只能在服务端看到,客户端却看不到.字符串一直等待接收,但就是收不到.对着老师的代码改了好几遍,还是不行.还让老师帮忙看了很久,也还是没发现问题.今天下午又试着做了一遍,不过代码不熟,还是按照自

WCF客户端传输大数据到服务端失败配置问题

最近使用WCF遇到一个问题:当客户端向WCF服务发送一个大量数据时候,发现会提示: "读取 XML 数据时,超出最大字符串内容长度配额 (8192).通过更改在创建 XML 读取器时所使用的 XmlDictionaryReaderQuotas 对象的 MaxStringContentLength 属性,可增加此配额." 于是上网搜索,都说修改配置就可以,但我是初学者,修改半天还没弄出来,最后各种整合,尝试,终于成功了,于是记下了,以备以后需要: 在配置文件内添加如下代码就可以了(只需要

SpringCloud02 Eureka知识点、Eureka服务端和客户端的创建、Eureka服务端集群、Eureka客户端向集群的Eureka服务端注册

1 Eureka知识点 按照功能划分: Eureka由Eureka服务端和Eureka客户端组成 按照角色划分: Eureka由Eureka Server.Service Provider.Service Consumer组成 Eureka Server:提供服务注册和发现(即:服务注册中心) Service Provider:服务提供方(即:为其他微服务提供数据资源的服务),将自身的服务信息注册到 Eureka Server 中去供 Service Consumer 使用 Service Co

html5客户端跨域访问php服务端数据

客户端代码: var param = $.param( { feed:JSON.stringify({ content:'abcd' }) } ); $http({ url: 'http://61.153.100.80/pay/talent.php', method: "POST", data:param, headers: {'Content-Type': 'application/x-www-form-urlencoded'} }).success(function(data, s

客户端通过HTTP协议与服务端交换数据

客户端(包括浏览器)通过HTTP协议与服务端交换数据的描述 发起请求 http method 写请求使用POST 读请求使用GET 参数提交 提交一个普通对象,使用键值对参数 x-www-form-urlencoed 当同名参数有多个值时,使用http表单数组的方式 options[]:a options[]:b options[]:c - 当参数对应的值是复杂对象或多维数组时,json序列化该对象/多维数组 处理服务端响应 预先准备 根据业务需求,确定当前响应返回的是业务数据,还是系统消息.(