在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Ceph Jewel版本三副本读操作的示例分析

123次阅读
没有评论

共计 2612 个字符,预计需要花费 7 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 Ceph Jewel 版本三副本读操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、主 OSD 读处理流程

OSD::ms_fast_dispatch()

|__OSD::dispatch_session_waiting()

     |__OSD::dispatch_op_fast()

          |__OSD::handle_op()

               |__OSD::get_pg_or_queue_for_pg()       找到 OpRequest 中对应的 PG 和 Pool 信息

               |__OSD::enqueue_op()

                    |__PG::queue_op()

                         |__OSD::ShardedThreadPool::ShardedWQ::queue()     将 PG 和 Op 一起放入队列中

OSD::ShardedOpWQ::_process()           负责处理 OSD::ShardedThreadPool::ShardedWQ 队列中的 Op

|__PGQueueable::RunVis::operator()(const OpRequestRef op)

     |__OSD::dequeue_op()

          |__ReplicatedPG::do_request()

               |__检查当前 PG 是否处于 flush 或 peering 状态,若是则将 op 放入 waiting_for_peered 队列中等待 PG 变成可用状态

               |__检查当前 PG 是否处于 Active 状态,若不是则将 op 放入 waiting_for_active 队列中

               |__检查当前 PG 是否处于 REPLAY 状态,若是则将 op 放入 waiting_for_active 队列中

               |__ReplicatedPG::do_op()

                    |__RepliatedPG::do_pg_op()               对于请求中包含对 PG 的操作 CEPH_OSD_RMW_FLAG_PGOP

                    |__根据 op 请求创建 hobject_t 类对象 (head)

                    |__检查对象名字长度 / 对象 locator key 长度 / 对象 locator 名称空间长度是否大于 osd_max_object_name_len

                    |__通过 FileStore 检查 object 的 head 是否有效

                    |__检查 op 请求地址是否在 OSDMap 的 blacklist 中

                    |__对于写请求,检查写请求的数据大小是否大于 osd_max_write_size 值

                    |__对于 op 请求的 head 目前不可读,则将 op 放入 waiting_for_unreadable_object 队列中且调用 maybe_kick_recovery() 函数尝试启动 recovery

                    |__ReplicatedPG::is_degraded_or_backfilling_object()           检查当前 op 请求的 head 是否处于 recovery 或 backfill 状态

                    |__ReplicatedPG::wait_for_degraded_object()                       将当前 op 请求的 head 放入 waiting_for_degraded_object 队列中

                    |__检查 head 是否在 objects_blocked_on_degraded_snap 队列中,若是则将当前 op 请求的 head 放入 waiting_for_degraded_object 队列中

                    |__检查 head 是否在 objects_blocked_on_snap_promotion 队列中,若是则将当前 op 请求的 head 放入 waiting_for_blocked_object 队列中

                    |__检查 head 是否在 objects_blocked_on_cache_full 队列中,若是则将当前 op 请求的 head 放入 waiting_for_cache_not_full 队列中

                    |__检查 head 的 snapdir 是否不可读,若是则将 head 的 snapdir 放入 waiting_for_unreadable_object 队列中且调用 maybe_kick_recovery() 函数尝试启动 recovery

                    |__检查 head 的 snapdir 是否处于 recovery 或 backfill 状态,若是则将 head 的 snapdir 放入 waiting_for_degraded_object 队列中

                    |__对于 op 写请求已经在 PGLog 中,则若已经完成了写操作则直接给客户端返回 MOSDOpReply 消息且设置 CEPH_OSD_FLAG_ACK,否则将 op 放入到 waiting_for_ack 或 waiting_for_ondisk 队列中

                    |__ReplicatedPG::find_object_context()               得到 object context 信息

                    |__检查 object context 是否处于 io blocked 状态,若是则将 op 请求放入到 waiting_for_blocked_object 或 waiting_for_degraded_object 队列中

                    |__ReplicatedPG::execute_ctx()    

                         |__ReplicatedPG::prepare_transaction()

                         |__创建 MOSDOpReply 消息实例

                         |__调用 ReplicatePG::complete_read_ctx()     将读操作的结果返回给 client 端

以上是“Ceph Jewel 版本三副本读操作的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2612字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 又色又爽又高潮免费视频观看 | 91免费电影 | 久久成人免费观看全部免费 | 婷婷在线视频观看 | 国产精品亚洲аv无码播放 国产精品亚洲成在人线 | 国产男女视频 | av狠狠色丁香婷婷综合久久 | 男女做爰全过程免费视频 | 中文字幕精品无码一区二区三区 | 全亚洲最大的免费影院 | 毛片手机在线视频免费观看 | 四虎在线精品 | 全亚洲最大的免费电视网 | 一区二区网站在线观看 | 日韩精品区一区二区三vr | 日本久久中文字幕精品 | 欧美亚洲国产精品久久高清 | 欧美日韩精品在线播放 | 欧美综合网 | 91香蕉国产线在线观看免费 | 黄并且免费的视频 | 国产亚av手机在线观看 | 国产精品29页 | 奇米777四色欧美成人 | 亚洲国产日韩精品一区二区三区 | 久久久国产99久久国产一 | 人禽杂交18禁网站免费 | 九九久久精品这里久久网 | 国产九九免费视频 | 欧美换爱交换乱理伦片不卡片 | 好日子在线观看视频大全免费动漫 | 韩国理论福利片大全在线观看 | www视频免费在线观看 | 天天干天天日夜夜操 | 午夜视频在线免费看 | 免费一级在线观看 | 国产欧美二区 | 视频偷拍一级视频在线观看 | 欧美日韩中文在线视频 | 黄色大视频 | av无码精品一区二区三区四区 |