1
zodiac182 OP 查看 pg 的状态,发现很多 pg 的副本是同时存在于两个 pool 的。
# ceph pg ls-by-osd 4 PG OBJECTS DEGRADED MISPLACED UNFOUND BYTES OMAP_BYTES* OMAP_KEYS* LOG STATE SINCE VERSION REPORTED UP ACTING SCRUB_STAMP DEEP_SCRUB_STAMP 4.5 13154 0 0 0 55052803072 76 8 3064 active+clean 6h 4678'25693372 4678:36403484 [4,6,1]p4 [4,6,1]p4 2021-06-08 08:40:18.746379 2021-06-06 22:45:04.723214 4.b 12745 0 0 0 53309668388 76 8 3018 active+clean 8h 4679'14474815 4679:21985894 [3,1,4]p3 [3,1,4]p3 2021-06-07 19:05:19.609229 2021-06-01 15:14:08.633892 4.c 12861 0 0 0 53772528128 0 0 3094 active+clean 6h 4678'15078958 4678:20963884 [4,3,1]p4 [4,3,1]p4 2021-06-08 07:54:49.711211 2021-06-05 20:05:37.202050 4.d 13102 0 0 0 54819514898 0 0 3072 active+clean 3h 4678'21367130 4679:28327270 [4,2,3]p4 [4,2,3]p4 2021-06-08 11:27:17.714580 2021-06-08 11:27:17.714580 4.10 12828 0 0 0 53681672210 0 0 3009 active+clean 10h 4678'9153051 4678:13302772 [0,4,2]p0 [0,4,2]p0 2021-06-07 10:19:00.018771 2021-06-07 10:19:00.018771 4.17 13035 0 0 0 54525949881 0 0 3048 active+clean 10h 4678'10906087 4679:15392312 [0,4,2]p0 [0,4,2]p0 2021-06-07 19:06:35.025947 2021-06-05 03:43:30.623975 4.21 12884 0 0 0 53878359040 0 0 3068 active+clean 10h 4678'13903340 4678:19842337 [0,3,4]p0 [0,3,4]p0 2021-06-07 18:56:16.993401 2021-06-04 23:57:05.083683 4.24 12915 0 0 0 54005068288 76 8 3004 active+clean 10h 4679'10099444 4679:16249023 [3,4,0]p3 [3,4,0]p3 2021-06-07 18:56:19.869887 2021-06-01 08:26:30.348797 |
2
Judoon 2021-06-08 16:20:03 +08:00
crushmap 是你自己写的吗?
我记得创建 osd 的时候,ceph 会自动加上 class 为 ssh 和 hdd 的,用 ceph osd tree,应该有个 class 字段能直接区分。 ``` ceph osd crush rule create-replicated hdd_rule default host hdd ceph osd crush rule create-replicated ssd_rule default host ssd ceph osd pool create rbd_ssd 512 512 replicated ssd_rule ceph osd pool create rbd_hdd 512 512 replicated hdd_rule ``` 我之前是直接这么创建就可以了的 如果你的磁盘是用了硬件 raid 卡,ceph 可能无法自动识别出了了,推荐用 jbod 直连 另外 “很多 pg 的副本是同时存在于两个 pool 的” 这句话没看懂 |
3
zodiac182 OP @Judoon
感谢你的指导, 我也是这样添加的。 比如,0,1,2 是来自 hdd pool 的 osd, 4,5,6 是来此 ssd pool 的 osd 。 通过 ceph pg 来查看的时候,很多 pg 是类似[0,2,4]这样分布的。我疑惑的是为啥可以分布在两个 pool 上。 而且,查看 pg 分布的时候,选定--pool 4 ( 4 是 hdd 的 pool ),结果却看到了在 osd 4,5,6 上也有这个 pool 的 pg 。 osdmaptool osdmap --import-crush ./crushmap --test-map-pgs --pool 4 osdmaptool: osdmap file 'osdmap' osdmaptool: imported 1839 byte crush map from ./crushmap pool 4 pg_num 128 #osd count first primary c wt wt osd.0 93 28 28 9.09419 1 osd.1 100 30 30 10.9131 1 osd.2 75 27 27 9.09419 1 osd.3 88 35 35 14.5527 1 osd.4 15 6 6 0.872299 0.950012 osd.5 10 2 2 0.872299 0.950012 osd.6 3 0 0 0.872299 0.950012 不明白这是怎么回事。 为什么 4,5,6 这三个 osd 上面会有来自 hdd 这个 pool 的 pg 呢? |