有许多讨论和网站,解释了用mdadm设置Linux软件RAID的过程,其中新的RAID块大小为128kB或512Kbs。 Serverfault也不例外。
我现在正在构build一个新的媒体NAS,我看不出有什么理由不使用4kB的块大小。 'RAID-5-to-be'中的四个物理磁盘中的每一个都具有4KB扇区。 当然,4kB的卡盘大小最有意义的映射从RAID卷到磁盘扇区的1:1关系? 然后创build一个4kB块大小的文件系统(这将是EXT4)?
当磁盘只有4kB扇区时,128kB(例如)块大小如何变得更有利?
这与预读有关。 旋转驱动器的访问时间非常短,因此您希望尽量减less访问时间并按顺序读取。 为此,Linux使用默认的128KB预读值,这意味着每次请求1KB块时,实际上将读取和caching128KB。
检查您的预读设置
cat /sys/block/sda/queue/read_ahead_kb
实际上这个128KB的值是非常保守的,更适合十年前的老式ATA硬盘,512KBcaching。 对于现代的64 MBcaching驱动器,1或2 MB的值可能更适合。 对于具有大caching的硬件RAID,首选64MB或更大的值。
不要忘记使用预读设置,看看它们如何影响你的performance:
echo 1024 > /sys/block/sda/queue/read_ahead_kb