您好,登录后才能下订单哦!
这篇文章主要为大家展示了“ceph sparse read的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ceph sparse read的示例分析”这篇文章吧。
在解释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的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。