我们正在 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 模块可能正在做一些不兼容的事情。我会先和他们谈谈他们的模块如何在高负载下搞砸你的系统。