我正在计划在XFS文件系统上使用RAID 0 + 1(或RAID 10,RAID 5)的Maildir存储,并且将使用RAID将使用的条带单位和宽度创buildXFS。
我不确定RAID条带大小,但默认值是我的RAID系统中的128KB。 如果我为Maildir存储使用了128KB的条带大小,是否会浪费一个小于条带大小的文件的空间?
我认为Maildir中文件的平均大小是10KB,那么对于这种环境来说,条带大小是最好的?
不,您不会通过调整RAID条带大小而损失(也不会获得)任何空间。 条带大小是关于告诉你的RAID系统如何为I / O操作分配数据。
如何查看条带大小取决于RAID级别。
对于奇偶校验计算RAID(4,5,6),小于条带大小的写入会导致读取 – 修改 – 写入周期,因为奇偶校验总是为整个条带计算的。 所以,如果你在128k条带上有10k的写操作,就会导致raid读取128k的数据,修改相关扇区的内存,重新计算奇偶校验,并写出整个条带。 坏事(TM)。
对于RAID sans奇偶校验(0,1,多镜像1),条带(和磁盘的数量)决定了每个I / O由单个主轴完成多less工作(统计数据)(谎言,谎言和统计数据)。 如果你有大的顺序I / O,那么大的条带是好的,因为RAID中的每个磁盘都会得到一个很好的连续的数据块来读/写。 如果你做了很多的小文件访问,那么更小的条带就更好了,因为更有可能的是,两个独立的I / O将进入两个不同的主轴并且将被并行处理。
理论上这么多,实际上最好的办法是尝试不同的尺寸和testing。 如果允许远程访问系统的磁盘,则放弃Maildir文件系统的RAID5 / 6的想法。 读取 – 修改 – 写入的小文件损失会损害您的性能。
还有一件事:阅读本主题关于在RAID上调整XFS以获得高I / O(最高邻居为1M IOP)。
我会试图坚持使用4KB的默认XFS块大小,因为它使用延迟分配,所以通过使用更小的大小,您将看到一些非常实际的效率。 我当然不会担心试图匹配maildir文件的大小,无论如何,你会疯了,让FS做它的工作。