主osd的pg由monitor创建;调用OSD::handle_pg_create(OpRequestRef op)
MOSDPGCreate *m = (MOSDPGCreate*)op->get_req(); 从消息队列中获取PGid,可能一次创建多个PG
require_mon_peer()/require_same_or_newer_map()判断连接monitor、osdmap版本号
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
图片引用地址http://blog.chinaunix.net/uid-724539-id-4117559.html