通过声音识别硬盘故障 + 在已安装的 RAID1 上运行 smartctl 是否安全?

通过声音识别硬盘故障 + 在已安装的 RAID1 上运行 smartctl 是否安全?

基本上,我在程序化 RAID1 中有两个 WD HDD(没有特殊硬件):

$ lsscsi --verbose
[0:0:0:0]    disk    ATA      WDC WD10EFRX-68F 0A82  /dev/sda 
  dir: /sys/bus/scsi/devices/0:0:0:0  [/sys/devices/pci0000:00/0000:00:17.0/ata1/host0/target0:0:0/0:0:0:0]
[1:0:0:0]    disk    ATA      WDC WD10EFRX-68F 0A82  /dev/sdb 
  dir: /sys/bus/scsi/devices/1:0:0:0  [/sys/devices/pci0000:00/0000:00:17.0/ata2/host1/target1:0:0/1:0:0:0]

其中一个 ( /dev/sdb) 开始产生奇怪的噪音。我使用 运行了SMART overall-health self-assessment testresult: PASSED输出如下:

$ sudo smartctl -a /dev/sdb

... 

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   200   200   051    Pre-fail  Always       -       0
  3 Spin_Up_Time            0x0027   131   129   021    Pre-fail  Always       -       4450
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       201
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   100   253   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   075   075   000    Old_age   Always       -       18349
 10 Spin_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       201
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       135
193 Load_Cycle_Count        0x0032   191   191   000    Old_age   Always       -       29322
194 Temperature_Celsius     0x0022   112   101   000    Old_age   Always       -       31
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   253   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   100   253   000    Old_age   Offline      -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%         0         -

看起来还不错,对吧?请注意,这个 RAID 位于一台正常运行时间很长的服务器内,我相信,我已经有 70 天没有检查它了,它运行良好,所以当我亲自到那里时,我听到了听不到的声音,然后把它关掉了。

问题:

  1. 这是我的硬盘的声音(它没有发出咔哒声,只发出锯切般的声音,咔哒声是我移动时发出的),这可能是什么?

  2. 运行起来“安全”吗sudo smartctl -t short /dev/sdb?一个答案说它“和继续使用故障驱动器一样安全”,但是我的问题不是针对显而易见的问题,而是针对 RAID 的问题 - Linux 在检查已安装的 RAID 中的单个驱动器时是否可以做一些不受欢迎的事情?从未安装的驱动器?它是否会关闭电源一小段时间以进行测试?测试会影响两个驱动器吗?

答案1

我不能确定你的第一个问题,我以前从未听过硬盘发出这种声音。当我听到这种声音时,它肯定是转速低于磁盘驱动器的声音,通常是风扇发出的声音,通常是轴承故障。如果驱动器支架仍然牢固,并且没有任何东西接触驱动器本身(大多数 RAID 盒都使用橡胶支架将驱动器隔离一点),那么我能想到的唯一原因就是驱动器电机的轴承故障。我假设它在访问驱动器时不会发生变化。

我希望您将其设置为镜像设置 (RAID1),而不是简单的条带集。如果是这样,您可以丢失驱动器而不会影响您的数据。我相信 WD10EFRX 是一个 1TB 磁盘,不是吗?它们很便宜,如果您确定是磁盘问题,那么可能需要使用 MDADM 使其“故障”,物理替换它,然后将新磁盘添加到阵列。重新同步大约需要一个小时,根据我的经验,为了安心,这样做是值得的。然后,您可以取出故障驱动器并在单独的硬件上进行测试,以确保您的数据不会受到测试过程的损害。是的,我知道这也不能回答您的第二个问题,但这是一种避免短期或长期 SMART 测试中断的可能性的方法。

答案2

拥有 RAID 的意义在于您不必过于担心硬盘故障。

不过,您确实需要定期检查,每周或每两周一次就好,这些检查将读取所有磁盘的所有数据,比较它们是否一致,并重写任何无法读取的扇区(以便磁盘可以重新分配它们)。

SMART 属性看起来绝对没问题,只有两个属性通过运行“离线”测试进行更新,其余的都是对正常运行的运行评论。您可以(并且应该)在几乎没有发生任何情况时定期运行长时间的离线测试,因为驱动器活动会中断测试并使其返回到最后一个检查点(否则可以随时运行测试)。

所以如果该磁盘发生故障,它会突然发生故障,而不是逐渐发生故障。

您现在可以做的是添加第三个磁盘,将镜像数增加到三个,并让旧磁盘继续运行。这样您将获得更好的性能,并且如果一个磁盘发生故障,设置仍将是冗余的。

由于这是软件 RAID,您还需要调查您的引导加载程序是否在所有地方都正确安装。

相关内容