我正在考虑构建一个 24 1TB 磁盘 NAS 盒,但我不确定最好的驱动器配置是什么。我正在考虑使用 areca ARC-1280ML-2G 控制器,并将所有 24 个驱动器挂在上面。
由于我们存储在其中的数据类型,我希望将它们全部安装为一个卷。我们有一个疯狂的想法是配置 6 个 4 磁盘 RAID 5 卷,然后在这 6 个卷上执行软件 RAID 5。这意味着任何一卷都可能死在我们身上,而我们仍然不会丢失数据。
我应该指出,这是一个研发项目,我们有一个即将推出的应用程序,我们需要数十 TB 的存储空间才能快速且高度可用。但对于最初的研发阶段,我们可以接受一些风险。
这种配置的最佳解决方案是什么?对于 24 个 1 TB 磁盘,可能会有多个同时发生故障(或者在第一次故障后重建卷所需的时间内),所以我很难找到一个好的解决方案。
这正是我的日常工作……构建 Linux 存储服务器。
您想要的已经有一个 RAID 级别;它被称为 RAID 10。
近年来,专业级和消费级驱动器的 MTBF 增加了一个数量级,不可纠正的错误率保持相对恒定。该速率估计为 10^14 位,因此每读取 12 TB 一位,对于消费级 SATA 驱动器,来源.
因此,对于您的 24Tb 驱动器的每次扫描,统计上您将遇到至少 2 个单位错误。这些错误中的每一个都会触发 RAID5 重建,更糟糕的是,在重建期间,第二个错误将导致双重故障。
哇,RAID5 优于 RAID5?想讨论性能问题?你会有吨。您挂起这些的主机将让小猫计算奇偶校验,将该奇偶校验写入 3 个驱动器,然后计算该奇偶校验的奇偶校验并将其写入该组的第 4 个驱动器。哇!
让我们谈谈RAID10。它本质上是 RAID 1,但是您将驱动器分成两半并镜像。它具有容错性,因为您可以丢失 2 个驱动器并且仍然可以正常工作,而且性能非常出色。
如果您不需要大量的空间,但您有一个 24TB 的阵列,没有更好的事情可做,但它绝对必须启动,那么您可能会考虑 RAID60。它本质上是使用镜像驱动器集的 RAID6。您将丢失大约一半的驱动器,并且性能会很差,但您几乎可以保证数据会在那里。
真的,我会选择 RAID10。它表现良好并且工作正常。我赞同 Evan 的观点,即您可能不应该用那么多磁盘制作巨型 RAID 集,因为正如他所说,fsck 和 chkdsk 之类的东西将永远持续下去,但更重要的是在我看来,因为读取错误的统计可能性随着单个磁盘大小的增加。我建议每组 7-10 个磁盘。您可以使用该数量的心轴创建 3 个大小非常合适的 RAID 卷。
无论您选择哪个,请记住将几个磁盘放在热备盘中,以便您可以立即开始重建,而不是让阵列等待您更换它们。一旦磁盘死亡,时钟就会开始滴答作响,等待另一个磁盘消失。
为什么不是 RAID 1+0?这一切都在控制器级别处理......
我知道您说的是“研发”,但您也说的是“高度可用”。我会质疑 DIY 解决方案与购买现成的 SAN 设备来做到这一点的“节省”。当您的 DIY 解决方案出现问题时,您将处于无法联系寻求帮助的令人羡慕的境地。停机时间每小时花费您多少?您可以在停机费用中很快吃掉一些中层 SAN 设备的成本,而忽略与彻底丢失数据相关的费用。
不管你对底层磁盘做什么,我都不会创建一个那么大的文件系统。
文件系统损坏是一种真实的可能性(RAID 控制器问题、操作系统错误等)。在这么大的卷中,文件系统检查将花费很长时间。我强烈建议使用可以逻辑组合以显示为单个文件系统的多个卷(通过各种方式——你没有提到操作系统,所以我不能给你具体的想法)。如果您有一些文件系统损坏,您将丢失部分逻辑卷,但您仍然会“启动”。
举个例子:在 Windows 世界中,在一个 20TB NTFS 卷上运行 CHKDSK 将是SLOW。在那种环境中,我会创建多个较小的 NTFS 卷,并在逻辑上将它们组合成一个带有 DFS 的命名空间。
wazoox,答案很好我没有代表给他更多的加分,但我会添加以下内容。
RAID 6 或每 10 个磁盘至少 2 个实时奇偶校验磁盘,最多 16 个,也就是说,如果您可以花大约一天的时间,性能会受到您的 raid 重建的影响。如果你不能忍受退化,那么它必须是镜像条纹。
如果您要走 linux 路线,我会使用硬件 RAID 卡(带备用电池)或在磁盘盒中有一个 RAID 控制器。我同意 xfs 是 Linux 上的首选文件系统,但是请注意,如果您需要运行 xfs_check,xfs 上大约 50TB 的文件系统需要超过 16GB 的 RAM。
我会认真考虑一个好的 NAS 盒子,比如 NetApp,因为从长远来看,它们的工作量要少得多,这取决于您/存储管理员的时间对公司来说价值多少。
让 nfs/samba 表现良好是一门黑暗的艺术,你是要使用 10GB 以太还是只使用 1GB/秒的聚合?(不要买 Broadcomm 卡,尤其是 10GB 的卡)。
LVM2 很简单,但不要使用快照,因为它不快。
请记住,这需要一些时间的备份。
在系统投入生产之前测试系统可能发生故障的方式,并将其写在您和您的同事在出现问题时可以找到文档的地方。
这取决于您的读/写比率。我们使用许多 HP MSA70 外置 25 磁盘 SAS 驱动器机箱,并始终将它们创建为单个 RAID6 阵列,因为我们的读写比率为 99%:1%,因此我们不关心 R6 的写入速度是最慢的(仍然很快,只是与其他人相比没有那么好)。这样我们就有了 23 个磁盘可用的数据,非常好,就像非常好一样,随机读取和整体读取带宽优势,并且可以承受两次磁盘故障。
作为一个粗略的指导,一个 RAID5 阵列在一个阵列中不应包含超过 14 个磁盘,而 RAID6 最多应该有 54 个左右的磁盘 - 显然,阵列越大,读写性能和重建速度会较慢,但它可以是一个很好的权衡。
我会添加两个备用磁盘作为开始。
RAID 5 或 6 适用于随机读取或大量顺序读取和写入。如果您要获得大量小写入,请使用 RAID 10,因为 RAID 5+ 对小写入的影响是 4 倍。
如果您要打开写入缓存,请记住用电池支持它。