确认硬盘写入错误

我一直在一个专门的CentOS服务器硬盘驱动器的问题与以下症状:

  1. 随机MySQL数据库损坏 – 表已被损坏和修复多次。 每次修复后的几个小时,他们再次损坏。 MySQL已经完全卸载,安装了一个新的版本,数据库从备份恢复,但几个小时后表又被破坏了。
  2. 随机Rsync传输损坏 – 从另一台服务器传输2GB数据库备份时,该文件多次损坏,最终成功传输。
  3. 随机文件复制损坏 – 在testing时,我将6GB数据库备份复制到另一个文件(cp file1 file2),并使用md5sumtesting了这两个文件,并收到不同的签名。 这是可重复的:每次我复制文件,我得到一个不同的MD5签名。 一旦复制,md5签名不会改变。

我已经完成的testing:

  1. 文件复制testing – 如上所述,复制大文件似乎导致新的副本损坏,似乎是基于写入。
  2. SmartCtl – 使用smartctl检查和testing驱动器不会显示任何问题。 我有其他的硬盘驱动器故障,smartctl显而易见的问题。
  3. 系统日志 – 与以前的其他服务器硬盘驱动器问题不同,日志中没有IO错误消息。

在这一点上我的问题是:

  1. 我可以执行哪些其他testing来确认问题? 我只能远程访问服务器。
  2. 这个问题可能还有其他潜在的来源,除了硬盘?
  3. 有没有办法来监视或检查这个问题呢?

我只是想确保问题是硬盘驱动器,然后我提交一个服务请求来改变它(如果它不是硬盘驱动器可能最终花费我)。

更新:我更改了硬盘,但在复制大文件时出现了相同的损坏错误,所以它不是驱动器,除非我有幸得到两个驱动器完全相同的问题。 使用“cmp”命令,我发现它始终是在损坏的文件中从0翻转为1的字节的MSB。 我正在整个服务器硬件交换,所以我不知道问题的确切原因。

硬盘错误往往会被内核抓住。 你的服务器是否有ECC内存(它应该)…没有它的内存错误可以错过。 与RAID适配器上的任何高速cachingRAM相同。 拉动DIMM,清洁触点并重试,或者尝试运行Memtest。

检查驱动器上的SMART错误可能会有帮助。 如果没有SMART错误,驱动器可能会失败,但是通常情况下,边缘驱动器将会拥有它 “smartctl -a / dev / sd [x]”或者smartctl –test = long / dev / sd [x]应该提供更多的信息。

你在内核日志中看到高清写入错误吗? 确保检查驱动器的SMART状态,例如: http : //www.captain.at/howto-linux-smartmontools-smartctl.php

此外,损坏的内存可能会导致损坏的文件。 你有远程KVM访问机器吗? 在这种情况下,您应该运行memtest或类似的( http://www.memtest.org/