头孢选择什么osd实际从中返回数据(ceph逻辑)

时间:2018-12-07 09:15:14

标签: ceph radosgw

我使用nginx-> radosgw-> ceph集群 每个放置的数据同时放置在3个osd上(每个osd是一个单独的osd服务器) 整个群集包含9个osd服务器。 Ceph v10(如果需要的话)

说,我的数据是5KiB的一个小文件。 群集处于OK状态。

问题: 当我通过nginx-> radosgw获取(请求)我的数据块时,是什么OSD选择从SSD磁盘接收实际信息的?

  1. 这是一个返回整个5KiB数据的“主” OSD吗?

  2. 是否所有这3个OSD都可以同时从每3个OSD返回整个5KiB数据?

  3. 是否为ANY,但保存此5KiB数据的3个OSD之一选择返回实际数据,并且可以从这3个OSD中的任何一个返回数据,但只有一个OSD将返回整个5KiB数据?

  4. 保存这条返回的5KiB数据的3个OSD中的ANY是否等于osd1返回1KiB + osd2返回3KiB + osd8总返回1KiB = 5KiB?

逻辑是什么?

感谢您耐心等待上面的阅读选项。 预先感谢您的回答。

1 个答案:

答案 0 :(得分:0)

  

问题:当我通过nginx-> radosgw从群集中获取(请求)我的数据时,是什么OSD选择从SSD磁盘接收实际信息的?

客户端始终向主OSD处理读写请求。对于其余的工作,主要的OSD是负责任的。

因此,在有复制池的情况下,主OSD将仅依靠其本地存储直接回复请求。整个对象将从主OSD中读取,而不会涉及其他OSD。

在使用擦除编码池的情况下,客户端也会从主OSD请求数据,当主OSD从其他相关OSD接收了所有数据块时,主OSD将总共为该对象提供服务。如果缺少块,则主OSD还将查询奇偶校验块以解码数据。