【osd】OSD原理分析-OSD模块

OSD

图解如下:

 接下来我们看一下tp_osd_tp线程是如何处理分片中的请求,线程处理的核心函数是ShardedOpWQ::_process,其调用栈如下:

ShardedOpWQ::_process()
    |-OpQueue<>::dequeue()
    |-OSD::_look_up_pg()
    \-PGQueueable::run()
        \-PrimrayLogPG::do_request()
            \-PrimaryLogPG::do_op()
                \-PrimaryLogPG::execute_ctx()
                    |-PrimaryLogPG::prepare_transaction()
                    |   \-PrimaryLogPG::do_osd_ops()
                    \-PrimaryLogPG::issue_repop()
                        \-ReplicatedBackend::submit_transaction()
                            |-ReplicatedBackend::generate_transaction()
                            |-ReplicatedBackend::issue_op()
                            \-PrimaryLogPG::queue_transactions()
                                \-ObjectStore::queue_transactions()

 

 

 

参考资料

1. OSD原理分析-OSD模块

2. Ceph OSD Heartbeat

3. Ceph 数据IO全栈流程-源码分析

4. Ceph IO, Rados IO 流程解析(读写)

posted @ 2021-12-01 15:42  苏格拉底的落泪  阅读(717)  评论(0编辑  收藏  举报