ceph PG创建流程

osdpgmonitor创建;调用OSD::handle_pg_create(OpRequestRef op)

  • MOSDPGCreate *m = (MOSDPGCreate*)op->get_req(); 从消息队列中获取PGid,可能一次创建多个PG

  • require_mon_peer()/require_same_or_newer_map()判断连接monitorosdmap版本号

  • for循环创建PG

  • osdmap->pg_to_up_acting_osds计算PG加入到对应osd

  • osdmap->get_primary_shard计算主副本

  • if (can_create_pg(pgid))如果可以创建PG,提交*rctx.transaction创建PG

  • maybe_update_heartbeat_peers()更新hearbeat peer


ceph PG创建流程_第1张图片

图片引用地址http://blog.chinaunix.net/uid-724539-id-4117559.html

你可能感兴趣的:(pg,ceph,cephpg创建)