题 在“远”布局中计算Linux mdadm RAID10阵列的正确条带大小


我正在从6个驱动器创建RAID10阵列。在近布局中创建时,例如

mdadm --create / dev / md2 --chunk = 64 --level = 10 --raid-devices = 6 --layout = n2 / dev / sda1 ...

检查系统报告的条带大小:

cat / sys / devices / virtual / block / md2 / queue / optimal_io_size

结果是196608,如预期的那样,例如3个数据驱动器(RAID10中总数为6的50%)x 64K块= 192K条带。

现在,在创建相同的数组时 --layout=f2 选项, optimal_io_size 报告 393216,例如两倍大。

现在, 据Nail Brown说 (mdadm raid10作者),

“far”布局在所有驱动器的前半部分以raid0类似排列放置所有数据,然后在所有驱动器的后半部分以类似布局放置第二个副本 - 确保块的所有副本都打开不同的驱动器

预计这会产生与raid0相似的读取性能,而不是全部驱动器,但写入性能要差得多,因为会有更多的驱动器头寻求。

因此,操作系统似乎建议我最好使用类似RAID0的条带大小(跨阵列中的所有磁盘),而不是“传统”RAID10条带大小(跨阵列中的半个磁盘)。这对LVM和文件系统对齐,条带/步幅调整等具有潜在的严重影响。但是,我从未见过将远程模式下的MDADM RAID10视为RAID0的任何建议。

题: 我在这里遗漏了什么,或者我是否正确将RAID10,f2视为RAID0,同时调整/调整RAID顶部的任何内容?


5
2017-08-31 16:29




建议阅读: serverfault.com/questions/139022/explain-mds-raid10-f2 - Andrew


答案: