Ceph IO流程及数据发布

Ceph是一个分布式存储系统,它的IO流程涉及多个组件和步骤。下面是一个简要的Ceph IO流程的概述:

  1. 客户端发起IO请求:应用程序运行在Ceph的客户端节点上,当应用程序需要读取或写入数据时,会发起IO请求。

  2. 客户端与Metadata Server(MDS)交互:如果是文件系统(如CephFS)的IO请求,客户端会与MDS交互以获取文件的元数据信息,如文件的位置和权限等。

  3. 客户端与CRUSH Map交互:CRUSH(Controlled Replication Under Scalable Hashing)是Ceph中用于数据分布和故障域管理的算法。客户端会通过与CRUSH Map交互,确定数据所在的OSD(对象存储设备)和PG(Placement Group)。

  4. 客户端与OSD交互:客户端与被确定的OSD节点建立连接,并发送IO请求。如果是读取请求,OSD会返回请求的数据;如果是写入请求,OSD会将数据写入存储设备,并返回确认信息。

  5. 数据复制和条带化:根据Ceph的配置和策略,数据可能会进行复制和条带化。数据复制可以提高数据的冗余和可用性,而条带化可以实现数据的并行读取和写入,提高IO性能。

  6. 数据发布和持久化:一旦数据被写入到OSD中,它会被持久化存储,并在Ceph集群中进行复制和分布。数据的发布意味着数据已经成功写入并可供后续读取。

Ceph IO流程及数据发布
Ceph IO流程及数据发布

以上是简化的Ceph IO流程示意图,实际的流程可能会因Ceph的配置和部署方式而有所不同。在Ceph中,数据的发布是指数据已经成功写入并复制到多个OSD上,确保数据的持久性和可用性。

新主io流程

如果有新加入的OSD1取代了原有的OSD4成为Primary OSD,由于OSD1上未创建PG,不存在数据,那么PG上的IO无法进行,如何工作呢?

当新加入的OSD(OSD1)取代了原有的Primary OSD(OSD4),并且在OSD1上没有创建对应的PG(Placement Group),会导致PG上的IO无法进行。在这种情况下,Ceph会进行以下工作:

  1. PG处于不可用状态:当Primary OSD(OSD4)被替换时,PG会被标记为不可用状态。这意味着PG上的IO请求无法被处理,因为没有可用的Primary OSD来处理这些请求。

  2. PG重新平衡:Ceph会自动触发PG的重新平衡过程。在重新平衡过程中,Ceph会尝试将PG中的数据重新分布到其他可用的OSD上,以确保数据的可用性和冗余性。

  3. 选择新的Primary OSD:在PG重新平衡的过程中,Ceph会选择一个新的Primary OSD来接管PG的处理。通常,Ceph会选择具有最新副本的OSD作为新的Primary OSD。

  4. 数据迁移:一旦新的Primary OSD(OSD1)被选定,Ceph会开始将PG中的数据从其他OSD迁移到OSD1上。这个过程称为数据再平衡,它确保PG中的数据在集群中的多个OSD之间得到恢复和复制。

  5. PG恢复:一旦数据迁移完成,PG将恢复为可用状态。此时,PG上的IO请求将能够再次进行,并由新的Primary OSD(OSD1)处理。

Ceph IO流程及数据发布

上图为工作简要流程图,PG的重新平衡和数据迁移过程可能需要一定的时间,具体取决于集群的规模等因素。在此期间,PG上的IO请求可能会受到一定的延迟或影响。但是,Ceph会尽力确保数据的可用性和一致性,并在后面的操作中恢复正常的IO处理能力。

原创文章,作者:geeklinux.cn,如若转载,请注明出处:https://www.geeklinux.cn/cloud-native/ceph/1273.html

(0)
geeklinux.cn的头像geeklinux.cn
上一篇 2024 年 3 月 23 日
下一篇 2024 年 3 月 24 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注