1x - Areca ARC-1680IX-24 PCIe x8 SAS RAID Card 24x - Seagate Barracuda LP 2 TB 5900RPM SATA 3 GB/s 32 MB Cache 3.5-Inch Internal Hard Drive ST32000542AS
我计划在RAID控制器上设置以下卷.
Volume Info for RAIDSET #1,4x 2tb drives: V#1 RAID10,10gb - 4k stripe size V#2 RAID10,3tb - 4k stripe size V#3 RAID0,2tb - 128k stripe size Volume Info for RAIDSET #2,6x 2tb drives: V#4 RAID0,300gb - 4k stripe size V#5 RAID5,7.8tb - 64k stripe size Volume Info for RAIDSET #3,6x 2tb drives: Volume Info for RAIDSET #4,6x 2tb drives: V#6 RAID50,20tb or RAID60,16tb - 128k stripe size
当我在RAID控制器中设置这些卷时,我关注对齐和条带大小.我知道使用常规硬盘驱动器将分区正确对齐以获得良好性能非常重要,我假设在设置RAID卷时我还需要担心这个问题吗?或者RAID控制器是否确保对齐最佳?
我的下一个问题是这种对齐如何影响LVM卷. RAID控制器是否通知LVM驱动程序如何在RAID卷中正确对齐?
我可以选择多种条纹尺寸,从4k一直到128k.条带大小的选择是否会影响我的RAID卷的对齐和/或分配大小,例如:如果我在具有将在RAID 0中设置的4个磁盘的RAID集上选择128k条带大小,我应该将我的RAID卷大小设置为512k的倍数吗?另外,linux root和swap分区的最佳条带大小是什么,或者只是一般用途?
最后,RAID控制器公开了一个3通道SCSI控制器,在3个通道中分配我的负载是否有任何性能优势,或者只是因为它可以支持更多磁盘?
解决方法
对于情况1和2,一个好的一般规则是与兆字节边界对齐.
1). LVM通常做得很好:a)将它的元数据放在卷的末尾,b)给你一个指定元数据大小的选项(例如“pvcreate -M2 –Metadatasize 2048K –Metadatacopies 2”)
2).如果您需要再次使用fdisk对这些卷进行分区,请尝试坚持MB边界.现代Linux fdisk版本具有此选项以及最新版本的gparted.
3).对齐文件系统是最重要的.我有对齐xfs和ext3的经验(ext4应该类似于ext3),你需要在这里做一些数学运算,然后在创建文件系统时指定正确的参数.查看特定参数的文档,即称为“条带宽度”的文档.使用解释时要小心 – 根据fs类型,它可以用512B块或字节表示,因此您需要相应地进行计算.此解释还取决于RAID阵列中的驱动器数量和RAID级别.您也可以在this thread中找到一些有用的信息.
此外,您可以在安装文件系统时指定参数,以进一步提高性能.以下是我在18TB xfs文件系统中使用的参数“noatime,attr2,nobarrier,logbufs = 8,logbsize = 256k”.但要小心,这些不是通用规则,如果使用不当可能会损害您系统的可靠性(尤其是“nobarrier”).
另外要记住的是,如果您计划将来扩展任何这些RAID阵列,您应该在创建文件系统时将其考虑在内,因为它会立即影响您的完美对齐;-)
我希望这能指出你正确的方向.玩得开心 :-)