![大型 NAS 的 RAID 配置](https://linux22.com/image/486203/%E5%A4%A7%E5%9E%8B%20NAS%20%E7%9A%84%20RAID%20%E9%85%8D%E7%BD%AE.png)
我正在考虑构建一个 24 个 1TB 磁盘的 NAS 盒,但我不确定最佳驱动器配置是什么。我正在考虑使用 areca ARC-1280ML-2G 控制器,并将所有 24 个驱动器挂在上面。
由于我们要在其中存储各种类型的数据,我希望将它们全部安装为一个卷。我们有一个疯狂的想法,就是配置 6 个 4 磁盘 RAID 5 卷,然后在这 6 个卷上执行软件 RAID 5。这意味着任何一个卷都可能坏掉,我们仍然不会丢失数据。
我应该指出,这是一个研发项目,我们即将推出一款应用,需要数十 TB 的存储空间才能实现快速和高可用性。但对于初始研发阶段,我们可以接受一些风险。
这种配置的最佳解决方案是什么?对于 24 个 1 TB 磁盘,很可能会有多个磁盘同时发生故障(或在第一次故障后重建卷所需的时间内),因此我很难找到一个好的解决方案。
答案1
已经有您想要的 RAID 级别;它被称为 RAID 10。
近年来,专业级和消费级硬盘的 MTBF 增加了一个数量级,而不可纠正错误率则保持相对稳定。对于消费级 SATA 硬盘,该比率估计为 10^14 位,即每读取 12 TB 数据时出现 1 位错误,来源。
因此,统计上,每次扫描 24TB 硬盘时,您至少会遇到 2 个单比特错误。每个错误都会触发 RAID5 重建,更糟糕的是,在重建期间,第二个错误会导致双重故障。
答案2
这正是我每天的工作……构建 Linux 存储服务器。
- Areca 卡还可以。您可以在 RAID-6 中使用它,它将提供合理的安全性。购买可选的电池备用装置, 也。
- 使用企业级磁盘,而不是台式机硬盘。您将在服务器上多花 400 美元,但这是值得的。购买两个备用硬盘。不要乱用,使用相同型号的磁盘。
- 对于文件系统,使用西弗斯。开玩笑地说,ext3 及其同类产品根本无法胜任 16TB 以上的文件系统。即使发生严重崩溃,xfs_repair 在 20TB 卷上也会非常快(15 分钟,不会更多)。
- 最好使用左心室血管造影,它将简化存储管理,即使您不打算对其进行太多修改。
- 安装 areca 管理工具并编写一个 cron 作业,每天向您发送包含健康检查的电子邮件。
- 别忘了备份。RAID 不是备份;如果有人删除了重要文件,没有适当的备份,您将无法恢复。我个人使用rdiff-备份将所有重要数据保存在具有一个月历史记录的专用服务器上;您还可以在文件服务器上创建两个 RAID 卷,并在另一个卷上备份一个。
答案3
哇,RAID5 优于 RAID5?想讨论性能问题吗?你将有吨。挂载这些的主机将有小猫计算奇偶校验,将该奇偶校验写入 3 个驱动器,然后计算该奇偶校验的奇偶校验并将其写入该组的第 4 个驱动器。哇!
让我们来谈谈 RAID10。它本质上是 RAID 1,但您将驱动器分成两半并镜像。它具有容错能力,即使您丢失 2 个驱动器,也不会出问题,而且性能也非常出色。
如果您不需要大量的空间,但您有一个 24TB 的闲置阵列,但又无事可做,而且绝对需要启动,那么您可以考虑 RAID60。它本质上是使用镜像驱动器组的 RAID6。您将失去大约一半的驱动器,并且性能会很差,但几乎可以保证数据会存在。
真的,我会选择 RAID10。它性能好,工作正常。我同意 Evan 的观点,你可能不应该用那么多磁盘制作大型 RAID 组,因为正如他所说,像 fsck 和 chkdsk 这样的操作会花很长时间,但在我看来更重要的是,因为读取错误的统计可能性会随着单个磁盘大小的增加而增加。我建议每组使用 7-10 个磁盘。你可以用那么多主轴创建 3 个非常大小合适的 RAID 卷。
无论你选择哪种方式,请记住将几个磁盘放在热备用位置,这样你就可以立即开始重建,而不是让阵列等待你更换它们。一旦磁盘坏了,就会开始等待另一个磁盘坏掉。
答案4
我知道您说的是“研发”,但您也说的是“高可用性”。我怀疑 DIY 解决方案与购买现成的 SAN 设备相比,在“节省”方面是否更胜一筹。当您的 DIY 解决方案出现问题时,您将处于无人可求助的尴尬境地。停机每小时会给您带来多少成本?停机费用很快就会让您吃掉一些中端 SAN 设备的成本,这还不包括与数据完全丢失相关的费用。
无论您对底层磁盘做什么,我都不会创建那么大的单个文件系统。
文件系统损坏是真实存在的可能(RAID 控制器问题、操作系统错误等)。在如此大的卷中,文件系统检查将需要很长时间。我强烈建议使用多个卷,这些卷可以逻辑地组合成一个文件系统(通过各种方式——您没有提到操作系统,所以我无法给您具体的想法)。如果您的文件系统损坏,您将丢失部分逻辑卷,但您仍然可以“正常运行”。
举个例子:在 Windows 世界中,在一个装满文件的 20TB NTFS 卷上运行 CHKDSK 将会慢的在那种环境中,我会创建多个较小的 NTFS 卷,并使用 DFS 将它们逻辑地组合到单个命名空间中。