所以我被困在一个angular落里,我有一个存储项目被限制为24个主轴,并且需要大量的随机写入(相应的读取端是纯序列的)。 需要我的驱动器上的每一个空间,总共有13TB的n-1 raid-5,而且必须快速超过2GB / s。
显而易见的答案是使用Stripe / Concat(Raid-0/1),或者更好的是用raid-10代替raid-5,但是由于我无法控制的原因,这是不允许的。 所以我在这里寻求帮助,以获得最佳的configuration,以尽可能好。
该arraysbuild立在直接连接的SAS-2 10K rpm驱动器上,由具有4GBcaching的ARECA 18xx系列控制器支持。 64karrays条纹和一个4K条纹alignment的XFS文件系统,有24个分配组(为了避免一些被突袭5的惩罚)。
我的问题的核心是:在与6锭/ AG的相同的设置,我看到写在磁盘有限的性能,每锭100MB / s,在12锭,我看到下降到80MB /秒和24 〜60MB /秒。
我认为,在分布式平价和匹配AG的情况下,性能应该随着主轴数量而变化,或者在小主轴数量情况下会变得更糟,但是这个arrays正好相反。
我错过了什么?
应该Raid-5性能与主轴#的规模?
非常感谢您的答复和任何想法,意见或指导。
– 记账编辑: 提高RAID性能我find的其他相关的线程讨论了答案中的一些相同的问题,尽pipe它仍然给我一个关于性能缩放的答案。
你的限制是你的RAID控制器。 随机写入就像一个大的caching,以及基于奇偶校验的RAID,就像一个快速校验计算器一样。 在本地连接的控制器上添加到基于奇偶校验的RAIDarrays(如RAID 5或6)上的磁盘越多,每个主轴的性能就会越低。 大型直连存储(8个驱动器左右)往往是突袭10,以避免这个问题。 使用基于奇偶校验的RAID(5或6)的唯一原因是受益于更高的可用空间比率。 缺点是,如果你失去了驱动器,如果RAID是一个大的RAID,重build将需要更多的时间。
如果你的硬件是固定的,你需要尽可能地做到这一点,那么你的最佳性能来自RAID 10,但是你会失去一半的可用空间。 此外,虽然起初它似乎更具弹性,因为如果您失去了多达一半的驱动器而没有发生故障,但是如果您丢失了错误的两个驱动器,仍然可能会丢失数据。
本地附加存储的另一种select是ZFS。 我并不知道它的内部工作原理,但我的理解是,它将完全忽略RAID卡并在底层磁盘上工作。 如果你正确地configuration它,那么对于小的写入来说,它可能会有一个较低的处罚。
如果您有足够的钱来解决这个问题,那么您可以投资更好的RAID控制器。 有更多的caching和更快的处理器的东西。 如果您决定使用基于奇偶校验的RAID,则最好使用多个RAID,最好是每组8个主轴。
甚至比这更好的是获得一些外部存储器:有一个存储控制器可以处理所有的caching和奇偶校验计算,并且允许通过SAS或光纤通道访问存储器。
任何 RAID 5是次优的,一个24磁盘的R5arrays是愚蠢的,我不是故意粗鲁,但大多数硬件arrays控制器不会让你创build一个24磁盘R5arrays,想想你有多less数据可能会失去,甚至不知道它。 另外,如果您正在进行任何types的写入,RAID5或6不是前进的方向,事实上添加更多的主轴可能会减慢速度。
无论从性能还是可靠性angular度来看,您都需要尽快将其转换为RAID 10,这实际上是唯一的出路,其他的任何事情都只是在磨砺。
什么是不同的广泛使用的RAID级别,我应该什么时候考虑他们?
在这个规模的RAID-5可能会有问题(重build时间,增加arrays故障的机会)。 你的随机写入速度根本不合理(可能是单个磁盘的带宽),也不会随着主轴的变化而变化。