【ceph运维】PG相关命令
PG
一个 Pool 中有多个 PG,具体数量可以通过以下命令查看:
ceph osd pool get test pg_num
查看 Pool 中 PG 的分布:
ceph pg ls-by-pool test
查看对象的位置:
ceph osd map test test-object
osdmap e264282 pool 'test' (4) object 'test-object' -> pg 4.bf8f6aea (4.a) -> up ([1,0,2], p1) acting ([1,0,2], p1)
【解释】test-object 是对象名,test 是 pool。
- osdmap e264282 是 osdmap 的版本号
- pool 'test' (4) 是 pool 名字及 ID
- object 'test-object' 是对象名称
- pg 4.bf8f6aea (4.a) 是对象所在 PG 的编号
结果显示这个对象在 ID 为 4.a 的 PG 上,并且位于 OSD1,OSD0,OSD2 上,三个副本。
查看 pg 中有哪些对象:
rados --pgid 4.a ls
像 Pool,PG 这些东西都是有 id 的,查看 Pool 的 ID:
ceph osd lspools
我这里名为 test 的 pool 的 ID 为 4,所以 test 下面的 PG 的 ID 都是以 4 开头的。
查看pg和osd的映射关系:
ceph pg dump | grep ^4. |awk '{print $1 "\t" $17 "\t" $10}'
查看pg状态:
ceph pg dump pgs_brief
获取pg数量
ceph osd pool get {pool-name} pg_num
存储池相关pg信息
ceph pg dump pools
查看pg和osd的映射关系:osd为主
ceph pg dump osds
手动触发peering:
pg repeer pg repeer [pgid]
要检索特定放置组的统计信息,请执行以下操作:
ceph pg {pg-id} query
这里的query其实是一种元数据信息,部分形式如下:
1 { 2 "snap_trimq": "[]", 3 "snap_trimq_len": 0, 4 "state": "active+clean", 5 "epoch": 236, 6 "up": [ 7 1, 8 2, 9 0 10 ], 11 "acting": [ 12 1, 13 2, 14 0 15 ], 16 "acting_recovery_backfill": [ 17 "0", 18 "1", 19 "2" 20 ], 21 "info": { 22 "pgid": "1.0", 23 "last_update": "223'23", 24 "last_complete": "223'23", 25 "log_tail": "0'0", 26 "last_user_version": 23, 27 "last_backfill": "MAX", 28 "purged_snaps": [], 29 "history": { 30 "epoch_created": 2, 31 "epoch_pool_created": 2, 32 "last_epoch_started": 221, 33 "last_interval_started": 220, 34 "last_epoch_clean": 221, 35 "last_interval_clean": 220, 36 "last_epoch_split": 0, 37 "last_epoch_marked_full": 0, 38 "same_up_since": 220, 39 "same_interval_since": 220, 40 "same_primary_since": 212, 41 "last_scrub": "189'21", 42 "last_scrub_stamp": "2020-12-14T06:56:57.181447+0800", 43 "last_deep_scrub": "189'20", 44 "last_deep_scrub_stamp": "2020-12-13T04:09:17.431508+0800", 45 "last_clean_scrub_stamp": "2020-12-14T06:56:57.181447+0800", 46 "prior_readable_until_ub": 0 47 }, 48 ... 49 }
我们可以看到很多理论部分讲过的元数据,比如 up 、acting、info、epoch、peer、interval等。snap_trimq
表示快照删除队列。
【获取pg map】要获取特定放置组的放置组映射,请执行以下操作:
ceph pg map {pg-id}
例如:
ceph pg map 1.6c
Ceph将返回放置组图,放置组和OSD状态:
osdmap e13 pg 1.6c (1.6c) -> up [1,0] acting [1,0]
解释一下,这里表示 pg 1.6c被映射到 编号为 [1,0]的两个OSD上。 Acting 表示Acting Set。