作者:hello_unix 来自:aixchina.net
一个客户p610小型机,内置RAID有一颗硬盘坏掉,系统报错如下
# errpt
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
613E5F38 0314215708 P H LVDD I/O ERROR DETECTED BY LVM
5ABCCC6B 0314215708 T H scraid0 DISK OPERATION ERROR
5ABCCC6B 0314215708 T H scraid0 DISK OPERATION ERROR
5ABCCC6B 0314215708 T H scraid0 DISK OPERATION ERROR
5ABCCC6B 0314215708 T H scraid0 DISK OPERATION ERROR
5ABCCC6B 0314215708 T H scraid0 DISK OPERATION ERROR
1D57AC2F 0314215308 T H scraid0 SCSI BUS ERROR
1D57AC2F 0314215308 T H scraid0 SCSI BUS ERROR
1D57AC2F 0314215308 T H scraid0 SCSI BUS ERROR
1D57AC2F 0314215308 T H scraid0 SCSI BUS ERROR
1D57AC2F 0314215308 T H scraid0 SCSI BUS ERROR
1D57AC2F 0314215308 T H scraid0 SCSI BUS ERRO
在SCSI RAID管理菜单中,识别故障硬盘,其实故障盘位置已经亮黄灯了,这个操作只是确认一下而已。
关机,取下硬盘,进行更换,更换完成后,开机,RAID开始自动重建。
在RAID管理菜单中可以看到进度
当RAID重建进行到29左右的时候,出现了 constructing halt
等待一段时间后,RAID重建完成
然后启动数据库,发现sybase数据库无法启动
kernel sddone: write error on virtual disk 3 block 779522:
kernel sddone: I/O error
server Error: 823, Severity: 24, State: 2
server I/O error detected during wait for BUF pointer = '0xa8e74078', MASS pointer = '0xa8e74078', (Buf#: '0'), page ptr = '0xa3c4b000', dbid = '2', Mass virtpage = '51111170', Buffer page = '0', Mass status = '0x80908', Buffer status = '0x1', size = '2048', cache (id: 0) = 'default data cache', Pinning Xdes = '0x0', spid = '0'
数据文件损坏
清日志后,重启动机器,发现系统报错跟没更换硬盘以前相同
将原raid删除重建(因为数据不是很重要,所以数据文件损坏不管,只要重建文件就行),仍然有constructing halt报错。再删除重建,发现另一颗硬盘亮黄色告警灯
更换此硬盘,再重建raid,重启动机器,I/O ERROR DETECTED BY LVM 这个报错没了
DISK OPERATION ERROR这个报错在开机,或者诊断阵列卡的时候,都有,没办法,好多机器都是这样,不影响使用。
在已经重建好的raid上创建数据库文件,启动syabse测试,业务正常
手动fail这里中的硬盘,重启动机器,再启动sybase测试,业务正常
将手动fail的硬盘再添加到raid中,重建完成后,重启动机器,测试sybase正常
到此,问题处理完毕。
总结:1。内置raid很脆弱,建议出现硬盘fail后,尽快做数据备份
2 。更换硬盘尽量热插拔,最好不要关机,数据库还是要停下的
3。不要坏一颗盘你就带一颗盘去更换,最好坏一个你带2个,坏2个你带3个
4。系统无法诊断硬盘故障,如果硬盘坏了,raid卡发现不了,就很痛苦,比如这次,只能从 I/O ERROR DETECTED BY LVM 去推断