以“远”布局计算Linux mdadm RAID10arrays的正确条带大小

我从6个驱动器创buildRAID10arrays。 在近布局中创build时,例如

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%)×64K块= 192K条带。

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

现在, 根据指甲布朗 (mdadm raid10作者),

“远”布局将所有数据放在所有驱动器的前半部分中,然后在所有驱动器的后半部分以类似的布局放置第二个副本 – 确保所有块的副本都处于打开状态不同的驱动器

这将会产生读取性能,这与raid0类似于全部驱动器的读取性能相当,但是由于将会有更多的驱动器磁头寻找,因此写入性能会大大降低。

所以看来操作系统是build议我最好使用类似RAID0的条带大小(在arrays中的所有磁盘上),而不是“传统”的RAID10条带大小(在arrays中的半个磁盘上)。 这对于LVM和文件系统alignment,条带/跨度调整等具有潜在的严重影响。但是,我从来没有看到任何build议,将远端模式下的MDADM RAID10视为RAID0。

问题:我在这里丢失了什么东西,还是我正确地把RAID10,f2当作RAID0alignment/调整RAID上的任何东西?