我有以下硬件:
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控制器中设置这些卷时,我担心alignment和条纹大小。 我知道一个普通的硬盘是很重要的分区正确alignment的良好性能,我假设我也需要担心这一点,当设置RAID卷? 或者RAID控制器确保alignment是最佳的?
我的下一个担心是这种alignment如何影响LVM卷。 RAID控制器是否会通知LVM驱动程序如何在RAID卷内正确alignment?
我有许多条带大小的select,从4k一直到128k。 将select的条带大小影响我的alignment和/或RAID卷的分配大小,例如,如果我selectRAID磁盘组上的4个磁盘,将在RAID 0中设置128k条带大小,我应该使我的RAID卷大小512k的倍数? 另外,什么是一个Linux根和交换分区的最佳条带大小或只是一般的使用?
最后,RAID控制器公开了一个3通道的SCSI控制器,是否有任何性能的好处,我的负载分裂了3个通道,或者只是这样它可以支持更多的磁盘?
你需要记住多达3个层次的alignment – 1)。 卷pipe理员,2)。 卷分区,3)。 文件系统。 如果你不使用LVM,那么1是不相关的。 如果你不是用fdisk分区你的卷,那么2也是不相关的。 性能最重要的alignment方式是3.使用适当的alignment可以使性能提boost达15%。
对于案例1和案例2来说,一个好的一般规则就是alignment一个兆字节的边界。
1)。 LVM通常做得很好:a)将元数据放在卷的末尾; b)给你指定元数据大小的选项(例如“pvcreate -M2 -metadatasize 2048K -metadatacopies 2”)
2)。 如果您需要再使用fdisk对这些卷进行分区,请尝试保留MB边界。 现代的Linux fdisk版本有这个选项以及gparted的最新版本。
3)。 文件系统的alignment是最重要的。 我有alignmentxfs和ext3的经验(ext4应该类似于ext3),你需要在这里做一些math运算,然后在创build文件系统时指定正确的参数。 查看特定参数的文档,即所谓的“条带宽度”。 小心,尽pipe有解释 – 取决于fstypes它是以512B块或以字节表示,所以你将需要做相应的计算。 这种解释还取决于RAIDarrays中的驱动器数量和RAID级别。 你也可以在这个线程中find一些有用的信息。
另外,可以在安装文件系统时指定参数,以进一步提高性能。 以下是我使用的18TB xfs文件系统“noatime,attr2,nobarrier,logbufs = 8,logbsize = 256k”的参数。 但要小心,这些不是普遍的规则,如果使用不当,可能会危及系统的可靠性(特别是“nobarrier”)。
另外需要注意的是,如果您计划将来扩展任何这些RAIDarrays,则在创build文件系统时应考虑到这一点,因为它将直接影响到您的完美alignment方式;-)
我希望这能指出你正确的方向。 玩的开心 :-)