不要害怕突袭

2020-05-24 22:23:04

我在互联网上感觉到这样一种情绪,即RAID是危险的,您的RAID阵列在重建过程中失败的可能性几乎是确定的,因为硬盘驱动器已经变得太大了。

我认为没有什么比真相更离谱的了,我想要破除这个神话。

尤其是对于家庭用户和小型企业而言,RAID阵列仍然是在单一位置存储大量数据的可靠而高效的方式。

在互联网上可以找到很多关于家里的人丢失了他们的突袭阵列的恐怖故事。这些故事可能导致了对突袭行动总体上的负面态度。

你可能会指责我是受害者,但在许多情况下,我确实想知道这些事件是不是由于用户错误1,由于运气不好或实际的突袭造成的问题。报道中有一种偏见:你不会听到无数没有问题的人的意见。

无论如何,损害已经造成,但我仍然认为(软件)RAID是非常好的。

在这篇文章中,它认为随着驱动器变得更大,但不是更可靠,您将看到更多无法恢复的读取错误。更多的产能意味着更多的行业,因此其中一个行业变坏的风险也更大。

URE是指硬盘无法读取扇区5的事件。对于像我这样的老年人来说,这听起来像是坏扇区的定义。本文认为,平均每读取12.5TB的数据就会遇到一个URE。

根据ZDNET活动的逻辑,仅仅从14TB驱动器复制所有数据可能是不可能的,因为您可能会在完成复制之前命中URE/坏扇区。

对于RAID阵列来说,这是一个非常大的问题。RAID阵列重建包括完整读取所有剩余驱动器的内容2。因此,您在RAID重建期间一定会命中URE。

好消息是,你不必担心这一切。因为这不是真的。

实际上,硬盘并不是那么不可靠。相反地。我想说,他们非常可靠。看看Backblaze硬盘的统计数据就知道了。

ZDNET这篇声名狼藉的文章的预测并没有成为现实。硬盘的URE规范描述了最坏的情况,似乎更多地是关于市场营销(一种区分企业硬盘和消费者硬盘的方式),而不是关于现实。

如果ZDNET的文章是真的,我本人应该会遇到很多问题,因为许多RAID阵列擦洗/巡逻读取已经跨各种RAID阵列完成。

如果RAID阵列中的一个驱动器出现故障,而该阵列只能处理一个驱动器故障,那么确保所有剩余的驱动器不会遇到任何读取错误,这一点非常重要。因为冗余丢失,所以由于坏扇区导致的任何读取错误可能意味着整个阵列丢失或至少一些文件被破坏7。

每个RAID阵列都支持擦除。这是一个读取RAID阵列的每个扇区的过程,实际上会导致读取所有硬盘驱动器的所有扇区。

擦除是提前检查坏扇区的过程。如果在硬盘上发现坏扇区,则可以更换该驱动器,以便它在将来可能的重建过程中不会造成问题。更换驱动器本身将导致重建,但假设擦除没有找到任何具有坏扇区的其他驱动器,则重建将是正常的。

如果一个RAID阵列没有经过常规的清洗,那将会是一场灾难。坏扇区可能在其他驱动器之一上堆积,当驱动器实际出现故障时,整个阵列可能会因为剩余驱动器(其中一个)上未检测到的坏扇区而丢失。

如果您希望以可靠的方式在RAID阵列上存储数据,则需要确保定期清理该阵列。即使你不使用RAID,我也建议每月对你拥有的每个硬盘进行一次长时间的智能测试。

默认情况下,Ubuntu上的Linux软件RAID阵列每周擦除一次。有关详细信息,请查看/etc/cron.d/mdadm的内容。

如果您在Linux上使用ZFS,如果您运行Ubuntu,则会在每月的第二个星期日自动清理您的阵列。

默认情况下,Synology或QNAP等NAS供应商已启用数据擦除。请考虑您的特定NAS的手册来调整频率。我建议每个月至少在晚上擦洗一次。

我注意到互联网上有很多人声称你永远不应该使用RAID5,但我不同意。这完全要看情况而定。在成本和风险之间找到平衡很重要。

这一页可以追溯到2003年,它主张不要使用RAID5,但它关注的是企业环境,即使在那里我也看到了它的用途。

对于具有五个或更少驱动器的小型RAID阵列,我认为RAID 5仍然非常合适。特别是如果您运行的是小型4机架NAS,使用RAID 5完全有意义。您可以在容量和可用性成本之间取得很好的平衡。

并不建议创建更大的RAID 5阵列。与单个驱动器相比,具有8个驱动器的RAID阵列发生驱动器故障的可能性是单个驱动器的8倍。您将单个驱动器出现故障的风险乘以8。对于较大的阵列,双驱动器故障成为严重风险。

这就是为什么真正推荐对较大的RAID阵列使用RAID 6的原因,因为RAID 6可能会导致两个驱动器同时发生故障。我过去使用过RAID6,我使用RAIDZ2(ZFS)作为我当前NAS的基础。

我还在我的一台服务器上运行8驱动器RAID5,该服务器托管的数据不是那么重要,我仍然希望保留,不想丢失,但不是不惜一切代价。这一切都是关于风险和成本之间的平衡。也请阅读这篇文章的附言,你会喜欢的。

诚然,在重建过程中,硬盘会更加紧张,但除非RAID阵列也在大量使用,否则驱动器上的负载不会那么大:数据是按顺序读取的,这在驱动器上非常容易。

RAID重建性能主要由驱动器的大小决定,而不是由RAID阵列3中的驱动器数量决定。

