Pciessd异常Readonly致Mysql反复crash如何处理?

系统 Windows
去年10月份发生一起fio卡变为readonly(和双十一无关),发生一起fio卡变为readonly,造成mysql crash的故障,整理如下。

去年10月份发生一起fio卡变为readonly(和双十一无关),发生一起fio卡变为readonly,造成mysql crash的故障,整理如下。

【机器配置】

  1. System | Dell Inc.; PowerEdge R710;  
  2. Processors | physical = 2cores = 12virtual = 24hyperthreading = yes 
  3. # Memory #####################################################  
  4. Total | 94.40G  
  5. Free | 555.50M  
  6. Swappiness | vm.swappiness = 0 
  7. # Disk #####################################################  
  8. 2 ioMemory devices in this system  
  9. Fusion-io driver version: 3.1.5 build 126  
  10. Fusion-io ioDrive 640GB *2 –> mdadm –>/dev/md0  
  11. ibdata,ib_logfile,bin_log,relay_log on SAS 600GB raid1  

【问题表现】

    13:28,监控发出***个db_ping告警

    mysql的alert log如下:

  1. /u01/mysql/libexec/mysqld: Can’t create/write to file ‘/u01/mysql/tmp/ibU5kXB4′ (   Errcode: 30)  
  2. 121104 13:28:10  InnoDB: Error: unable to create temporary file; errno: 30  
  3. 121104 13:28:10 [ERROR] Plugin ‘InnoDB’ init function returned error.  
  4. 121104 13:28:10 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.  
  5. 121104 13:28:10 [ERROR] Aborting  
  6. InnoDB: Error: tried to read 16384 bytes at offset 0 41517056.  
  7. InnoDB: Was only able to read -1.  
  8. 121104 13:14:59  InnoDB: Operating system error number 5 in a file operation.  
  9. InnoDB: Error number 5 means ‘Input/output error’.  
  10. InnoDB: Some operating system error numbers are described at  
  11. InnoDB: http://dev.mysql.com/doc/refman/5.1/en/operating-system-error-codes.html  
  12. InnoDB: File operation call: ‘read’.  
  13. InnoDB: Cannot continue operation.  
  14. mysqld: my_new.cc:51: int __cxa_pure_virtual(): Assertion `! “Aborted: pure virtual     method called.”‘ failed.  
  15. 121104 13:14:59 – mysqld got signal 6 ; 

    由上判断IO设备有问题,此时touch /u01/mysql/tmp/ibd:    

 touch: cannot touch `/u01/mysql/tmp/ibd’: Read-only file system

    由于是核心集群,有数据强一致需求,通过DBA手工强制主备切换,故障排除。

【问题原因】

  1. fusionIO卡出现readonly  
  2. /var/log/message  
  3. Nov  4 13:14:59 my160130.cm6 kernel: : fioerr Fusion-io ioDrive 640GB 0000:07:00.0: Single Bit Event Upset Error Dete4ted – interrupt: val[0]: 000ff16  
  4. fio-status -a  
  5. fct1    Failed: DEVICE IS OFFLINE. ALL READS AND WRITES WILL FAIL!  
  6. ioDrive 640GB MLC, Product Number:2TTK9, SN:436946  
  7. !! —> There are active errors or warnings on this device!  Read below for details.  
  8. ioDrive 640GB MLC, PN:00214401201  
  9. Located in slot 0 Center of Pseudo Low-Profile ioDIMM Adapter SN:436946  
  10. WARNING: READ-ONLY MODE. ALL WRITES WILL FAIL!  
  11. ACTIVE ERRORS:  
  12. The ioMemory has encountered an internal error and has been  
  13. temporarily disabled.  All reads and writes will fail.  
  14. The ioMemory is not allowing write operations. 

【问题分析】

    •SEUs are transient soft errors, and are non-destructive. A reset or rewriting of the device results in normal device behavior thereafter

    fio的控制模块是跑在fpga上的,元数据存储在DRAM和SSD上,断电可恢复。2.x的驱动发生该错误后,会rewriting进行修复。3.x的驱动提高了安全性,发生该错误后,会直接reset,卡read_only等待power recycle

    •SEU class errors are caused by cosmic ray particles making it’s way into the NAND controller or by a failing NAND controller

    FPGA本身的介质损坏或者宇宙射线,都是该错误的诱因。五月份message中有类似Write Path报错,2.x驱动自动rewrite修复了,3.x的驱动安全级别更高,reset后置为readonly

    •Write Path Parity Error

    这个错误是SEU错误的前驱,绝大多数可修复。同集群中,有3台发生过并自动修复。

    •FPGA的成本相比开芯片低廉很多,编程迭代迅速,但健壮性不开芯片

【数据丢失】

    因undo,redo,binlog都在u02的SAS盘上日志完整,备库基本没有延迟,故没有数据丢失;

但由于SEU可能导致当时写入的block错误,造成data不一致,保险起见还是重做备库,利用binlog同步所有数据。

    •SEU class of error my result in data on the device being corrupted.The database should be verified or restored from backup

【改进措施】

    FPGA老化后,有一定几率发生Single Event Upset错误,核心库要及时替换;

    FPGA对宇宙射线敏感,需要控制机房环境,并分散机柜上架;

    改进更敏感的message,dmesg告警。

责任编辑:黄丹 来源: taobaodba.com
相关推荐

2023-03-09 12:21:38

2019-09-20 08:38:51

Python编程语言Java

2023-02-02 08:56:25

线程池线程submit

2023-04-06 15:19:51

2019-08-15 10:20:19

云计算技术安全

2021-01-26 13:40:44

mysql数据库

2017-03-13 13:21:34

Git处理大仓库

2012-12-12 09:49:41

2020-12-29 09:11:33

LinuxLinux内核

2017-10-26 08:43:18

JavaScript内存处理

2019-12-23 10:20:12

Web图片优化前端

2021-03-01 07:31:53

消息支付高可用

2017-05-26 11:32:44

程序应用测试

2018-07-11 19:41:47

MySQL定义异常异常处理

2010-05-17 10:04:45

2023-07-03 13:50:13

ReactonResize事件

2021-05-31 10:47:17

SpringSecuritySession

2022-04-19 09:00:52

ReactTypeScript

2011-02-28 14:08:31

网速变慢局域网网速

2021-03-24 10:40:26

Python垃圾语言
点赞
收藏

51CTO技术栈公众号