头孢。什么 osd 选择实际 return 来自它的数据(ceph 逻辑)

ceph. what osd selected to actual return the data from it (ceph logic)

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

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

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

  1. 这是一个 "main" OSD,其中 return 整个 5KiB 数据?

  2. 这是所有 3 个 OSD 保存这块 return 同时来自每 3 个 OSD 的全部 5KiB 数据吗?

  3. 这是任何一个,但是保存这块 5KiB 数据的 3 个 OSD 之一,它选择 return 实际数据,数据可以从任何 returned 3 个 OSD,但只有一个选定的 OSD 将 return 整个 5KiB 数据 ?

  4. 这是保存这段 5KiB 数据的 3 个 OSD 中的任何一个吗 returns,比方说,osd1 returns 1KiB + osd2 returns 3KiB + osd8 returns 1KiB = 总共 5KiB?

这是什么逻辑?

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

QUESTION: When I GET (request) my piece of data form my cluster via nginx->radosgw what OSD selected to recieve actual information from the SSD disks?

客户端总是向主 OSD 发送读写请求。对于所需的其余工作,主 OSD 负责。

所以在复制池的情况下,主 OSD 将直接响应请求,只依赖于它的本地存储。整个对象将从主 OSD 读取,不会涉及其他 OSD。

在纠删码池的情况下,客户端也会从主 OSD 请求数据,当主 OSD 从其他相关 OSD 接收到所有数据块时,主 OSD 将总共为对象提供服务客户。在丢失块的情况下,主 OSD 还将查询奇偶校验块以解码数据。