![BTRFS, RAID5 or RAID6 for data storage?](https://linux22.com/image/1551695/BTRFS%2C%20RAID5%20or%20RAID6%20for%20data%20storage%3F.png)
我需要为我的服务器设置存储。硬件是一个 5 托架机箱和 5 个 WD RED 8TB。
我已经读取了在发生 URE 事件的情况下,在一个 HD 完全故障后 RAID5(= 正常 RAID)重建中发生灾难性故障的统计概率。
这个计算器根据 WD 的规格,如果一个磁盘发生故障,成功重建的概率只有 4.1%。我知道对这类计算存在一些猜测,但我心中仍有一些疑问:
在“正常” RAID5(比如说 mdadm raid5)中,如果在重建期间出现 URE,是否意味着重建将被中止而没有其他可能性,或者重建将继续,而“仅”受影响的数据(跨条带)不一致?
BTRFS 及其日志机制会降低这种概率吗?
我的存储将存储视频和图片。当然,必须容忍一个驱动器故障,但我可以接受。成功的重建可能会带来一些损坏的文件,但它不能因为一个 URE 事件而停止。
答案1
RAID 不能保护数据,它只能在单个驱动器发生故障时潜在地减少停机时间。
首先,RAID 不能替代备份。如果您没有备份系统,那么一旦发生重建失败,RAID 系统就无法防止数据丢失。
RAID 允许从硬件故障中恢复。BTRFS 的日志系统允许从文件系统错误中恢复。它们不会互相影响。
RAID 6 比 RAID 5 更昂贵,并且可能允许从两个磁盘故障中恢复。
使用什么 RAID(如果有)的答案取决于阵列的用途。
对于操作系统,目标是持续运行,并且大小要求通常相对较小。镜像 (RAID 1) 设置中的两个驱动器非常适合此目的。RAID 1 的成本很高。基本上它是阵列中驱动器的一半。然后,将数据分开,RAID 5 或 6 是最经济高效的。“成本”是 RAID 5 的一个磁盘或 RAID 6 的两个磁盘。那么,基本上,您是否能承受将数据存储容量的总体大小减少一个或两个磁盘?
现在,回到 RAID 的目的。RAID 保护阵列上存储的任何内容的可用性。备份保护完整性和可用性。RAID 可防止驱动器损坏(使用 RAID 6 可防止两个驱动器损坏,使用更复杂的存储方案可防止更多驱动器损坏)。
备份的目的是保护数据。备份可以从一系列潜在灾难中恢复。无论你在哪里看到我使用备份这个词,我指的是使用你设计的系统创建的良好、经过验证的备份,该系统可以提供满足你需求的备份频率,以轮换方式确保你可以从“哎呀”错误中恢复(嘿,系统管理员,我 30 天前不小心删除了这个文件),并且副本存储在异地,这样你的数据就不会受到系统破坏类型灾难的影响。你的备份例程应该包括在每次备份后恢复一个随机文件,以确认备份是可读的。
由于驱动器空间不是无限的,而且备份可能会很昂贵,而且我们在这里讨论的是超级用户级别,因此假设您将不得不做出许多权衡。就我个人而言,我每年都会对外部驱动器进行重复备份,其中包含我不想丢失的内容。我有数 TB 的垃圾,我保留它们只是为了方便而不必再次下载。我保留的内容每周都会自动备份到外部驱动器。该驱动器每年复制两次。两个副本存储在异地。一份副本放在当地保险箱中。另一份放在家庭成员家中。
So, short answer. Backups to protect your data. RAID 6 to protect availability of your system.
Edit: Another way to view this is that RAID recovery is performed block level against disk sectors. File system journaling recovery tools are at the file level.