块大小是否会影响 Linux md 软件 RAID1 阵列的读取性能?

块大小是否会影响 Linux md 软件 RAID1 阵列的读取性能?

这是关于这个问题确定现有 RAID 阵列的块大小。

普遍的共识似乎是,区块大小不适用于 RAID1,因为它不是条带化的。另一方面,Linux RAID 维基声称它会影响读取性能。但是,我找不到任何基准测试/证明这一点。有人能指出确凿的文档来证明它会影响或不影响读取性能吗?

答案1

文章Raid 1 的最佳块大小和 zcav 基准已经研究了块大小的问题。尽管可以追溯到 2008 年,但结论是块大小根本没有区别。事实上,他发现内核实际上完全忽略了块大小。

我的结论是,块大小并不重要,并且对于 RAID-1 磁盘,性能考虑与普通磁盘相同,其中性能仅取决于扇区和块大小。

我的逻辑也是一样:我无法想象为什么内核需要两种相同的机制 - 块和块。据我所知,读取必须以块为单位进行,因为内核缓存是面向块的(这解释了上述文章中的发现)。块大小最多可以影响磁盘上的扇区分配,这意味着文件的分配是以块大小为单位进行的。对于执行此操作的内核,块大小(如果存在)将对磁盘碎片和文件大小产生影响,但对读取性能的影响很小或没有影响。

RAID 1 性能的唯一改进在于其冗余性,即读取请求分布在两个驱动器之间。但这与块大小无关。

答案2

Fedora 16 上的 linux mdadm 手册页具体说:

   -c, --chunk=
          Specify chunk size of kibibytes.  The default when creating an array is  512KB.
          To  ensure  compatibility  with earlier versions, the default when Building and
          array with no persistent metadata is 64KB.  This is only meaningful for  RAID0,
          RAID4, RAID5, RAID6, and RAID10.

所以,它对 RAID1 没有影响。

相关内容