RAID5 阵列上的 ATA 故障

RAID5 阵列上的 ATA 故障

一段时间以来,在高负载下,我经常遇到 RAID5 故障。我总是能够在重新启动后强制重组阵列,并且掉线磁盘和非掉线磁盘之间的事件计数始终小于 20。

经过一番调查后,我认为问题不在于磁盘本身(它们通常同时一起掉落),而在于控制器。

这是发生这种情况时 dmesg 日志的摘录(在这种情况下,它是在强制检查阵列时发生的):http://paste.ubuntu.com/6067736/

在出现这样的故障后,驱动器 /dev/sde 和 /dev/sdf 似乎都无法访问,因为 smartctl -a /dev/sde 放弃了这一点:

smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-37-generic] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

Vendor:               /5:0:0:0
Product:              
User Capacity:        600,332,565,813,390,450 bytes [600 PB]
Logical block size:   774843950 bytes
>> Terminate command early due to bad response to IEC mode page
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

虽然 600PB 的磁盘很不错,但它只有 1.5TB。

我有 3 个 RAID 磁盘连接到主板上的 ATA 端口,还有 2 个磁盘连接到外部 (PCIex) ATA 控制器。从日志中的故障来看,我有理由相信是控制器有问题。

我该怎么做才能修复这个问题?更换 ATA 电缆?更改一些设置?我对 Linux 还很陌生。

来自smartctl的数据:

Model Family:     Western Digital Caviar Green (Adv. Format)
Device Model:     WDC WD15EARS-00MVWB0
Serial Number:    WD-WMAZA2091111
LU WWN Device Id: 5 0014ee 6ab49271f
Firmware Version: 51.0AB51

SDF 给出了以下统计数据:

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   171   169   051    Pre-fail  Always       -       34595
  3 Spin_Up_Time            0x0027   253   253   021    Pre-fail  Always       -       1016
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       78
  5 Reallocated_Sector_Ct   0x0033   162   162   140    Pre-fail  Always       -       735
  7 Seek_Error_Rate         0x002e   200   199   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       22178
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       76
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       43
193 Load_Cycle_Count        0x0032   199   199   000    Old_age   Always       -       3415
194 Temperature_Celsius     0x0022   118   110   000    Old_age   Always       -       32
196 Reallocated_Event_Count 0x0032   001   001   000    Old_age   Always       -       691
197 Current_Pending_Sector  0x0032   200   200   000    Old_age   Always       -       6
198 Offline_Uncorrectable   0x0030   200   200   000    Old_age   Offline      -       2
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   199   189   000    Old_age   Offline      -       319

虽然 sde 没有显示任何重新分配或读取错误:

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   253   253   021    Pre-fail  Always       -       925
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       73
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   200   200   000    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   070   070   000    Old_age   Always       -       22178
 10 Spin_Retry_Count        0x0032   100   253   000    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   253   000    Old_age   Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       71
192 Power-Off_Retract_Count 0x0032   200   200   000    Old_age   Always       -       38
193 Load_Cycle_Count        0x0032   199   199   000    Old_age   Always       -       3378
194 Temperature_Celsius     0x0022   114   106   000    Old_age   Always       -       36
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   200   200   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0008   200   200   000    Old_age   Offline      -       0

盘确实是绿的,买的时候没想过会有问题。

我觉得奇怪的是,在负载下,两个磁盘通常都会从阵列中掉出来。故障磁盘会以某种方式“级联”到同一 ATA 控制器上的另一个磁盘吗?

无论如何我想我必须购买至少一个新驱动器。

编辑:有趣的是,我说通常两个驱动器同时死机;今天早上检查后,我才意识到只有 sdf 从阵列中掉线了,而且已经很长时间了,因为偶数计数差异约为 4000。在这种情况下,我认为尝试将其添加回阵列是没有意义的,我需要快速找到一个备用的。

答案1

ATA 错误相当常见,在 Linux 中更容易发现错误进行调试。

导致 ATA 错误的原因主要有两个:

  1. 磁盘有故障/绿色
  2. 从磁盘到处理器/内存(SATA 电缆或它们所连接的连接器)的通信问题

根据我的经验,这在磁盘问题中更为常见。

  • 如果您有绿色驱动器,那么对于某些驱动器的节能特性来说,这将是一个问题。某些型号的驱动器将旋转速度降低,当 RAID 尝试访问磁盘时,如果驱动器没有及时响应,它将标记为 ATA 错误。(这可能是误报,您无能为力。)
  • 如果磁盘有问题,您可能需要使用驱动器制造商的工具在另一台计算机上测试该磁盘。这将确保问题不是出在连接上,并且需要对驱动器进行更深入的测试。

如果您有一根需要更换的电缆,它可能会帮助排除该问题。

有趣的是,我在 WDC 上看到了这个问题。(我认为驱动器上可能有一个固件解决了这个问题……我认为他们不再公开这样做了。)

驱动模型是啥?

相关内容