几年前,我运行了一个基于1 TB驱动器的20驱动器RAID 6,它在5小时内完成了重建。最近,我在RAID 5中测试了8个驱动器的重建(使用相同的驱动器),也花了近5个小时(4h45m)。

RAID 5/6';写入孔经常被认为是您应该害怕的东西。

基于奇偶校验的RAID(如RAID 5和RAID 6)可能会受到称为写入漏洞的问题的影响。简化:如果计算机突然断电,则可能会中断对RAID阵列的写入。这可能会导致对RAID阵列的部分写入,使其处于不一致状态。

顺便说一句,我总是建议您使用UPS(备用电池)保护您的NAS,这样您的服务器就可以在电池耗尽而断电之前以干净的方式关机。

ZFS RAIDZ不受写入漏洞问题的影响,因为它先将数据写入日志,然后再将数据写入实际阵列4。

Linux MDADM软件RAID还通过使用位图(默认情况下启用4)来防止写入漏洞现象。

通过对高速缓存使用备用电池,也可以保护硬件RAID不受此影响。一旦计算机重新开机,高速缓冲存储器中的数据就会写入磁盘。

我认为很多突袭恐怖故事是因为人们可能永远不会注意到任何问题,直到为时已晚,因为他们从来没有设置任何形式的警报(通过电子邮件或其他方式)。

理想情况下,您还应确保您的系统监控硬盘的智能数据,并在关键数字开始上升(重新分配的扇区计数和当前挂起的扇区计数)时发出警报。

这也是个人反思的时刻。您是否运行RAID阵列?你设置警报了吗?或者,您的RAID阵列会不会此时此刻出现故障,而您却不知道?

无论如何:我认为缺乏适当的警报是陷入RAID麻烦的好方法,但这不在RAID中。任何不受监控的存储解决方案都是一场等待发生的灾难。

如果RAID阵列出现故障,所有数据都将丢失。有些人对这种风险感到不舒服。他们宁愿丢失一些驱动器的内容,但不是全部。

UnRAID和SnapRAID等解决方案使用一个或多个专用硬盘来存储冗余(奇偶校验)数据。其他硬盘使用您选择的文件系统进行格式化,可以像访问普通硬盘一样进行访问。虽然我没有使用此产品的经验,但StableBit DrivePool的工作方式似乎与此类似。

如果您有六个硬盘,即五个数据驱动器和一个奇偶校验磁盘,则丢失两个驱动器将导致数据丢失,就像RAID 5一样。但是,其余四个驱动器上的数据仍将完好无损。数据丢失仅限于相当于一个驱动器的数据。

因此减轻了与常规软件RAID相关的全有或全无风险。我自己并不认为这些风险没有那么大,但UnRAID和SnapRAID是很受欢迎的产品,我认为它们是合理的替代品。

将您的数据存储在任何类型的RAID阵列上都不能替代备份。

如果要保护数据,仍应将数据复制到其他存储。您可以选择只备份所有数据的子集,但至少您承担了明智的风险。

我希望我已经证明了为什么RAID仍然是有效和可靠的数据存储选项。

在撰写本文时,我在我的8磁盘RAID5阵列(基于2TB驱动器)上运行了清理。我的服务器只有在我需要的时候才会开机,当关机时,它们很容易错过定期的清理窗口。

为了实践我所宣扬的,我进行了一次洗礼。瞧,其中一个驱动器被踢出了我的Linux软件RAID阵列。难道你不喜欢这种讽刺吗?

SD 0:0:4:0:[SDE]标记#29失败结果:HOSTBYTE=DID_OK driverbyte=DRIVER_SENSEsd 0:0:4:0:0:[SDE]标记#29检测密钥:介质错误[当前]SD 0:0:4:0:[SDE]标记#29添加。检测:未恢复的读取错误sd 0:0:4:0:[sde]标记#29 cdb:读取(10)28 00 9f 42 9e 30 00 04 00 00print_req_error:严重介质错误,设备sde,扇区2671943216。

该驱动器显然已被踢出,因为该驱动器遇到了坏扇区。快速检查智能数据发现,300多个扇区已重新映射,但其中存储的数据无法恢复,从而导致读取错误。

在用备用更换更换此故障驱动器后,我开始了重建过程,该过程耗时4小时20分钟。我的RAID 5已经重建,现在完好无损。

如果像这样的活动不能让人明白擦洗是很重要的,我不知道还有什么会。

有时我会读到人们用来存储的硬件,我会想起约翰·格伦的这句话:“我完全能感觉到,如果你准备推出,你会有什么感觉,因为你知道你坐在200万个部件之上--这些部件都是由政府合同上出价最低的投标人建造的。”--↩。

当您向RAIDZ(2/3)VDEV添加更多驱动器时,ZFS重建或恢复程序似乎会变慢。我不确定较新的zfs版本是否仍是这种情况。-↩

ZFS和MDADM都会因为使用日志/位图而影响性能。这两种解决方案都支持使用SSD来加速日志/位图,以消除此性能影响。大多数家庭用户可能不会需要这个。↩。

驱动器可以存储的最小存储单位,对于较旧、较小的驱动器,通常为4K或512B。-↩。

这些硬盘位于数据中心,有条件环境,这可能是您在家里没有的。但只要你把硬盘的温度控制在一定范围内,我认为这没什么大不了的。↩。

ZFS集RAID解决方案和文件系统于一身,可以准确地告诉您哪个文件受到影响。这是一个很好的功能。-↩