RAID-5:两个磁盘同时发生故障?


21

我们有一台运行CentOS的Dell PowerEdge T410服务器,其RAID-5阵列包含5个Seagate Barracuda 3 TB SATA磁盘。昨天系统崩溃了(我不知道到底有多准确,也没有任何日志)。

启动进入RAID控制器BIOS后,我发现在5个磁盘中,磁盘1被标记为“丢失”,磁盘3被标记为“降级”。我强行备份了磁盘3,并用新的硬盘驱动器(大小相同)替换了磁盘1。BIOS检测到此情况并开始重建磁盘1-但是它卡在%1上。纺纱进度指示器并未整夜保持稳定。完全冻结。

我在这里有什么选择?除了使用一些专业的数据恢复服务之外,还有什么方法可以尝试重建?这样两个硬盘如何同时发生故障?似乎是巧合。磁盘1是否有故障,结果磁盘3“不同步”?如果是这样,我是否可以使用任何实用工具将其“同步”取回?


20
是的,大型sata磁盘往往会这样做。(当您遇到双重故障时,重建3 TB会花费很多时间)。因此,这是预料之中的,这就是为什么绝对不建议使用这种配置的RAID-5。
MichelZ 2014年

9
确实。在理想情况下,驱动器故障率是随机分布的。实际上,这是不会发生的-它们通常是从同一批次购买的,并且承受着相同的压力,这意味着它们都同时开始寿命终止。即使在您开始查看SATA磁盘上不可恢复的错误率之前,加载的突然变化也很容易使多个“边缘错误”。无论如何-恐怕这是个坏消息,除非您可以在线使这些驱动器之一,否则该是备份备份的时候了。
Sobrique 2014年


5
我知道它现在并没有多大帮助,但仅供参考-一般共识是将RAID6用于大于1TB的驱动器(这在我们谈论7200rpm时是最低的)。
pauska

2
RAID 5提供了容错能力,但这是一个折衷的选择-您具有N + 1的弹性,但是如果您的驱动器很大,则您的窗口很大,可能会发生第二次故障。RAID-6具有N + 2容错能力,通常被认为是良好的(三重故障几率要低得多)。但是,您还会发现更昂贵的磁盘(例如不便宜的SATA驱动器)的故障率
Sobrique 2014年

Answers:


24

在您接受了一个错误的答案之后,对于我的异端观点(它已经多次保存了此类数组),我感到非常抱歉。

您的第二个故障磁盘可能有一个小问题,也许是块故障。这是原因,为什么你的同步工具 RAID5固件上坠毁。

您可以使用低级磁盘克隆工具轻松地创建扇区级副本(例如,gddrescue可能非常有用),并将该磁盘用作新磁盘3。在这种情况下,您的阵列得以幸存,并且发生了轻微的数据损坏。

很抱歉,可能为时已晚,因为在这种情况下,正统回答的实质是:“突袭多次失败,这就是启示!”

如果您想要很好的冗余RAID,请在Linux中使用软件RAID。例如,其raid超级块数据布局是公开的并有文档记录。。。我真的很抱歉,这是我的另一种异端观点。


8
感到羞耻的是,该票获得了通过,实际上,它试图帮助OP解决混乱问题,这与其他一些问题不同。+1

3
@Vality不会尝试解决问题,它会扩展他的问题。烧毁了损坏的区块的raid5没有尽头的痛苦,因为它将通过完整性检查,但会定期降级。而且他也不知道哪个数据已损坏。如果像修复块一样容易,那将是标准解决方案。
JamesRyan 2014年

4
@JamesRyan我同意这会在以后引起一些问题,甚至我都同意这里存在一些潜在问题。但是,它确实提供了有关如何取回某些功能的有效解决方案,并且当OP谈论数据恢复专家时,我只能假定他们没有备份来取回数据。最后,该解决方案只是修复的一部分,一旦此方法重新启动了系统,您可能希望将文件系统转移到5个新磁盘上,然后重要地进行备份。

1
“您可以轻松地制作块复制工具的扇区级副本”这真的是您要写的内容吗?
Arnaud Meuret 2014年

