有许多讨论和网站解释了设置 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