由于太复杂的原因无法进入这里,我在某些 linux 系统上使用 3 磁盘 RAID1E。有关更多信息,请参见此处。
所以我的理解是,为了优化此卷上的文件系统布局,您使用以下计算:
chunk-size = 64kB
block-size = 4kB
stride = chunk / block = 16
stripe-width = stride * ( (numdisks)/2 ) = 16 * 1.5 = 24
但是,当我使用该计算来设置条带宽度时,mkfs.ext3 发出警告,它应该是 2 的幂。
所以我的问题是,我做得对吗?我是否应该将其视为标准的四磁盘 RAID10,因为条带大小相同?
更新:它不是降级阵列,而是完全受支持的配置。阅读第一段中的链接。
将条带宽度设置为高于 64kB 将不是最佳选择。
任何大于 64kB 大小的写入都将导致 4 次写入 - 一次写入一个磁盘,一次写入另一个磁盘,两次写入一个磁盘。
只需将条带宽度设置为 64kB。
我在各种大小和级别的 MD RAID 上使用 XFS 而不是 ext3 进行了一些实验。似乎以下公式适用于所有领域:
其中奇偶校验对于 RAID0/10/1E 为零,对于 RAID5 为一,对于 RAID6 为二。
因此,在我最初的问题中,条带宽度应设置为48(64kB 块、4kB 块、3 个切片、零奇偶校验)。当我使用这些设置时,mkfs.ext3 不再发出有关条带宽度不能被步幅整除的警告。
您从错误的地方开始优化。您需要从要优化的 I/O 大小开始(例如,您的应用程序读取/写入的块大小),并为此优化整个堆栈。我写了一篇关于这个确切主题的文章,解释了为什么存储堆栈和文件系统对齐很重要,您可能会发现它有帮助。