知识卡片

Striper条带化切分大文件到多个对象

专业/工作 · 236.c.3

内容

RADOS 对象默认大小固定(如 4MB),而上层文件/镜像可能远大于此,Striper 负责把一段文件内的偏移和长度,依据 stripe_unit(条带最小单位)、stripe_count(横跨多少个对象轮转)、object_size(单个对象大小)这三个参数,切分映射成落在具体哪些对象、对象内哪个偏移的多段 ObjectExtent。这种条带化的意义是把一次大范围的顺序读写拆成多个可以并行发往不同 OSD 的小请求,用并行 IO 换取吞吐,而不是让一个大文件全部堆在少数几个对象、几个 OSD 上排队处理。

参考来源

《Ceph源码分析》第5章《Ceph客户端》