LSI RAID 控制器在数据库导入时出现错误 - 如何排除故障?

LSI RAID 控制器在数据库导入时出现错误 - 如何排除故障?

我们正在 Oracle 系统(RHEL 5.9,2.6.18-348.6.1.el5)上运行数据库转储的导入。导入未完成,最终出现错误:

ORA-15080: synchronous I/O operation to a disk failed
WARNING: failed to write mirror side 1 of virtual extent 248 logical extent 0 of file 280 in group 1 on disk 1 allocation unit 986
Errors in file /u01/app/oracle/diag/rdbms/dbprod/DBPROD/trace/DBPROD_lgwr_24520.trc:
ORA-00345: redo log write error block 509314 count 2023
ORA-00312: online log 1 thread 1: '+DATA/dbprod/redo01.log'
ORA-15081: failed to submit an I/O operation to a disk
ORA-15081: failed to submit an I/O operation to a disk

环形缓冲区中存在相应的错误/var/log/messages

Jun 12 18:54:42 db1-test kernel: megasas: build_ld_io  error, sge_count = 51
Jun 12 18:54:42 db1-test kernel: megasas: Err returned from build_and_issue_cmd
Jun 12 18:54:42 db1-test kernel: megasas: build_ld_io  error, sge_count = 51
Jun 12 18:54:42 db1-test kernel: megasas: Err returned from build_and_issue_cmd
Jun 12 18:54:42 db1-test kernel: megasas: build_ld_io  error, sge_count = 51
Jun 12 18:54:42 db1-test kernel: megasas: Err returned from build_and_issue_cmd
Jun 12 18:54:42 db1-test kernel: sd 0:2:1:0: timing out command, waited 360s
Jun 12 18:54:42 db1-test kernel: sd 0:2:1:0: Unhandled error code
Jun 12 18:54:42 db1-test kernel: sd 0:2:1:0: SCSI error: return code = 0x06000000
Jun 12 18:54:42 db1-test kernel: Result: hostbyte=DID_OK driverbyte=DRIVER_TIMEOUT,SUGGEST_OK

包含导入的驱动器阵列是 RAID 1+0 中的 10 磁盘 SAS 阵列,使用 300GB 10k 磁盘。RAID 控制器是LSI MegaRAID SAS 9260-8i. MegaCLI 未报告任何磁盘或适配器错误。

  • 这是硬件问题吗?
  • 有什么方法可以排除故障吗?RAID 控制器状态良好。磁盘和逻辑驱动器报告正常。
  • 这是 Linux 操作系统还是调优问题?我将尝试使用不同的 I/O 调度程序来确定。CFQ是默认的。

编辑:

已尝试其他调度程序,结果相同。那里A第三方(Vormetric)文件系统加密模块在此设置中运行。删除它可使导入完成。所以现在我想知道这是否是模块中的缺陷,或者它是否触发了 LSI 驱动程序中的不良状况。


在导入过程中,我们达到了 14,000 次写入 IOPS。 在此处输入图片描述

在最近的尝试中,系统完全停止,控制台上出现以下情况。 在此处输入图片描述

冻结前的最后top输出。 在此处输入图片描述

答案1

最终谢尔盖没错 - 这是驱动程序问题。但我们先检查一下:

首先,您需要使用截止期限 I/O 调度程序而不是 CFQ。deadline顾名思义,它可以确保所有 IOP 及时完成。

从 megaraid 卡中获取事件:

megacli -adpeventlog -getevents -f /tmp/megaraid-$(date +%F_%T) -aALL

检查磁盘上的 SMART 数据(您需要构建一个新的 smartmontools 才能使其工作):

# megacli -pdlist -a0 |grep 'Device Id'
Device Id: 10
Device Id: 9

# smartctl -a /dev/sda -d megaraid,9
«…»
# smartctl -a /dev/sda -d megaraid,10
«…»

如果一切正常,继续尝试LSI 的最新驱动程序


此设置中正在运行第三方 (Vormetric) 文件系统加密模块。删除它可使导入完成。所以现在我想知道这是模块的缺陷还是触发了 LSI 驱动程序中的不良状况。

是的,Voretric 模块可能正在做一些不兼容的事情。我会先和他们谈谈他们的模块如何在高负载下搞砸你的系统。

相关内容