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


13

我们有一台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)

我得到很多。我不知道这是什么意思。我什至无法确定它是哪个单元或端口。(edit3:我现在知道了,这是无害的)。

鉴于我的edit3,我回到正题。没有任何迹象表明磁盘已损坏,除了验证挂起在66%并导致阵列挂起(有时还随机发生)之外。我希望验证能找到问题...


什么硬盘?他们得到官方支持吗?
grs 2013年

我添加了布局。磁盘为ST32000542AS。他们得到了支持,但服务器还可以正常工作3年。
Halfgaar 2013年

我遇到某些WD驱动器在某个时候变慢的问题。只有hdparm(在这里很难实现)向我显示了〜300KB / s(是K!)的吞吐量输出,而不是通常的80〜100MB / s。
本杰明·桑塔格

1
企业版和台式机驱动器磁盘之间的区别在于它们可以解决错误。如果企业驱动器遇到任何错误,则光盘脱离RAID。(例如,对存储数据的风险敏感并愿意为此付费的公司)如果台式机驱动器遇到故障,它将尝试持续到所有超时结束为止。(作为用户一个驱动器,以及他们需要到达的数据,并且如果它们一次掉光盘,制造商将非常痛苦)。ST32000542AS显然是安静且经济的台式机光盘。例如goo.gl/rWb5lj
Rainbow-

实际上,就在最近,此服务器突然挂起,与最初的问题相比有所不同且受到更严重的影响,并且日志显示RAID端口超时。超时在企业驱动器之一上(此服务器现在有更多)。
Halfgaar 2014年

Answers:


1

到目前为止尚未提出的2件事:

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

0

此问题可能是由于其中一个磁盘遇到读取错误并阻塞了整个阵列,直到它设法重新分配扇区或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,因此它们不会引起此问题。


0

为了确保您的固件版本是什么?

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

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

当时没有可用的固件修复程序,因此我从256k的条带大小迁移到了64k,这也解决了该问题。您可以尝试采用变通办法,尽管一定会花费数天才能完成。

后来,我尝试了256k的新固件(*我认为已经修复了* 4.10.00.021),并且像魅力一样工作。最新版本是4.10.00.027。


我们没有问题了。验证总是成功的。但是,几个月前(长时间无问题后),我们确实挂起了完整的服务器。Dmesg说磁盘x超时。我不知道为什么控制器没有踢它,但是即使它没有被明确标记为降级,我还是更换了它。而且,此后也已替换了其他磁盘。因此很可能是磁盘问题。
Halfgaar 2014年

0

我曾经在3ware控制器和Seagate驱动器上遇到问题。固件之间存在细微的不兼容性。我切换到三星驱动器,问题已解决。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.