我一直在尝试确定 RAID-50 卷的正确条带宽度,但在 Google 搜索或实证测试中均未成功。该卷由 4 个磁盘跨度组成,每个磁盘跨度包含 6 个磁盘。如果我理解正确的话,每个单独的跨度都是一个 RAID-5 卷,并且 4 个跨度使用 RAID-0 组合在一起。但是,当我将条带宽度从 2 变为 20 时,我没有看到任何明显的效果。有什么建议吗?
答案1
虽然我意识到这已经是一年多了,但我最近遇到了同样的问题并得出了不同的结论,并想将其添加到后人中。
不幸的是,我认为这里提到的 FusionIO 文章可能是错误的。首先,他们的表格显示,要找到 raid50 上承载数据的磁盘数量,您需要取“mirrored_sets”的数量并减一。但是表格附近还有以下文字:
- mirrored_sets = 用于形成更高级别组的 raid 1 镜像集的数量
问题是 raid50 没有任何“raid 1 镜像集”,整个想法听起来有点可笑。
但更重要的原因是,我偶然发现了一个较新的帖子,其中包含了 ext 大师 (Andreas Dilger) 的反馈。即使不考虑声誉,该帖子中的解释对我来说也更有意义。
你会发现这里,但是为了保险起见,我将把关键部分粘贴在下面...
>> DS: Based on my understanding of what stride and stripe-width set,
>> it seems to me that it should be calculated the same as it would
>> be if there were no multiple-level RAIDing involved. For example,
>> given a RAID 50 made up of two 3+1 RAID 5s striped together (so 8
>> disks total) with a 512k chunk size and 4k block size, the stride
>> should be 128 (512 / 4) and the stripe-width should be 768
>> (stride * 6 data disks).
>
> AD: Strictly speaking, you only need a stripe-width of 384 (stride * 3
> data disks) since this is the minimum read-modify-write boundary.
Ah, right. Thanks, I was over-thinking it.
HTH,马克
答案2
在网上搜索后,我发现了这一行(http://kb.fusionio.com/KB/a43/filesystem-tuning.aspx) 表示嵌套 RAID 级别中的条带宽度应基于跨度/组的数量。在我的例子中,由于我在 RAID50 中有 4 个跨度,因此条带宽度(如 XFS 中使用的)为 3(n-1,其中 n 是跨度的数量)