Akemi

磁盘RAID调优简介

2025/05/27

核心概念

RAID Chunk Size

RAID 组的最小数据块单位(例如 64KB、128KB、256KB)。

作用:决定数据在 RAID 成员磁盘上的分布粒度。

示例:若 Chunk Size=64KB,写入 256KB 数据时,会被拆分为 4 个 64KB 的块,分布在不同的磁盘上。

文件系统 Block Size

文件系统的最小存储单元(例如 4KB、8KB)。

作用:影响文件系统读写的最小单位,需与 RAID Chunk Size 对齐,避免跨磁盘读写碎片。

步幅Stride

文件系统块连续分布在 同一磁盘上的数量
计算方式:步幅=RAID Chunk Size/文件系统Block Size

例如:Chunk Size=64KB,Block Size=4KB → Stride=16
表示每个文件系统块跨越 16 个连续 Block,存放在同一磁盘的 Chunk 中

条带宽度Stripe Width

一个完整条带Stripe跨越的磁盘数量(不含校验盘)
计算方式:条带宽度=数据盘数量=总数-校验盘数量

以上这些参数都会在创建文件系统时输入

1
2
3
4
5
6
7
8
假设是一个RAID5(3D+1P),数据盘数量为3
主要是小文件和随机IO读写,所以Block Size选择4kb

mkfs.ext4 -b 4096 -E stride=16,stripe_width=3 /dev/md0

-b 4096: Block Size=4KB
stride=16: 对应 Chunk Size=64KB,计算得出的步幅为167
stripe_width=3: 数据盘数量

调优目标

  • 对齐 I/O 操作

确保文件系统的 Block Size 与 RAID Chunk Size 成整数倍关系,避免单次 I/O 跨磁盘读写

比如写入 4KB Block 可能跨越两个 Chunk(不同磁盘),增加寻址开销

  • 最大化并行性

条带宽度应覆盖所有数据盘,使单个大 I/O 请求能同时利用多块磁盘的带宽

  • 减少校验计算开销

在 RAID5/6 中,校验计算可能成为瓶颈。通过增大 Chunk Size 或减少小 I/O 比例可缓解此问题

CATALOG
  1. 1. 核心概念
    1. 1.1. RAID Chunk Size
    2. 1.2. 文件系统 Block Size
    3. 1.3. 步幅Stride
    4. 1.4. 条带宽度Stripe Width
  2. 2. 调优目标