条带大小是什么
条带元素(Strip Size,mdadm 里叫 chunk)指的是写在单块盘上的一段连续数据的长度。一个读写在阵列上的分配规则是:请求大小超过条带元素后才会跨到别的盘,形成并发;小于条带元素时整笔请求只落在一块盘上。所以小条带让小额随机 IO 更容易跨盘并发,大条带更契合大块顺序读写与视频流。
基本信息
| 常见取值 | 64KB / 128KB / 256KB / 512KB / 1MB(LSI 卡条带元素 64KB~1MB 可选) |
|---|---|
| LSI 默认 | 256KB(卡菜单里的 Stripe Size 指单盘上的条带元素长度) |
| mdadm 单位 | --chunk 以 KB 为单位,含义与卡的条带元素一致 |
| 经验选择 | 数据库 64~128KB;文件与备份 256~512KB;视频流与大文件可到 1MB |
| 条带宽度 | = 条带元素 × 数据盘数,写满整条带时 RAID 5/6 才不需要读改写 |
| 修改代价 | 多数控制器与 md 都不支持在线改条带,需重建或迁移 |
指定与查看条带
指定与查看条带
mdadm --create /dev/md0 --level=5 --raid-devices=4 --chunk=128 /dev/sd[b-e]1
cat /proc/mdstat # 查看阵列状态
mdadm --detail /dev/md0 | grep -i chunk # 查看当前条带元素
storcli /c0/v0 show all | grep -i -E 'Strip|Size' # 硬件卡上的条带信息
# 条带宽度换算:128KB x 4 块数据盘 = 512KB,文件系统按此对齐更贴合典型业务的取值建议
| 业务类型 | 推荐条带元素 | 理由 |
|---|---|---|
| 数据库 OLTP | 64~128KB | 随机小额 IO 多,小条带更容易跨盘并发 |
| 虚拟化主机 | 128~256KB | 混合负载,取折中值 |
| 文件服务器 | 256KB | 大文件顺序读为主 |
| 视频与备份 | 512KB~1MB | 单流大块顺序写,条带大可减少跨盘管理开销 |
| 日志与顺序写卷 | 256~512KB | 顺序写占绝对多数,避免过小条带 |
条带宽度 = 条带元素 × 数据盘数:RAID 5/6 上只有请求覆盖整条带时才能省掉读旧值的开销,因此数据库与虚拟化场景常把文件系统块按条带宽度对齐。
条带大小上线后基本改不了:多数硬件卡需要重建或迁移阵列,md 也不支持在线修改,规划阶段就要按业务特征定好。