知识卡片
主OSD由Monitor创建PG从OSD靠Peering隐式创建
内容
一个 PG 在不同角色的 OSD 上创建路径完全不对称:主 OSD 收到 Monitor 直接下发的创建请求(MOSDPGCreate 消息)主动创建;而从 OSD 上根本没有对应的 Monitor 消息,是主 OSD 在 Peering 过程中向从 OSD 投递事件时,从 OSD 发现本地没有这个 PG 才顺带创建出来,直接进入 Stray 状态。这避免了 [[Monitor靠Paxos维护ClusterMap一致性|Monitor]] 需要精确知道并主动通知每一个 PG 的每一个副本该在哪创建——Monitor 只需要告诉主 OSD “这个 PG 该由你负责”,其余副本的创建是 Peering 协议运行过程中自然产生的副作用,减少了 Monitor 需要维护和下发的状态量。
参考来源
《Ceph源码分析》第10章《Ceph Peering机制》