我正在组装一个便宜的 NAS 盒,我读过一些关于 raid5 并不像我想象的那么强大的文章。在继续之前,我想得到以下问题的答案。我建议进行以下设置:1 个磁盘用于操作系统,3 个磁盘用于阵列,Linux 软件 raid 将阵列作为 raid 5 进行管理,顶部的 LVM 用于划分分区,某些分区上采用某种形式的加密(可能是 encfs,因为我习惯了)。
在 Linux 下,将三个磁盘作为 raid 5 进行管理,如果其中一个磁盘发生灾难性故障,并且另一个磁盘上也发生不可恢复的读取错误,是否可以恢复阵列上除发生不可恢复读取错误的块之外的所有数据?我可以从移除一个磁盘的 raid 阵列中读取数据吗?
如果其中一个磁盘上有坏扇区,我可以确定坏扇区位于哪个磁盘并从另外两个磁盘恢复数据吗?
如果我加密整个 RAID 阵列,这会改变上述答案吗?我对加密的理解很差,但我认为加密数据中的任何错误都会对其余数据产生连锁影响。我想这取决于所使用的加密。
答案1
简短的回答是,是的,这要视情况而定,是的。视情况而定。最后,你是对的,这要视情况而定。
我不知道您从哪里读到 RAID5 不够强大。它比使用 1 驱动器系统更强大;尤其是在价格方面。如果您能负担得起 RAID10(RAID1+0),那么这可能是您能得到的最好的配置,除非您投资一些比您能负担得起的更昂贵的配置。不过,您可能是亿万富翁,可以买得起任何您想要的东西。鉴于您选择软件 RAID 而不是硬件 RAID,我倾向于不选择。双方都有论据,但如果可以,请使用硬件 RAID。
RAID5 具有出色的冗余性和可靠性。它在所有驱动器上使用块级条带化和奇偶校验,因此,在 3 驱动器 RAID5 中,子系统所能承受的最大损坏是一块故障驱动器。如果磁盘上有读取错误,则取决于读取错误的类型。如果是坏块,即坏驱动器,那么,是的,您仍然可以读取数据,只要只有一个驱动器出现故障。如果两个驱动器都出现故障,您可能会很幸运,但最好尽快更换可疑驱动器。
如果磁盘上有坏扇区,您可以像常规驱动器一样运行常规磁盘检查实用程序,但修复坏扇区很棘手,而且不会对 RAID5 配置造成问题。通常,拔出驱动器并让其自动重建将解决您的大部分问题。如果没有,那么您需要更换驱动器。
注意:你对扇区故障和坏位的担心太多了。除非你使用的是一批旧的 IDE 硬盘,你必须把它们放在冰箱里才能防止它们发生故障,否则你遇到这些问题的可能性更多的是偏执,而不是统计异常。
无论加密与否,重建驱动器都不会有问题。系统将像常规 RAID5 子系统一样看到加密的 RAID5 子系统,因为加密的是数据,而不是 RAID5 配置。但是,如果您使用软件 RAID,并且加密了操作系统驱动器,而操作系统驱动器发生故障,那么您就会遇到问题。
最后,我建议您阅读更多有关 RAID 的内容以获得更好的理解:维基百科文章
注意:RAID5 确实有其局限性,其他 RAID 级别更适合其他情况。
答案2
这里没有提到的一个问题是 MTBF:平均故障间隔时间。一段时间后,所有磁盘都会发生机械性能下降。
与 RAID4 相比,RAID4 具有专用的奇偶校验磁盘,该磁盘也接收大多数写入并且是第一个损坏的磁盘,而 RAID5 则将奇偶校验分布在所有磁盘上。
因此,当最终一个磁盘坏掉时,系统仍可以运行,但性能会下降。但其他磁盘也会受到同样的影响。当新磁盘初始化和写入时,所有其他磁盘都会陷入密集读取,然后,通常会遇到坏块。
然后,需要从备份中恢复。因此对于这种情况:尽早更换磁盘!
是的:我在现实生活中遇到过这种情况......