Linux;将 RAID5 块大小设置为 4kB,以匹配 FS 块大小和物理磁盘扇区大小

Linux;将 RAID5 块大小设置为 4kB,以匹配 FS 块大小和物理磁盘扇区大小

有许多讨论和网站解释了设置 Linux 软件 RAID 的过程,mdadm新 RAID 的块大小为 128kBs 或 512Kbs。Serverfault 也不例外。

我现在正在构建一个新媒体 NAS,但我觉得没有理由不使用 4kB 的块大小。“即将建立 RAID-5”的四个物理磁盘中的每一个都有 4KB 扇区。4kB 的块大小肯定最有意义,可以将 RAID 卷与磁盘扇区以 1:1 的关系进行映射?然后在此基础上创建块大小为 4kB 的文件系统(将是 EXT4)?

当磁盘只有 4kB 扇区时,​​128kB(例如)的块大小如何变得更有益?

答案1

这与预读有关。旋转驱动器的访问时间非常慢,因此您需要尽量缩短访问时间并尽可能按顺序读取。为了实现这一点,Linux 使用默认的 128KB 预读值,这意味着每次您请求 1KB 块时,实际上都会读取和缓存 128KB。

使用以下方法检查预读设置

cat /sys/block/sda/queue/read_ahead_kb 

实际上,这个 128KB 值非常保守,更适合十年前具有 512 KB 缓存的旧 ATA 驱动器。对于现代的 64 MB 缓存驱动器,1 或 2 MB 的值可能更合适。对于具有大缓存的硬件 RAID,64MB 或更大的值是首选。

不要忘记尝试预读设置来查看它们如何影响您的表现:

echo 1024 > /sys/block/sda/queue/read_ahead_kb 

相关内容