更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛
forum.kylinos.cn
了解更多银河麒麟操作系统全新产品,请点击访问
麒麟软件产品专区:product.kylinos.cn
开发者专区:developer.kylinos.cn
文档中心:document.kylinos.cn
服务器环境以及配置
物理机/虚拟机/云/容器 | 物理机 | |
网络环境 | 外网/私有网络/无网络 | 私有网络 |
硬件环境 | 处理器: | S2500 |
内存: | 512GB | |
机器型号 | 擎天EF860 | |
整机类型/架构: | arm64 | |
BIOS版本: | Great Wall BIOS V3.0 | |
软件环境 | 具体操作系统版本 | 银河麒麟高级服务器操作系统 Kylin Linux Advanced Server release V10 (Lance) |
内核版本 | 4.19.90-52.30.v2207.ky10.aarch64 |
现象描述
服务器巡检告显示有io error,需要进行分析。
现象分析
查看磁盘存储情况
根据串口日志,报IO Error错误的是dm-4和dm-5磁盘设备,对应的是/dev/mpathxsky02blk01和/dev/mpathxsky02blk02两块多路径盘。
分析串口日志
查看串口日志,系统出现过三次I/O error相关的报错,第一次导致系统发生了hung task,后面两次出现IO error报错后便出现了shutdown相关的日志打印。
分析第一次出现I/O error
日志中多次出现print_req_error: I/O error, dev sdb和print_req_error: I/O error, dev sdc的错误。这表明设备sdb和sdc发生了I/O错误。另外,日志中还出现了rejecting I/O to offline device的消息(例如:sd 3:0:0:1: rejecting I/O to offline device),这通常意味着设备已经离线,无法再进行I/O操作。这些I/O错误可能是由于硬盘故障、连接问题(例如,SATA线缆故障)或控制器问题引起的。
日志中有多个任务被报告为挂起超过1200秒,如xfsaild/dm-4和containerd。这些任务的挂起是由于无法完成的磁盘I/O请求导致的,因为设备已经离线或不可用。出现了任务挂起(通常和无法访问存储设备相关),导致最后内核触发了恐慌(Kernel panic - not syncing: hung_task: blocked tasks)。
sdb和sdc设备应该对应sd 3:0:0:0和sd 3:0:0:1,查看当前收集的sosreport中的lsscsi命令,由于相隔的时间太过久远,没有3:0:0:0和3:0:0:1相关的设备,变为了5:0:0:0和5:0:0:1。后续也未再出现过rejecting I/O to offline device,问题应该已经修复。
[30551.689416][ 86] print_req_error: I/O error, dev sdb, sector 278120^M |
分析第二次出现I/O error
日志中先出现了多个print_req_error: I/O error, dev dm-4/5/6, sector xxxx,说明lvm逻辑卷输入输出出现错误。而后出现了XFS (dm-4): writeback error on sector xxxx,XFS 文件系统报告了writeback error和metadata I/O error,特别是在xlog_iodone操作中,错误发生在不同的扇区,涉及数据和元数据的读写操作。错误代码为error 5,对应于输入/输出错误(EIO),这表示底层存储设备无法完成读写请求。
而后马上出现了shutdown及reboot: Restarting system相关日志,这应是之前执行了关机操作。虽然是先出现了IO error的日志,而后出现的shutdown日志,但是shutdown操作并不会立即写到日志,推测是关机操作使得多路径存储设备下线,文件系统无法写入,而后出现的IO error。
[4931293.526231][ 71] print_req_error: I/O error, dev dm-4, sector 5428128^M |
分析第三次出现I/O error
和第二次出现IO error相同,出现IO error后,也立马出现了shutdown相关的日志。
[2001517.911050][102] print_req_error: I/O error, dev dm-6, sector 62984704^M |
查看tuned.log,出现了两次关机操作,应该是对应这两次IO error。
分析结果
第一次出现I/O错误时,日志中显示了 rejecting I/O to offline device的消息。这通常意味着设备已经离线,无法继续进行I/O操作,从而导致了I/O错误。由于这个错误的日志已经存在一段时间,问题应该已经得到解决。
第二次和第三次出现I/O错误时,伴随着关机相关的日志信息。具体来说,关机日志(shutdown 和 reboot)表明系统在I/O错误发生前,应该有执行关机操作。系统关机通常会触发文件系统的卸载和数据的回写,但由于多路径存储设备已经下线,XFS 无法完成日志写回和其他数据的持久化操作。日志中的XFS writeback error和metadata I/O error表明XFS文件系统在尝试进行数据写回时失败。尤其是在元数据操作过程中,XFS 在执行xlog_iodone操作时未能完成I/O请求,导致元数据无法成功写回。这些错误的原因是,XFS尝试将数据写入物理存储设备,但由于设备处于离线状态或无法访问,文件系统无法完成这些操作。