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 ...
随机推荐
- java调用本机的命令 如ping、打开文本等
最近接触到用java代码调用主机的命令部分感觉有点意思整理总结一下 环境jdk1.8 操作系统win10,不用引入其他的包jdk自带的api就可以 一.java调用ping命令 import jav ...
- @Async异步操作及异步线程池
本文为博主原创,转载请注明出处: @Async 用来实现异步请求操作,使用@Async 注解时,需要同时使用 @EnableAsync 注解,使用 @EnableAsync 注解用于开启异步请求. 如 ...
- 基于python+django的外卖点餐网站-外卖点餐系统
该系统是基于python+django开发的外卖点餐系统.适用场景:大学生.课程作业.毕业设计.学习过程中,如遇问题可以在github给作者留言. 演示地址 前台地址: http://food.git ...
- linux-帮助-man和help
- Nginx日志规则以及根据日志进行性能问题判断的思路
Nginx日志规则以及根据日志进行性能问题判断的思路 背景 Nginx是开源方案里面能实现反向代理 负载均衡的首选. 但是有时候性能出问题比较难以分析和定位, 不知道是不是nginx的瓶颈 性能问题的 ...
- [转帖]TiDB 数据库统计表的大小方法
简介:TiDB统计表的大小,列出了一些方法: 1.第一种的统计方式: 基于统计表 METRICS_SCHEMA.store_size_amplification 要预估 TiDB 中一张表的大小,你可 ...
- Nginx arm编译安装
Nginx arm编译安装 背景 计划编译一套产品. 能够比较方便快捷的进行 nginx的交付. 主要思想是源码编译 不仅能够在arm上面运行 也可以在x86上面编译 考虑性能还有一些扩展性. 高效处 ...
- [转帖]Promethues + Grafana + AlertManager使用总结
Prometheus是一个开源监控报警系统和时序列数据库,通常会使用Grafana来美化数据展示. 1|01. 监控系统基础架 1|11.1核心组件 Prometheus Server, 主要用于抓取 ...
- [转帖]《Linux性能优化实战》笔记(23)—— 内核线程 CPU 利用率过高,perf 与 火焰图
在排查网络问题时,我们还经常碰到的一个问题,就是内核线程的 CPU 使用率很高.比如,在高并发的场景中,内核线程 ksoftirqd 的 CPU 使用率通常就会比较高.回顾一下前面学过的 CPU 和网 ...
- [转帖]如何用python连接Linux服务器
1.安装paramiko库 pip install paramiko 2.使用paramiko库连接linux #导入库 import paramiko 创建一个sshclient对象 ssh = p ...