该 raid1 软件阵列是否发生故障?(mdadm)

该 raid1 软件阵列是否发生故障?(mdadm)

长版本:我正在运行带有软件 raid1(mdadm)的 Red Hat Enterprise Linux 5(REHL5)机器。

几天前,我去备份一些 MySQL 数据,突然间我无法再登录机器了。我输入用户名登录,然后它就一直呆在那里。如果按下控制序列,它们会出现在屏幕上,但永远不会登录。它也没有响应 ctrl+alt+delete。所以我硬关机了。

我重新启动它并通过以下方式监控 raid1 阵列:

mdadm --detail /dev/md1

该数组保存根挂载点。

它开始重新同步阵列。我不确定这是因为崩溃还是因为我硬关机。无论如何我让它完成了:

[f@mysqldatanode ~]# mdadm --detail /dev/md1
/dev/md1:
        Version : 00.90.03
  Creation Time : Thu Apr 19 15:28:52 2007
     Raid Level : raid1
     Array Size : 479893568 (457.66 GiB 491.41 GB)
    Device Size : 479893568 (457.66 GiB 491.41 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 1
    Persistence : Superblock is persistent

    Update Time : Fri Dec 25 10:03:50 2009
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : ab4849de:1f4f41c4:defd01e8:a4979ca6
         Events : 0.78

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       1       8       18        1      active sync   /dev/sdb2

我查看了一些日志(/var/log/messages*),发现了几条类似下面的消息,表明硬盘出现故障:

Dec 21 11:39:47 localhost kernel: sd 0:0:1:0: SCSI error: return code = 0x08000002
Dec 21 11:39:47 localhost kernel: sdb: Current: sense key: Medium Error
Dec 21 11:39:47 localhost kernel:     Additional sense: Unrecovered read error
Dec 21 11:39:47 localhost kernel: Info fld=0x3348912
Dec 21 11:39:47 localhost kernel: end_request: I/O error, dev sdb, sector 53774610
Dec 21 11:39:47 localhost kernel: raid1:md1: read error corrected (8 sectors at 53565760 on sdb2)
Dec 21 11:39:48 localhost kernel: raid1: sdb2: redirecting sector 53565648 to another mirror

因此我尝试寻找坏块并且它又以同样的方式锁定了。

[f@mysqldatanode ~]# badblocks -s /dev/md1
Checking for bad blocks (read-only test):               0/      479893568

那么我应该如何评估这两个驱动器的运行状况?由于有问题的阵列保存根挂载点,我是否需要将它们移动到另一台机器上进行分析?

答案1

您可以通过 mdadm 使 /dev/sdb 设备故障(最好确保使整个设备故障,即所有在其上运行的 mds 都故障),然后检查是否有错误,但从您描述的情况来看,您最好只是更换该设备。

我经常遇到 ide 设备出现故障的情况,我不断重新添加被拒绝的设备,直到最后计算机开始像您描述的那样挂起。更换故障设备解决了问题。

无论哪种情况,您都应该尽快进行备份。

答案2

读取错误很常见,但磁盘可以自行纠正大部分错误。有些磁盘会撒谎并在 SMART 信息中报告读取良好,有些会报告正确的错误数量和恢复的 ECC 数量。有些磁盘(尤其是垂直磁盘)可能会出现数百万个读取错误,并且恢复的 ECC 比例可达 99.99999%(或更多)。

但是这次/dev/sdb2无法正确读取8个扇区。

然后,softraid 只需从其他磁盘获取丢失的扇区并重写它们即可恢复。然后它确定一切又正常了。

这可能是硬盘损坏的迹象,但也可能是偶然的错误、灰尘颗粒或其他原因。在报废此硬盘之前,请等待并观察是否会出现更多错误。

相关内容