由于太复杂的原因,我在某些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,因为条纹的大小是一样的吗?
更新:它不是一个降级arrays,它是一个完全支持的configuration。 阅读第一段的链接。
设置你的条带宽度高于64kB将是不理想的。
任何大小超过64kB的写入都将导致4次写入 – 一次写入一个磁盘,一次写入另一个,两次写入。
只需将您的条带宽度设置为64kB。
我在MD RAID的各种大小和级别上使用XFS而不是ext3进行了一些实验。 看来下面的公式适用于所有人:
# chunk is specified in mdadm create, block in mkfs stride = chunk / block stripe-width = ((slices - parity) * stride
RAID0 / 10 / 1E的奇偶校验为零,一个用于RAID5,另一个用于RAID6。
所以在我原来的问题中,条带宽度应该设置为48 (64kB块,4kB块,3片,零奇偶校验)。 当我使用这些设置时,mkfs.ext3不再提示stripe-width不能被stride整除。