我有以下硬件:
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 控制器中设置这些卷时,我对对齐和条带大小有顾虑。我知道对于常规 HDD,正确对齐分区对于获得良好性能非常重要,我假设在设置 RAID 卷时也需要担心这一点?或者 RAID 控制器会确保对齐达到最佳状态吗?
我接下来关心的是这种对齐如何影响 LVM 卷。RAID 控制器是否会通知 LVM 驱动程序如何在 RAID 卷内正确对齐?
我有许多条带大小可供选择,从 4k 一直到 128k。条带大小的选择是否会影响 RAID 卷的对齐和/或分配大小,例如,如果我在将设置为 RAID 0 的 4 个磁盘的 RAID 组上选择 128k 条带大小,我是否应该将 RAID 卷大小设为 512k 的倍数?此外,对于 Linux 根分区和交换分区或仅用于一般用途,最佳条带大小是多少?
最后,RAID 控制器公开了一个 3 通道 SCSI 控制器,将我的负载分散到 3 个通道上是否有任何性能优势,还是只是为了支持更多的磁盘?
答案1
您需要记住最多 3 个对齐级别 - 1)。卷管理器,2)。卷分区,3)。文件系统。如果您不使用 LVM,则 1 无关紧要。如果您不使用 fdisk 对卷进行分区,则 2 也不相关。对于性能而言,最重要的对齐是 3。通过适当的对齐,您可能会看到性能提升高达 15%。
对于情况 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 级别。 您还可以在以下位置找到一些有用的信息此主题。
此外,您还可以在挂载文件系统时指定参数,从而进一步提高性能。以下是我在 18TB xfs 文件系统中使用的参数“noatime、attr2、nobarrier、logbufs=8、logbsize=256k”。但请注意,这些不是通用规则,如果使用不当可能会损害系统的可靠性(尤其是“nobarrier”)。
还有一件要记住的事情是,如果您计划将来扩展任何这些 RAID 阵列,您应该在创建文件系统时考虑到这一点,因为它将立即影响您的完美对齐 ;-)
希望这能为您指明正确的方向。玩得开心 :-)