3Ware RAID6 阵列有时会挂起。未检测到损坏的磁盘?

3Ware RAID6 阵列有时会挂起。未检测到损坏的磁盘?

我们有一台 Debian 服务器,配有 3Ware 9650SE 8 驱动器 RAID 控制器,带有 5 个磁盘 RAID6 阵列,用作虚拟机主机,全部为 Linux。问题不断出现,我怀疑是未检测到的损坏磁盘。

我们已经遇到过几次崩溃,主机和所有客户机都说 IO 系统阻塞了 120 秒或更长时间。我们怀疑 RAID 控制器有问题,但我们用一个相同的带有相同固件的控制器替换了它,但这并没有解决问题。我不认为会这样,因为第二个 RAID1 阵列一直正常工作。

大约一周前(周日),当它出现故障时,自动验证处于 66%。昨晚(周五早上)处于 67%。启动前后都出现过,而且在出现问题时也出现过。当我用 关闭验证后tw_cli /c0/u0 stop verify,一切又恢复了响应。

我怀疑它在 66% 左右时卡在了磁盘故障上。自动验证将于星期六开始:

# tw_cli /c0 show verify
/c0 basic verify weekly preferred start: Saturday, 12:00AM

并且通常会在周五之前完成。考虑到周日为 66%,周五为 67%,这不太可能是巧合。

在所有驱动器上执行“smartctl -a -d 3ware,0 /dev/twa0”和“smartctl -t long”(长时间 SMART 自我检测)均未发现任何错误。 也没有tw_cli /c0 show alarms

我怀疑磁盘损坏了,但很难检测到,但我将每个驱动器逐个从阵列中取出,从中创建了一个“单个”阵列,并输入了全部零。没有磁盘显示错误。

或者还有其他建议吗?

编辑:

布局如下:

# tw_cli /c0 show

Unit  UnitType  Status         %RCmpl  %V/I/M  Stripe  Size(GB)  Cache  AVrfy
------------------------------------------------------------------------------
u0    RAID-6    OK             -       -       256K    5587.9    RiW    OFF    
u1    SPARE     OK             -       -       -       1863.01   -      OFF    
u2    RAID-1    OK             -       -       -       1862.63   RiW    ON     

VPort Status         Unit Size      Type  Phy Encl-Slot    Model
------------------------------------------------------------------------------
p0    OK             u0   1.82 TB   SATA  0   -            ST32000542AS        
p1    OK             u0   1.82 TB   SATA  1   -            ST32000542AS        
p2    OK             u0   1.82 TB   SATA  2   -            ST32000542AS        
p3    OK             u0   1.82 TB   SATA  3   -            ST32000542AS        
p4    OK             u0   1.82 TB   SATA  4   -            ST32000542AS        
p5    OK             u1   1.82 TB   SATA  5   -            WDC WD2002FYPS-02W3 
p6    OK             u2   1.82 TB   SATA  6   -            WDC WD2002FYPS-02W3 
p7    OK             u2   1.82 TB   SATA  7   -            WDC WD2002FYPS-02W3 

Name  OnlineState  BBUReady  Status    Volt     Temp     Hours  LastCapTest
---------------------------------------------------------------------------
bbu   On           Yes       OK        OK       OK       0      xx-xxx-xxxx

所讨论的单位是 u0。

编辑2:

tw_cli /c0 show diag 显示了一些有趣的东西(edit3:这是无害的,我发现它是由调用smartctl -a -d 3ware,X /dev/twa0X 为无效端口引起的):

QueueAtaPassthrough() called with invalid TargetHandle: 0x17, portHandle: 0xFF

Legacy opcode=0xB1 error=0x10E

E=010E T=14:15:51     : Invalid operation for specified port
E=010E T=14:15:51 U=0 : Return error status to host
Error, Unit 23: Invalid operation for specified port
(EC:0x10e, SK=0x05, ASC=0x24, ASCQ=0x00, SEV=01, Type=0x70)
No additional sense data
Error, Unit 23: 0x10E OVERRIDDEN due to invalid sense buffer descriptor
sense buffer: len=0, address=0x414ca2c7c
Send AEN (code, time): 0031h, 06/21/2013 14:26:16
Synchronize host/controller time
(EC:0x31, SK=0x00, ASC=0x00, ASCQ=0x00, SEV=04, Type=0x71)

我收到很多这样的信息。但我不知道这意味着什么。我甚至不知道它是哪个单元或端口。(编辑 3:我现在知道了,它是无害的)。

鉴于我的修改 3,我又回到了原点。没有任何迹象表明磁盘已损坏,只是验证在 66% 时挂起并导致阵列挂起,这种情况有时也会随机发生。我希望验证能找到故障...

答案1

目前尚未提出的两件事:

  1. 这是 SATA RAID 控制器吗?如果是,SATA 电缆容易老化,更换它们可能会轻松解决此类问题。大多数情况下,当出现磁盘错误、延迟、超时但 SMART 值都正常且驱动器通过所有自检时,可以尝试此方法。不幸的是,找到一个好的 SATA 电缆供应商很困难。
  2. 3Ware RAID 控制器已经过时,目前已不再受支持。您既得不到固件升级,也得不到备件。如果您的控制器坏了,如果没有匹配的控制器和固件,RAID 可能无法恢复。然后需要昂贵的数据恢复。

答案2

此问题可能是由于其中一个磁盘遇到读取错误并阻塞整个阵列,直到它设法重新分配扇区或 RAID 控制器认为驱动器已损坏并将其从阵列中启动出来,将其标记为“降级”(这完全取决于相关控制器)。如果磁盘开始损坏但仍通过 SMART,则可能经常发生这种情况。大多数消费者磁盘将继续尝试读取。

在某些用于 RAID 的驱动器中,这个问题可以通过使用一种称为错误恢复控制。WD 将此称为 TLER。摘自网站:

RAID-specific time-limited error recovery (TLER) - Pioneered by WD, this feature prevents drive fallout caused by the extended hard drive error-recovery processes common to desktop drives.

基本上,它告诉磁盘,如果它无法读取某个扇区,则在 x 秒后放弃。这在 RAID 中非常有用,因为可以从另一个磁盘恢复数据。

据我所知,ST32000542AS 没有实现任何形式的 ERC,因此它们中的任何一个都可以阻止整个阵列。WD2002FYPS 实际上实现了 WD 的 TLER,因此它们不会导致此问题。

答案3

只是为了确认一下,您的固件版本是什么?

当满足以下要求时,我遇到了一个问题 - 这听起来很像您所描述的:

  • 3ware 96xx 系列控制器
  • RAID 6
  • 256k 条带大小
  • 固件版本 < v4.10.00.021*

当时没有可用的固件修复程序,所以我将条带大小从 256k 迁移到 64k,这也解决了这个问题。您可以尝试一种解决方法,尽管这肯定需要几天时间才能完成。

后来我尝试了新的固件(* 4.10.00.021,我认为已经修复)256k,效果很好。4.10.00.027 是最新版本。

答案4

我以前在使用 3ware 控制器和 Seagate 硬盘时遇到过问题。存在细微的固件不兼容问题。我换用了三星硬盘,问题解决了。

相关内容