Linux:如何在硬件RAID上alignment分区和文件系统

我有一个带有Perc 6 / i和4x 15.5k SAS驱动器(512字节块大小)的testing盒(PowerEdge 2950)。 这些磁盘位于单个RAID 5虚拟磁盘中,大小为64 KB。

我正在创build一个跨越整个驱动器的单个testing分区。 是否应该与64KB块标记或512字节块大小alignment? 如果更高版本,分区可以从2048字节开始到单个虚拟磁盘,这意味着它将从第一个驱动器上的第二个空闲块开始(我假设)?

另外,我还要添加另外两个驱动器,并在稍后的date重新创buildRAID虚拟磁盘以进行更多的testing,如果分区创build在6×512字节,那么从3072字节?

我已经阅读了几个类似的问题,但我从这些看不到,RAID卷的块大小可能与分区alignment有关,使用单个驱动器时的驱动器块大小。

如果您使用2048(512字节)扇区的起始扇区,那么您的分区将启动1MB到驱动器。 大多数较新的安装程序默认使用此值。 这个数字很好地被64k和大多数其他常见的块/块大小整除。

如果你使用fdisk进行分区,那么通过-u标志。 所以它报告的是512字节扇区而不是圆柱体的值。

由于您使用的是ext *,因此您可以使用此计算器来确定文件系统的条带大小和跨度宽度。 我正在显示,你会想用这些选项创build你的文件系统: mkfs.ext3 -b 4096 -E stride=16,stripe-width=48 。 您可能想尝试创build文件系统而不传递选项并查看mkfs检测和使用的内容(使用tune2fs -l /dev/sdnn )。 这些天来,它似乎做了一个很好的工作,自动检测大小/宽度。

你的math是错误的。 在4个磁盘的RAID5arrays中,有(简单地说)3个数据磁盘和一个奇偶校验磁盘,这就是为什么如果你有4个80Gb磁盘驱动器,你可以在RAIDarrays上获得3 * 80或240Gb的可用空间。 所以,根据你的假设,以2048字节开始分区到驱动器将开始在第二个驱动器的第二个块。

但是,事实上,你的前提是错的。 如果您曾经观看过RAID5arrays上的磁盘活动指示灯,则会看到它们一起闪烁,除了进行重build时。 换句话说,RAID5控制器实际上caching磁盘的读写操作,并在所有驱动器上并行执行(显然,在重build过程中,除了其中一个驱动器一起工作,而重build驱动器通常处于稳定状态)。 这样可以保证一致性。

当然,它正在读写64Kb块,所以你开始在192Kb的边界进行分区,在分区开始时访问文件时,你可能会看到一个小小的改进。 但是,假设这个磁盘不会有几个非常大的文件(即大小为192K的倍数)被顺序读取,在正常的操作中,磁头将遍布磁盘,读/写分配的文件在4Kb块,这将从分区的alignment扩大任何收益。

总之,由于Perc 6 / i是一个硬件RAID控制器,我只是让操作系统按照它的build议对驱动器进行分区。 分区的alignment不会对磁盘​​/文件访问速度产生明显的影响。