1
@MikeFurlender我认为硬件速度更快,但专有且易碎,因为如果发生故障,您需要获得完全相同的控制器。软件RAID独立于硬件。请参阅btrfs和zfs。
Martin Ueding 2014年

38

您有双磁盘故障。这意味着您的数据不见了,您将不得不从备份中还原。这就是为什么我们不应该在大型磁盘上使用RAID 5的原因。您想要设置RAID,以便始终能够承受两个磁盘故障,尤其是对于大型慢速磁盘。


3
RAID5有两个问题。一:如果SATA驱动器速度较慢,则重建时间为3TB,这可能会增加复合故障的几率。另一个是不可恢复的误码率-大多数SATA驱动器上的规格表都有1/10 ^ 14,大约-12TB的数据。对于5B方式的3B RAID,在需要重建时几乎不可避免。
Sobrique 2014年

1
我在3TB 5驱动器阵列上使用RAID5,我想将第二个阵列用作第一个阵列的复制副本。对于我来说,丢失数据的这种方式将需要多个磁盘同时在两个阵列上发生故障(因此,我将需要4个磁盘),但仍会保持大量可用容量。阅读完这篇文章后,我现在可以加快该时间范围以获取第二个数组。
战争

1
他的磁盘上可能只有一个坏块3。我真的很想知道为什么专业的系统管理员从未听说过块级复制工具。
彼得说恢复莫妮卡2014年

1
@沃迪,突袭6不会给你吗?
罗勒

3
这不是一个很有帮助的答案。当然,如果RAID 5上出现双磁盘故障,恢复的机会就不好了。但是RAID 5上大多数双磁盘故障可能仅是一个故障磁盘和其他磁盘上一些未纠正的读取错误的问题。如果是这种情况,使用适当的工具仍然可以恢复大多数数据。指向此类工具的指针将有所帮助。
kasperd 2014年

37

您的选择是:

  1. 从备份还原。
    • 这样做有备份,不是吗?RAID不是备份。

  2. 专业数据恢复
    • 尽管非常昂贵且不能保证,但专业的恢复服务可能会恢复您的数据。

  3. 接受数据丢失并从经验中学习。
    • 如注释中所述,不建议将大型SATA磁盘用于RAID 5配置,因为在重建期间可能会出现双重故障,从而导致阵列发生故障。
      • 如果必须使用奇偶校验RAID,则RAID 6更好,下一次也要使用热备用。
      • SAS磁盘由于各种原因而更好,其中包括更高的可靠性,弹性和较低的导致URE(不可恢复的读取错误)的误码率。
    • 如上所述,RAID不是备份。如果数据很重要,请确保已对其进行备份,并且备份已通过还原测试。

1
如果您有5个磁盘(根据OP),并已承诺使用热备份,那么您肯定会采用RAID10而非RAID6 ...?
jimbobmcgee 2014年

1
好吧,对于初学者来说,您将在RAID 1 + 0中使用4个心轴来获得2个磁盘空间,剩下一个磁盘“备用”。您可以容忍两个失败(至少两个正确)。RAID6将为您提供3个磁盘空间,并且还可以容忍两个故障(任何两个)。RAID1 + 0确实具有更好的性能,写入损失更低,并且可能具有更好的随机读取性能(可以从两个主轴中的任何一个进行读取)。
Sobrique

对于第2点。数据恢复。从RAID5专业地恢复数据可以使您轻松赚2万美元。此外,OP让重建操作在一夜之间进行,使磁盘承受压力,这可能会使恢复变得更加困难,甚至不可能。只是提前通知您。确保发送所有磁盘。
OmnipotentEntity

4

由于其他原因,可能同时发生故障,甚至可能发生故障。另一种可能性是其中一个磁盘较早出现故障,而您没有主动检查它。

确保您的监视将迅速拾取以降级模式运行的RAID卷。也许您没有选择,但是必须从BIOS中学习这些信息永远都不是一件好事。


3
+1表示被忽略的监控。重要的是已经注意到步骤“正常”->“关键”,而不是步骤“关键”->“失败”。这同样适用于所有其他类型的冗余(备用互联网线路,地下室啤酒,备用轮胎等)。
哈根·冯·埃森

2

回答“两个硬盘怎么会同时发生故障?” 确切地说,我想引用这篇文章

