iSCSI的客户端messages频繁报错问题解决
问题现象:
在自己的工作站中安装的RAC测试环境,使用了iSCSI模拟共享存储,环境运行OK,但是在messages信息中频繁报错如下:
[root@db01rac2 ~]# tail -20f /var/log/messages
Jan 13 23:08:37 db01rac2 iscsid: iscsid: connecting to 192.168.1.10:3260
Jan 13 23:08:37 db01rac2 iscsid: iscsid: connected local port 64350 to 192.168.1.10:3260
Jan 13 23:08:37 db01rac2 iscsid: iscsid: login response status 0000
Jan 13 23:08:37 db01rac2 iscsid: iscsid: deleting a scheduled/waiting thread!
Jan 13 23:08:37 db01rac2 iscsid: iscsid: connection1:0 is operational after recovery (1 attempts)
Jan 13 23:08:39 db01rac2 iscsid: iscsid: Kernel reported iSCSI connection 1:0 error (1020 - ISCSI_ERR_TCP_CONN_CLOSE: TCP connection closed) state (3)
Jan 13 23:08:39 db01rac2 iscsid: iscsid: re-opening session 1 (reopen_cnt 0)
Jan 13 23:08:39 db01rac2 iscsid: iscsid: disconnecting conn 0x55beee57de90, fd 6
Jan 13 23:08:39 db01rac2 kernel: connection1:0: detected conn error (1020)
Jan 13 23:08:41 db01rac2 iscsid: iscsid: Poll was woken by an alarm
Jan 13 23:08:41 db01rac2 iscsid: iscsid: re-opening session 1 (reopen_cnt 0)
根据
的说法是:
This is normal and can be safely ignored.
The error sequence indicates that there was a temporary problem in connectivity to the storage backend but it was safely recovered within seconds.
但是,这是持续在/var/log/messages中报错的,虽然未影响RAC使用,但是总觉得这样刷日志肯定是不正常的,继续查询:
在suse的一篇文章中,
The systemd journal, by default also written to /var/log/messages, fills with similar messages when an iSCSI LUN is shared across multiple nodes.
这个写的场景很匹配,我这里就是两个节点共享同样的iSCSI LUN,但是究竟能否忽略这个错误呢?
或是有别的设置?
1.确保IQN的名字唯一性
如果我们需要避免这样的情况发生。需要在节点上修改IQN,避免重名。
而其实我这里原本这个文件是不一样的,但确实在配置时修改成一样的了:
cat /etc/iscsi/initiatorname.iscsi
[root@db01rac1 ~]# cat /etc/iscsi/initiatorname.iscsi
#InitiatorName=iqn.1988-12.com.oracle:178a747c44
InitiatorName=iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6:client
[root@db01rac2 ~]# cat /etc/iscsi/initiatorname.iscsi
#InitiatorName=iqn.1988-12.com.oracle:b8e5b14ad0fa
InitiatorName=iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6:client
可是如果不一样的话,按我现在的配置,就无法识别开机启动挂载盘;
那为何无法识别?是不是iSCSI服务端的ACL配置问题?
下面来验证下,先把 /etc/iscsi/initiatorname.iscsi 改回默认值,两个节点不一样;
[root@db01rac1 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1988-12.com.oracle:178a747c44
[root@db01rac2 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1988-12.com.oracle:b8e5b14ad0fa
如果不重启机器,直接尝试logout和login是没问题的:
iscsiadm -m node
iscsiadm -m discovery -t st -p 192.168.1.10
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6 -p 192.168.1.10 --login
--以节点2为例:
[root@db01rac2 ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6 -p 192.168.1.10 --logout
Logging out of session [sid: 1, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260]
Logout of [sid: 1, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260] successful.
[root@db01rac2 ~]#
[root@db01rac2 ~]#
[root@db01rac2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vdb 251:16 0 100G 0 disk
└─ora-u01 252:2 0 100G 0 lvm /u01
sr0 11:0 1 1024M 0 rom
vda 251:0 0 10G 0 disk
├─vda2 251:2 0 9G 0 part
│ ├─ol-swap 252:1 0 1G 0 lvm [SWAP]
│ └─ol-root 252:0 0 8G 0 lvm /
└─vda1 251:1 0 1G 0 part /boot
[root@db01rac2 ~]#
[root@db01rac2 ~]#
[root@db01rac2 ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6 -p 192.168.1.10 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260] successful.
[root@db01rac2 ~]#
[root@db01rac2 ~]#
[root@db01rac2 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdf 8:80 0 1G 0 disk
sdd 8:48 0 1G 0 disk
vdb 251:16 0 100G 0 disk
└─ora-u01 252:2 0 100G 0 lvm /u01
sr0 11:0 1 1024M 0 rom
sdg 8:96 0 30G 0 disk
sde 8:64 0 1G 0 disk
vda 251:0 0 10G 0 disk
├─vda2 251:2 0 9G 0 part
│ ├─ol-swap 252:1 0 1G 0 lvm [SWAP]
│ └─ol-root 252:0 0 8G 0 lvm /
└─vda1 251:1 0 1G 0 part /boot
sdh 8:112 0 16G 0 disk
但是如果重启了机器,会发现现有配置无法正常login操作:
[root@db01rac1 ~]# iscsiadm -m node
192.168.1.10:3260,1 iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6
[root@db01rac1 ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6 -p 192.168.1.10 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260] (multiple)
iscsiadm: Could not login to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260].
iscsiadm: initiator reported error (24 - iSCSI login failed due to authorization failure)
iscsiadm: Could not log into all portals
2.修正iSCSI服务端ACL的配置
看起来真是iSCSI服务端ACL的配置问题,那就去服务端看下acl的配置:
acl
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6/tpg1/acls/
/iscsi/iqn.20...2b6/tpg1/acls> create iqn.1988-12.com.oracle:178a747c44
/iscsi/iqn.20...2b6/tpg1/acls> create iqn.1988-12.com.oracle:b8e5b14ad0fa
/iscsi/iqn.20...2b6/tpg1/acls> delete iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6:client
再次节点1尝试login,发现果然成功:
[root@db01rac1 ~]# iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6 -p 192.168.1.10 --login
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6, portal: 192.168.1.10,3260] successful.
ACL的配置我改为两个RAC节点的,删除了之前的配置,具体最终显示如下:
/iscsi/iqn.20...2b6/tpg1/acls> pwd
/iscsi/iqn.2003-01.org.linux-iscsi.storage.x8664:sn.d5fd6c3922b6/tpg1/acls
/iscsi/iqn.20...2b6/tpg1/acls> ls
o- acls .................................................................................................................. [ACLs: 2]
o- iqn.1988-12.com.oracle:178a747c44 ............................................................................ [Mapped LUNs: 5]
| o- mapped_lun0 ......................................................................................... [lun0 block/disk1 (rw)]
| o- mapped_lun1 ......................................................................................... [lun1 block/disk2 (rw)]
| o- mapped_lun2 ......................................................................................... [lun2 block/disk3 (rw)]
| o- mapped_lun3 ......................................................................................... [lun3 block/disk4 (rw)]
| o- mapped_lun4 ......................................................................................... [lun4 block/disk5 (rw)]
o- iqn.1988-12.com.oracle:b8e5b14ad0fa .......................................................................... [Mapped LUNs: 5]
o- mapped_lun0 ......................................................................................... [lun0 block/disk1 (rw)]
o- mapped_lun1 ......................................................................................... [lun1 block/disk2 (rw)]
o- mapped_lun2 ......................................................................................... [lun2 block/disk3 (rw)]
o- mapped_lun3 ......................................................................................... [lun3 block/disk4 (rw)]
o- mapped_lun4 ......................................................................................... [lun4 block/disk5 (rw)]
/iscsi/iqn.20...2b6/tpg1/acls>
这样,最终测试,重启两个rac节点,磁盘挂载正常,且再次查询/var/log/messages信息,不再有iscsi的报错。
其实这个问题早在很多年前的测试我就遇到过,当时没有查出来原因就忽略了,因为也不影响测试,又不是自己的专业范围,而如今本着成长型思维,注重这些细节,终于还是找到了原因。最后看着清爽的messages信息,还是有些成就感的_
iSCSI的客户端messages频繁报错问题解决的更多相关文章
- 遇到的eclipse启动报错问题解决
遇到的eclipse启动报错问题解决 一.启动时出现Java was started but returned exit code=13 可能原因: 1.eclipse与JDK的不是都64位或者32位 ...
- go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量
go语言,golang学习笔记3 用命令下载框架报错问题解决 设置环境变量 下载安装:go get github.com/astaxie/beego 首页 - beego: 简约 & 强大并存 ...
- javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决
javascript的倒计时功能中newData().getTime()在iOS下会报错问题解决 在做移动端时间转化为时间戳时,遇到了一个问题,安卓手机上访问时,能拿到时间戳,从而正确转换时间,而在i ...
- kafka启动报错&问题解决
kafka启动报错&问题解决 一早上班,就收到运维同事通知说有一台物理机宕机,导致虚拟机挂了.只得重启kafka服务器. 1.启动 启动zookeeper bin/zkServer.sh st ...
- NLTK数据包下载频繁报错——解决方法
问题描述:Nltk下载数据包,安装频繁报错. import nltk nltk.download() 运行上面的代码,下载nltk的数据包.但是在下载过程中因为各种问题导致网络传输失败,下载不成功. ...
- 映射内网ftp服务器到公网报错问题解决
这两天公司测试环境有个需求要让合作方通过ftp推送数据,一般内网环境是不会对公网开放ftp服务的,但是因为是临时需求就帮着搭了ftp服务,并且做了公网映射.ftp服务搭好之后在内网访问正常,但是在公网 ...
- ssh com.jcraft.jsch.JSchException: Algorithm negotiation fail报错问题解决
我司自动安装部署工具ideploy,使用ssh连接主机并部署业务.今天提供给一线安装规划后,安装报错,测试连接主机失败,而直接使用ssh是可以连接上主机的.查看问题错误堆栈如下: ERROR pool ...
- 在Android工程中加入AIDL文件时,gen目录生成的文件报错-问题解决
from://http://blog.csdn.net/watt520/article/details/10099047 今天在弄清除缓存的东东,按照网上别人的方法,创建了一个AIDL文件,这个时候发 ...
- Ubuntu安装 jdk.rpm 报错问题解决
报错问题出现原因 第一次使用Ubuntu操作系统,很多命令及软件安装方式与以往使用的Linux操作系统(CentOS)有很大区别.现在总结使用Ubuntu在安装JDK中,遇到的问题及解决方法. roo ...
- 安装scrapy报错问题解决
今天在安装scrapy时候,最后一步出现下面报错(操作系统为centerOS 6.4) error: Setup script exited with error: command 'gcc' fai ...
随机推荐
- jmeter+badboy软件安装与使用
目录: 一.软件下载安装 1.软件下载 2.安装过程 3.安装完成后界面,默认是已经开启录制模式 二.操作使用 1.访问sougou 2.搜索:mrwhite2020 3.选择导出jmx格式 4.使用 ...
- 小白学标准库之 http
1. 前言 标准库是工具,是手段,是拿来用的.一味的学标准库就忽视了语言的内核,关键.语言层面的特性,内存管理,垃圾回收.数据结构,设计模式.这些是程序的内核,要熟练,乃至精通它们,而不是精通标准库. ...
- Listener refused the connection with the following error: ORA-12514
1.问题 在使用Oracle SQL Developer时,遇到以下问题: 状态: 失败 -测试失败: Listener refused the connection with the followi ...
- [转帖]xtrabackup2.4备份恢复脚本
https://developer.aliyun.com/article/534230#:~:text=xtrabackup2.4%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8 ...
- [转帖]实战演练 | Navicat 数据生成功能
https://zhuanlan.zhihu.com/p/631823381 数据生成的目的是依据某个数据模型,从原始数据通过计算得到目标系统所需要的符合该模型的数据.数据生成与数据模型是分不开的,数 ...
- [转帖]Datadog 能成为最大的云监控厂商吗
https://xie.infoq.cn/article/901cfd6b284e3e103ac70aeb3 作者:睿象云 2021-03-25 本文字数:2256 字 阅读完需:约 7 分钟 D ...
- [转帖]AHCI到NVMe,SSD的关键科技革命
https://baijiahao.baidu.com/s?id=1718020841628703656&wfr=spider&for=pc HDD和早期SSD大部分使用SATA接 ...
- 什么是根号?什么是 log ?
生日悖论是 \(O(\sqrt{n})\) 随机序列 LIS 是 \(O(\sqrt{n})\) 随机 \(\pm1\) 序列前缀和最大绝对值是 \(O(\sqrt{n})\) 证明 随机 Prufe ...
- 使用css 与 js 两种方式实现导航栏吸顶效果
场景描述 简单的说一下场景描述:这个页面有三个部分组成的. 顶部的头部信息--导航栏--内容 当页面滚动的时候.导航栏始终是固定在最顶部的. 我们使用的第一种方案就是使用css的粘性定位 positi ...
- 手写promise自定义封装异步任务回调的执行
自定义封装异步任务回调的执行 <script type="text/javascript"> let p = new Promise((resolve, reject) ...