mdadm Chunk 参数如何转换为 SNIA 定义?

mdadm Chunk 参数如何转换为 SNIA 定义?

的手册页mdadm描述了一个-c, --chunk=参数,如下所示,该参数似乎与 RAID 0 条带大小有关。但是,SNIA 对 RAID 0 参数的定义不是单个值,而是由三个值组成:块大小、条带深度和扩展条带长度。我很好奇这个块参数如何转换为 SNIA 定义的术语。我遇到的最大问题是“Strip_ Depth”与“Strip长度”。

如果我运行mdadm ... -c 32K一个由 8 个磁盘组成的 RAID 0 阵列,扇区大小为 4K,那么它会创建一个“条带深度”为 32K(8 个扇区)的阵列,并且“条带大小”是其中的 8 个吗?或者它会创建一个“Strip_Depth”为 4K(1 个扇区)的阵列和一个“Strip长度”为 8,它们合在一起形成一个“条带大小”为 32K 吗?

手册页片段:

      -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.

              RAID4, RAID5, RAID6, and RAID10 require the chunk size to be a power of 2.  In any case it must be a multiple of 4KB.

              A suffix of ’M’ or ’G’ can be given to indicate Megabytes or Gigabytes respectively.

来自 SNIA 命令 RAID 磁盘数据格式规范,版本 2,第 4.2.1 节 RAID-0 简单条带化:

SNIA RAID-0 简单条带化

答案1

从:https://raid.wiki.kernel.org/index.php/RAID_setup#Chunk_sizes看起来,Chunk 大小等于“Strip_Depth”,而不是“Strip尺寸”。

RAID-0

数据几乎是“并行”写入阵列中的磁盘的。实际上,块大小的字节是串行写入每个磁盘的。如果您指定 4 kB 的块大小,并将 16 kB 写入三个磁盘的阵列,则 RAID 系统将并行将 4 kB 写入磁盘 0、1 和 2,然后将剩余的 4 kB 写入磁盘 0。对于大多数阵列来说,32 kB 的块大小是一个合理的起点。但最佳值在很大程度上取决于所涉及的驱动器数量、您在其上放置的文件系统的内容以及许多其他因素。对其进行试验,以获得最佳性能。

相关内容