争论的重点是这样。随着磁盘驱动器变得越来越大(在两年内大约翻了一番),URE(不可恢复的读取错误)并没有以相同的速度得到改善。URE测量不可恢复的读取错误的发生频率,通常以读取的每个位的错误来度量。例如,URE率为1E-14(10 ^ -14)表示,从统计学上讲,每读取1E14位(1E14位= 1.25E13字节或大约12TB)将发生一次不可恢复的读取错误。

...

该论点是,随着磁盘容量的增长,并且URE速率无法以相同的速率提高,随着时间的推移,RAID5重建失败的可能性也会增加。从统计上讲,他表明,在2009年,磁盘容量将增长到足以使RAID5不能用于任何有意义的阵列的意义。

因此,RAID5在2009年是不安全的。RAID6也将很快推出。至于RAID1,我开始用3个磁盘制作它们。具有4个磁盘的RAID10也是不稳定的。


3
同样,RAID不是备用备份,它纯粹是添加“缓冲区”,在此期间可以更换磁盘以保持可用数据...可用。另一个选择是使用复制,这将需要2个阵列同时失败……我认为可能性要小得多。
战争

就个人而言,我不喜欢RAID不是备份的口号。字典上说:“如果需要,可以保留一个人,计划,设备等作为替代品。” 如果冗余量不够,它将无法替代。如果您不关心RAID提供的冗余,则最好不要使用它。至于它不能代替磁盘外和场外备份,那是另一回事,我同意(当然)。
Halfgaar 2014年

那么您对使用无冗余RAID条带的用户有何看法?在这种情况下,RAID阵列纯粹用于获得性能优势,这是使用IMO完全有效的方式。在我看来,RAID具有两个目的:1.通过对驱动器进行分组来提高速度;或者2.在发生以下情况时提供安全网: n个驱动器发生故障,确保数据仍然可用。
战争

实施RAID的任何人都可以根据自己的需求,速度,可靠性或两者的结合来选择要使用的RAID类型,但这仍然不能使RAID成为任何形式的备份解决方案。
战争

1
当人们说RAID不是备份时,他们并不是在谈论可用性。我认为您只是在玩文字游戏。:)
gparent

2

线程很旧,但是如果您正在阅读,请了解RAID阵列中的驱动器何时发生故障,请检查驱动器的寿命。如果您的RAID阵列中有多个磁盘,并且它们的使用期限已超过4-5年,则很有可能另一个驱动器将发生故障。***进行图像或备份**,然后再继续。如果您认为有备份,请对其进行测试以确保您可以读取并从中还原。

原因是,当剩余的驱动器全速旋转数小时和数小时时,您会承受数年的正常磨损。使用6年的硬盘数量越多,另一个硬盘因压力而失效的可能性就越大。如果是RAID5,并且损坏了阵列,那么可以很方便地进行备份,但是根据RAID控制器和其他硬件的类型,恢复2TB磁盘将需要8到36个小时。

如果所有驱动器都旧,我们会定期更换生产服务器上的整个RAID配置单元。为什么要浪费时间更换一个驱动器,然后等到一天,一周,一个月或两天下一个驱动器出故障。就像驱动器一样便宜,它只是不值得停机。


1

通常,当从信誉良好的代理商那里大量购买驱动器时,您可以要求驱动器来自不同批次,由于上述原因,这一点很重要。接下来,这正是RAID 1 + 0存在的原因。如果您在RAID 1 + 0中使用了6个驱动器,那么您将拥有9TB的数据并具有即时冗余,而无需重建卷。


在哪里有证据表明使用不同批次的驱动器这一部分绝非都市神话?同样,RAID 1并不能神奇地防止在重建过程中遇到无法读取的扇区。如果要防止这种情况,则可以使用RAID 6或带有3个镜像的RAID 1(有点贵)。
卡巴斯德,2015年

1
@kasperd我认为构成您的意见第一部分的问题与(显然)不完全相同:我应该“运行”新RAID 1对中的一个磁盘以减少发生类似故障时间的机会吗?
CVn 2015年

1

如果您的控制器在Linux上被dmraid识别(例如here),则可以使用ddrescue将故障磁盘恢复到新磁盘,然后使用dmraid而不是硬件控制器来构建阵列。

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.