所以我陷入了困境,我有一个存储项目,限制为 24 个主轴,并且需要大量随机写入(相应的读取端是纯顺序的)。需要驱动器上的每一点空间,n-1 raid-5 中总共约 13TB,并且必须快速运行,超过 2GB/s 的速度。
显而易见的答案是使用 Stripe/Concat (Raid-0/1),或者更好的是使用 raid-10 代替 raid-5,但由于我无法控制的原因,这是不允许的。所以我在这里寻求帮助,让次优配置尽可能好。
该阵列建立在直接连接的 SAS-2 10K rpm 驱动器上,由带有 4GB 缓存的 ARECA 18xx 系列控制器支持。64k 阵列条带和 4K 条带对齐的 XFS 文件系统,带有 24 个分配组(以避免因 raid 5 而受到一些惩罚)。
我的问题的核心是:在具有 6 个主轴/AG 的相同设置中,我看到写入时接近磁盘限制性能,每个主轴约为 100MB/s,在 12 个主轴时,我看到该性能下降到 ~80MB/s,在 24 个主轴时下降到 ~60MB/s。
我期望通过分布式奇偶校验和匹配的 AG,性能应该随着主轴数量而扩展,或者在主轴数量较少时性能会更差,但这个阵列却恰恰相反。
我错过了什么?
Raid-5 性能是否应随着磁盘轴数量而变化?
非常感谢您的回答和任何想法、意见或指导。
--比尔编辑: 提高 RAID 性能 我能找到的另一个相关线索在答案中讨论了一些相同的问题,但它仍然让我无法找到有关性能扩展的答案。
答案1
此处的限制是您的 RAID 控制器。随机写入就像一个大型缓存,而基于奇偶校验的 RAID 就像一个快速奇偶校验计算器。在本地连接的控制器上,向基于奇偶校验的 RAID 阵列(如 RAID 5 或 6)添加的磁盘越多,每个主轴的性能就越低。大型直接连接存储(超过 8 个驱动器左右)往往是 RAID 10,以避免此问题。使用基于奇偶校验的 RAID(5 或 6)的唯一原因是从更高的可用空间比率中受益。缺点是,如果您丢失了一个驱动器,如果 RAID 很大,重建将需要更多时间。
没有新硬件
如果您的硬件已修复,并且您需要使其尽可能正常工作,那么 RAID 10 将是最佳选择,但您将失去一半的可用空间。此外,虽然它乍一看似乎更具弹性,因为您可以在没有故障的情况下丢失多达一半的驱动器,但如果您丢失了错误的两个驱动器,您仍然可能会丢失数据。
本地连接存储的另一个选项是 ZFS。我不敢说我了解它的内部工作原理,但我的理解是它将完全忽略 RAID 卡并在底层磁盘上工作。如果配置正确,它对小写入奇偶校验的惩罚可能会较低。
新硬件
如果您有钱来解决这个问题,投资购买更好的 RAID 控制器会对您大有裨益。具有更多缓存和更快处理器的控制器。如果您决定使用基于奇偶校验的 RAID,最好创建多个 RAID - 最好是 3 组,每组有 8 个主轴。
甚至比这更好的是获得一些外部存储:具有存储控制器的存储设备可以处理所有缓存和奇偶校验计算,并且只需通过 SAS 或光纤通道访问存储。
答案2
任何RAID 5 不是最优的,24 磁盘 R5 阵列简直太愚蠢了,我并不是故意无礼,但大多数硬件阵列控制器都不会让如果您创建了一个 24 磁盘 R5 阵列,请考虑一下您可能在不知情的情况下丢失了多少数据。此外,如果您要进行任何类型的写入,RAID5 或 6 都不是前进的方向,事实上,添加更多磁盘轴可能只会减慢速度。
无论从性能还是可靠性的角度来看,您都需要尽快将其转换为 RAID 10,这确实是唯一的出路,其他任何方法都只是锦上添花。
答案3
这种规模的 RAID-5 可能会有问题(重建时间长,阵列故障几率增加)。您的随机写入速度根本不合理(可能是单个磁盘的带宽),也不会随主轴扩展。