cephsparseread的示例分析

这篇文章主要为大家展示了“ceph sparse read的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ceph sparse read的示例分析”这篇文章吧。

成都创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为霍山企业提供专业的成都网站制作、成都网站设计,霍山网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

在解释ceph的sparse read前,先要解释一个概念:文件系统的fiemap。

ext4已经支持的一个特性是基于Extent 的文件存储,简写为fiemap.

现代很多文件系统都采用了 extent 替代 block 来管理磁盘。Extent 能有效地减少元数据开销。

再说ceph 的sparse read

ceph 基于fiemap特性来实现sparse read. 具体举例来说:

1. client 发出sparse-read 某个object请求.

2. osd 收到请求,传递至filestore,它 通过FS_IOC_FIEMAP ioctl判断底层文件系统是否支持fiemap,还要判断ceph配置选项是否默认打开fiemap.

3. 如果两个选项都支持,filestore通过此ioctl进一步获取到extent map信息,即哪些extent存有真实的数据。

4. filestore 利用extent map 分析出这个object的哪些部分真正在磁盘上分配了空间并存储了数据, 然后把这些部分读出并返回给客户端。

注意:

1. ext4默认支持了fiemap, 但是 ceph 默认是关闭了fiemap选项, 原因是测试发现某系kernel/fs的bug. 所以 所有的client sparse read 在ceph内部都是走的跟一般的read一样的路径。

2. sparse read 对大读有性能提高,但是对小读,如小于一个block size(4096B)的读,则没有性能提升。所以要避免对小读做sparse read.

以上是“ceph sparse read的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网站名称:cephsparseread的示例分析
文章路径:http://scyanting.com/article/gogded.html